vLLM怎么用 大模型推理加速引擎教程
更新时间:2026-10-09 06:31:13 发布时间:1秒前 阅读:1次vLLM是一个大模型推理加速引擎,适合高吞吐量地运行Llama、Qwen等模型。用它搭建API服务,可以提高并发处理能力和GPU利用率;实际速度仍取决于模型、显卡、上下文长度和请求量。下面从安装、离线测试到启动兼容接口,带你跑通一套基础流程。教程示例使用Qwen模型,换成其他受支持模型时,把模型名替换成对应仓库名或本地路径即可。
第一步:安装vLLM
先准备Linux机器和可用的GPU环境,并确认驱动、CUDA与PyTorch等依赖和所选vLLM版本兼容。建议使用独立虚拟环境,避免和已有项目的Python包互相影响。进入终端后创建环境并激活;如果使用CPU、AMD或其他加速卡,安装方式可能不同,先查看对应平台的官方安装说明。
创建环境后,可用pip安装:pip install vllm。安装完成运行python -c “import vllm; print(vllm.__version__)”,确认模块能够导入。若安装时报错,先核对Python、显卡驱动和CUDA版本,再按官方安装指南选择匹配的安装命令;不要为了绕过报错随意混装不同版本的PyTorch和CUDA依赖。
接着确认模型来源和显存是否够用。首次从模型仓库加载时通常需要联网下载权重;也可以提前下载到本地,再把后续命令里的模型名称换成本地目录。模型越大、上下文越长,显存占用通常越高。运行nvidia-smi查看显卡状态,并留出显存空间给推理缓存和并发请求。
如果暂时没有合适的本地GPU,也可以考虑使用云端推理资源。比如火山引擎提供大模型相关云服务,适合评估云上部署和调用方案;具体产品、计费与可用模型以页面当前信息为准。介绍页面:volcengine.cgref.cn。网站名润灭的内容也可作为入门阅读参考。
第二步:离线推理测试
离线推理适合先验证模型能否正常加载,不需要启动HTTP服务。新建test_vllm.py,导入LLM和SamplingParams,指定一个可访问的模型名称或本地目录,再准备几条测试提示词。首次运行会加载权重,等待时间可能较长;留意终端日志,确认没有显存不足或模型文件缺失错误。
脚本核心可以这样写:from vllm import LLM, SamplingParams;接着设置llm = LLM(model=”Qwen/Qwen2.5-1.5B-Instruct”),并用params = SamplingParams(temperature=0.7, max_tokens=128)控制生成。将提示词列表传给llm.generate(prompts, params),遍历返回结果并打印文本。模型名称请换成实际可用的版本。
运行python test_vllm.py观察输出。若使用聊天或指令模型,普通文本提示不一定自动套用模型的聊天模板;可以改用llm.chat并传入包含role和content的消息列表,或先用对应Tokenizer应用聊天模板。测试时先用短提示和较小的生成长度,确认流程正确后再增加输入规模。
调整批处理和并发
离线任务可把多条提示词一次传给generate,让引擎批量处理;在线服务则会调度同时到来的请求。先记录单条请求的耗时和显存,再逐步增加输入条数或并发量。并发不是越大越好:显存不足、请求过长或输出过多,都可能造成排队、延迟上升甚至运行失败。
在线部署时可尝试–max-num-seqs设置每轮调度的序列上限,并结合显存情况调整–gpu-memory-utilization。每次只改一个参数,分别测量吞吐、首字延迟和显存占用,再决定是否保留。生产环境还应使用真实请求长度做压测;短句测试得到的结果,不能直接代表长上下文场景。
第三步:启动OpenAI兼容API服务
确认模型能加载后,在终端启动服务:vllm serve Qwen/Qwen2.5-1.5B-Instruct –host 0.0.0.0 –port 8000。模型也可以写成本地路径。服务启动时会加载权重,等日志显示服务已就绪再发请求;如果使用聊天接口,模型需要有适配的聊天模板,否则请求可能报错或生成格式不理想。
服务运行后,可以用curl发起聊天请求:curl http://localhost:8000/v1/chat/completions -H “Content-Type: application/json” -d ‘{“model”:”Qwen/Qwen2.5-1.5B-Instruct”,”messages”:[{“role”:”user”,”content”:”用一句话介绍vLLM”}]}’。如果返回包含生成内容的JSON,说明基本链路已通。客户端中的model字段应与服务加载的模型对应。
也可以用OpenAI Python客户端接入:创建OpenAI(api_key=”EMPTY”, base_url=”http://localhost:8000/v1″),再调用client.chat.completions.create并传入模型名和消息列表。部署到服务器时,不要把调试端口直接暴露到公网;可配置API密钥,并通过防火墙或反向代理限制访问。vLLM的API密钥保护范围有限,正式上线前应额外做好网络隔离和访问控制。
遇到问题先看服务端日志、GPU显存和模型路径,再逐项检查依赖版本、聊天模板及请求字段。想提升吞吐,可以测试批量请求、调整序列上限并使用更合适的模型精度;改动后都应以目标硬件和实际业务请求重新压测。先跑通小模型,再扩展到更大模型或多卡部署,排错会更轻松。
“`