30 分钟完成大模型性能基准测试:vLLM 与 EvalScope 部署选型实战

30 分钟完成大模型性能基准测试:vLLM 与 EvalScope 部署选型实战

【免费下载链接】self-llm 《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程 【免费下载链接】self-llm 项目地址: https://gitcode.com/GitHub_Trending/se/self-llm

这套组合帮你回答一个具体问题:同一块 GPU 上,哪个模型、哪种推理框架更快,快多少。用 vLLM 自带的 benchmark_throughput.py 跑离线吞吐,再用 EvalScope 做并发压测,最终拿到请求吞吐量(req/s)、总 token 吞吐量、输出 token 吞吐量三组可对比的硬指标。文中全部命令取自《开源大模型食用指南》教程,复制即用。

同一块 GPU 上,怎么快速判断谁快、差多少

选型时最常见的问题不是"能不能跑",而是"跑得快不快":两个候选模型同挂一块卡,谁先扛住线上并发?凭感觉不行,需要一套可复现的基准测试流程。这套流程很短——离线吞吐对比定框架,并发压测定并发,全程 30 分钟内可以扫完一轮。

vLLM 与 EvalScope 各管什么

大模型性能基准测试里"性能"有两层:模型本身答得好不好,是准确率问题;跑得快不快、扛不扛并发,是吞吐问题。选型阶段主要看后者,前者可以借用现成的对比图建立心理预期:

大模型性能基准测试中的多模型准确率对比

工具分工

  • benchmark_throughput.py:vLLM 生态里的离线吞吐脚本,一次跑完全部请求,直接输出 requests/s 与 tokens/s。适合横向对比不同推理框架、不同模型在同一硬件上的生成速度。仓库 models/Qwen2.5/ 等目录里就有配套脚本,可参考 vLLM 部署调用教程 中的推理速度测试一节。
  • EvalScope:魔搭社区官方评测框架,装 evalscope[perf] 后即可做服务化压测。它面向"已部署的服务端点",按梯度并发打真实请求,适合定线上并发水位。参考 EvalScope 并发测试教程。

一句话决策:比速度用前者,压并发用后者,两者互补不替代。

3 步跑通吞吐量测试

先克隆教程仓库、装好压测依赖:

git clone https://gitcode.com/GitHub_Trending/se/self-llm
pip install "evalscope[perf]" -U

第一步,离线吞吐。把 benchmark_throughput.py 放到模型同目录下执行:

python benchmark_throughput.py \
  --model /root/autodl-tmp/qwen/Qwen2.5-7B-Instruct \
  --backend vllm \
  --input-len 64 --output-len 128 \
  --num-prompts 25 --seed 2024 \
  --max-model-len 512

关键参数只有四个:--model 指路径,--input-len/--output-len 定输入输出长度,--num-prompts 定样本量。它还能切 --backendvllm/hf/mii),同一个模型换后端再跑一遍,框架差距立刻现形。

第二步,并发压测。服务起好后用 EvalScope 按梯度打请求:

evalscope perf \
  --url http://localhost:8000/v1/chat/completions \
  --model qwen2.5-7b \
  --parallel 16 --number 100 \
  --api openai --stream

--parallel 是并发数,--number 是总请求数。5、10、16、32 这样逐档往上加,每档记一个总吞吐,拐点就是该硬件下的合理并发上限。

结果里看哪三个数

指标含义什么时候用它
Output token throughput (tok/s)单位时间新生成的 token 数用户等回答时长,最贴近体感
Total token throughput (tok/s)输入 + 输出总 token 速率长上下文批处理场景
Request throughput (req/s)单位时间完成的请求数服务容量与扩卡决策

拿真实数据说话:结果怎么读

以 Qwen2.5-7B-Instruct 教程 中的实测为例(单卡 RTX 4090D,输入 64 / 输出 128 / 25 条请求):

推理后端Request throughput (req/s)Total token throughput (tok/s)
vLLM9.141754.43
Transformers (hf)6.991342.53
差距+30.8%+30.7%

读法:vLLM 比 Transformers 基线快约 34%,这就是"换框架值不值"的直接答案。另一份并发梯度测试(4 卡 H20 部署 GLM-4.5-Air,每档 100 请求):

并发数总 token 吞吐 (tok/s)备注
5680爬坡区
101050接近峰值
201020到达拐点
32870排队拖慢整体

20 并发后吞吐掉头向下,说明再加并发只会堆排队,不会堆吞吐。注意:数字只供同机对比,跨机器横比没有意义,教程里也明确提醒过这一点。

测试翻车时的两个高频问题

  • 结果波动大:固定 --seed,把 --num-prompts 加大到 50 以上,同一配置跑 3 次取均值;同时清掉卡上其他进程——一个后台训练任务就够把吞吐拉低两位数百分比。
  • 显存装不下:压低 --gpu-memory-utilization(默认 0.9),或缩短 --max-model-len、改用 4bit 量化权重;压测侧则直接降 --parallel

30 分钟快速上手

  1. 环境就绪:GPU 空闲、vLLM 可 serve 目标模型。
  2. 第 0–10 分钟:跑 benchmark_throughput.py,记下 tokens/s 与 req/s,必要时换后端再跑一遍。
  3. 第 10–30 分钟:evalscope perf 扫 5/10/16/32 四档并发,记录每档总吞吐与 P99 延迟。
  4. 决策:输出 token 吞吐高的做在线服务,出现拐点的并发数写入容量规划。

两个工具各司其职,三组指标对上号,选型争论就可以结束了。

【免费下载链接】self-llm 《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程 【免费下载链接】self-llm 项目地址: https://gitcode.com/GitHub_Trending/se/self-llm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值