10分钟跑通大模型推理性能测试:vLLM 吞吐量压测脚本完整指南
【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm
部署开源大模型时,你最先卡住的问题往往是:这台机器到底跑这个模型有多快?选 vLLM 还是原生 Transformers,差距有多少?本文带你用vLLM 吞吐量压测(benchmark_throughput,官方自带基准测试脚本)十分钟拿到 requests/s、tokens/s 指标,让"感觉挺快"变成可对比的数字。
关键指标速览 📊
- 吞吐量(Throughput):单位时间内模型处理的数据总量,分请求数和 token 数两种口径
- requests/s:每秒完成多少条提示词请求,衡量服务能扛多少并发
- tokens/s:每秒处理多少 token(含输入+输出),衡量计算总效率
- 输入/输出长度:压测时人为固定的 prompt 长度和生成长度,决定单次请求的负载
- 对比基线:同一脚本支持
vllm、hf(HuggingFace Transformers)两个后端,同一台机器跑两次即可量化加速比
图:不同大模型在各类基准测试上的表现对比,吞吐测试解决的是"跑得多快",这类榜单解决"答得多好"
从零跑通第一次测试
环境准备
你只需要一台有 NVIDIA GPU 的机器(仓库示例中 7B 模型用 RTX 3090 即可),装好 vLLM:
pip install vllm git clone https://gitcode.com/GitHub_Trending/se/self-llm cd self-llm压测脚本已放在仓库的 models/Qwen2/benchmark_throughput.py,把它拷到你的模型目录旁边即可。
执行测试
以 Qwen2-7B-Instruct 为例,一条命令跑起 vLLM 后端压测:
python benchmark_throughput.py \ --model /root/autodl-tmp/qwen/Qwen2-7B-Instruct \ --backend vllm \ --input-len 64 \ --output-len 128 \ --num-prompts 25 \ --max-model-len 512关键参数说明:
--model:模型本地路径--input-len/--output-len:固定每条请求的输入和输出长度--num-prompts:测试样本数,首次跑用 25 足够
图:压测前先在镜像/框架层面确认 PyTorch 与 CUDA 版本匹配
想量化加速比,把--backend vllm改成--backend hf并加上--hf-max-batch-size 25再跑一次即可。仓库里 Qwen2 的 vLLM 部署教程 有完整对照流程。
看懂输出结果
脚本跑完会打印一行核心结果:
Throughput: 7.68 requests/s, 1474.75 tokens/s新版 vLLM 的脚本会输出三个值,各字段含义对照如下:
| 指标 | 含义 | 健康参考值 |
|---|---|---|
| requests/s | 每秒完成的请求数 | 7B 模型消费级显卡上:5~30,长度越短越高 |
| total tokens/s | 输入+输出 token 总吞吐 | 同硬件 7B 模型约 1000~6000,随长度翻倍变化 |
| output tokens/s | 模型净生成速度 | 通常约为 total 的 1/1.5~1/2 区间 |
仓库实测数据:同一块卡上 Qwen2-7B 走 vLLM 是 7.68 requests/s,走 hf 后端只有 5.73 requests/s,vLLM 快约 34%;DeepSeek-R1-Distill-Qwen-7B 短文本场景甚至跑到 29.34 requests/s。判断你的结果是否合理,看同后端、同长度下的量级即可。
踩坑与排障 🔧
显存不够(OOM)应对:先降--num-prompts,再调小--input-len/--output-len;vLLM 默认占 90% 显存,可用--gpu-memory-utilization 0.8留出余量。
两次结果波动很大应对:固定--seed,把--num-prompts加到 50 以上,跑之前nvidia-smi确认没有别的进程占着 GPU。
hf 后端直接报错应对:--hf-max-batch-size只对 hf 后端生效但必填,漏了脚本会直接抛错;反之 vllm 后端传了它也会报错,别混着抄命令。
图:显存紧张时换一张大显存的卡,是比降并发更直接的解法
收个尾
- 一条
benchmark_throughput.py命令就能拿到 requests/s 与 tokens/s,无需自己写压测代码 - 同机器、同长度下对比
vllm和hf两个后端,加速比一目了然 - 指标要固定长度、固定 seed、固定样本数才可比,别拿不同配置的数硬比
- 7B 模型单卡即可压测,先跑短文本(64/128)定位瓶颈,再测长文本
现在就选一个你部署过的模型,把上面的命令填上路径跑一遍,明天对比推理引擎时你就有数据说话了。
【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考