用conda安装部署vLLM
1 conda create -n envVLLM python=3.11 2 conda activate envVLLM 3 4 pip install vllm autoawq --index-url https://pypi.tuna.tsinghua.edu.cn/simple
vLLM加载模型
1 python -m vllm.entrypoints.openai.api_server --model /mnt/d/modelscope_stuff/Qwen/Qwen3.5-4B --host 0.0.0.0 --port 8899 --gpu-memory-utilization 0.9 --max-model-len 65535 --max-num-seqs=64
例如
1 python -m vllm.entrypoints.openai.api_server \ 2 --model /mnt/d/modelscope_stuff/tclf90/Qwen3.5-9B-AWQ \ 3 --host 0.0.0.0 --port 8899 \ 4 --gpu-memory-utilization 0.85 #适当提高,但不要拉满(比如 0.95 以上),否则系统进程或其他 CUDA 应用可能被挤出显存。 5 --max-model-len 8192 \ #强制限制最大上下文长度,可尝试 16384、32768、65536、131072等更大值,直到刚好不报错 6 --enforce-eager #避免 CUDA Graph 的额外显存占用(释放少量) 7 --cpu-offload-gb 4 #卸载 4GB 的层到内存 8 --max-num-seqs=128 #最大并发序列
通过OpenAI的API使用vLLM
代码如下,和普通的API、ollama提供的API一样。
1 from openai import OpenAI 2 3 client = OpenAI( 4 base_url="http://172.17.135.122:8899/v1",#"http://localhost:8899/v1", 5 api_key="vllm_not-needed" # vLLM 默认不校验,可随意填写 6 ) 7 8 response = client.chat.completions.create( 9 model="/mnt/d/modelscope_stuff/Qwen/Qwen3.5-4B", # 可以是 LoRA 名,也可以是基座模型名 10 messages=[{"role": "user", "content": "计算1+2+3,直接给出答案"}], 11 temperature=0.7, 12 max_tokens=512 13 ) 14 print(response.choices[0].message.content)
vLLM 的 OpenAI 兼容 API 和原生 API 共用的是同一套底层推理引擎(AsyncLLMEngine + PagedAttention + 连续批处理),核心的推理性能、显存利用率、并发批处理能力本质上没有区别。
两者的差异仅停留在接口层的功能覆盖、接入成本和极微量的 HTTP 协议开销上,对于绝大多数 RAG、问答类业务场景,OpenAI 兼容接口的性能完全够用,且开发成本低得多。
vLLM加载多模型
vLLM加载同一模型基座的多个微调模型(“LoRA微调”见其他文档)
(未验证)
python -m vllm.entrypoints.openai.api_server \
--model /models/Qwen2.5-7B-Instruct \
--enable-lora \
--lora-modules code=/loras/code \
math=/loras/math \
translate=/loras/translate \
--max-lora-rank 64 \
--max-cpu-loras 10 \
--gpu-memory-utilization 0.92