vLLM
概述
参考:
用于 LLM 的高吞吐量和内存高效的推理和服务引擎
支持的模型: https://docs.vllm.ai/en/stable/models/supported_models/
部署
部署什么?
- vllm CLI?
- vllm 第三方库供 Python 导入?
感觉都可以,也挺简单的。
vllm 可以直接用容器镜像拉起来
Python 库可以用 uv 装
主要是后面如何用 vllm 使用模型进行推理。以及国产化,尤其是 Ansible Plugins 比较麻烦
容器化部署
TODO
使用 vLLM
使用 vLLM 意味着通过 vLLM 启动一个对外提供的推理服务
使用 vllm serve 命令,在 8000 端口上启动一个兼容 OpenAI API 的 WebAPI,提供了 Qwen3-0.6B 模型的推理服务:
vllm serve --model Qwen/Qwen3-0.6B
[!Tip] 默认情况下,vllm 会从 Hugging Face 下载指定的模型。或者也可以使用 HF 镜像站下载模型后,手动指定本地模型路径
之后,我们可以通过 http://localhost:8000/v1 使用 OpenAI 兼容的 API 获取推理结果。
vllm 自身也提供了基本的聊天能力,使用 vllm chat 命令即可连接到 localhost:8000 并进入聊天模式,就像这样:
~]# vllm chat
Using model: Qwen/Qwen3-0.6B
Please enter a message for the chat model:
>
https://docs.vllm.ai/en/stable/models/supported_models/?h=vllm_use_modelscope#modelscope
如果在国内访问 Hugging Face Hub 困难,可以使用使用 https://www.modelscope.cn/ 代替。只需要设置环境变量即可:
export VLLM_USE_MODELSCOPE=True
之后,vllm 会到 ModelScope 默认的缓存目录中寻找 模型、数据集、etc.
Plugins
参考:
社区经常要求为 vLLM 添加自定义功能。为了方便用户实现这一目标,vLLM 内置了一个插件系统,允许用户在不修改 vLLM 代码库的情况下添加自定义功能。
- Plugin Ascend # 让 vLLM 可以运行在华为昇腾系列硬件上的插件
- etc.
Benchmark
参考:
vLLM 提供全面的基准测试工具,用于性能测试和评估:
- Benchmark CLI # 用于交互式性能测试的 vllm CLI 的 bench 子命令 和 专用基准测试脚本。
- 早期使用的是 benchmark_throughput.py 脚本,后来(TODO: 时间)将基准测试功能合并到 vllm CLI 中。
- 参数扫描 # 自动运行多个配置的
vllm bench,有助于优化和调优 。 - 性能仪表盘 # 自动化 CI,每次提交都会发布基准测试结果。
Benchmark CLI
说是 CLI,其实不是单只 vllm bench 子命令,还包含了部分 Python 脚本及其他可以在命令行执行的命令。
vLLM 基准测试有多种场景
- Offline Throughput Benchmark(离线吞吐基准测试) # 测试理论上 模型 + 硬件 的最大性能。
- 把所有请求一次性全部塞进去,让 vLLM 以最大批处理能力处理;没有网络、队列、并发控制、etc.
- 子命令:
vllm bench throughput
- Online Benchmark(在线基准测试) # 测试已经启动的推理服务的实际性能(e.g. 延迟、吞吐、etc.)
- 模拟真实用户按一定速率陆续发来请求。通过 HTTP 进入队列、等待、竞争、etc.
- 子命令:
vllm bench serve
- Long Document QA Benchmark(长文档 QA 基准测试) # 对采用前缀缓存的长文档问答性能进行基准测试。
- 使用脚本
benchmarks/benchmark_long_document_qa_throughput.py
- 使用脚本
- 其他待总结
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.