LLM Inference Lab
Metrics

这些指标到底在量什么

评测报告里的每一个数字都对应推理过程中的某个阶段。先讲清楚推理引擎在做什么,再逐个解释性能指标和质量指标,最后说明这套评测的局限。

vLLM两个阶段性能指标质量指标局限

vLLM 是什么

vLLM 是加州伯克利 2023 年开源的大模型推理引擎,现在是开源模型部署的事实标准。名字里的 v 来自"虚拟内存":它的核心发明 PagedAttention 把操作系统的分页思想搬到了显存管理上,把 KV cache 切成小块按需分配,显存利用率从传统做法的 20% 到 40% 提高到 90% 以上。

在一次部署里它负责:把权重加载并切到多张卡上(张量并行、流水线并行、专家并行),管理 KV cache,把同时到达的请求合批送进 GPU(连续批处理),对外提供 OpenAI 兼容的 HTTP 接口。vllm serve 启动服务,vllm bench serve 是它自带的压测客户端。同类工具还有 SGLang、TensorRT-LLM、llama.cpp。

推理的两个阶段

Prefill 一次性读完提示词,所有 token 并行计算,矩阵乘的规模是"token 数 × 隐藏维度",GPU 的算力被喂饱,瓶颈是算力。Decode 逐个生成输出 token,每生成一个都要把全部激活权重和 KV cache 从显存读一遍,算力大量闲置,时间花在搬数据上,瓶颈是显存带宽。两个阶段性质不同,所以性能指标也分开测。

A800 的显存带宽是 2 TB/s。一个每 token 激活 18B 参数、FP8 存储的模型,4 卡分摊后每卡每步要读 4.5 GB,理论下限约 2.3 ms。实测 GLM-5.3-Flash 的 TPOT 是 20 ms,差距来自内核效率、流水线气泡和通信开销。原理实验台第 2 站可以拨动这些参数看效果。

性能指标

指标含义对应阶段用户感受
Token模型处理文本的基本单位,约 0.7 个汉字或 0.75 个英文单词
TTFT首 token 延迟:从发出请求到收到第一个字,等于 prefill 时间加排队时间,随输入长度增长Prefill等多久才开始出字
TPOT每输出 token 耗时:decode 每步的时间。1000 ÷ TPOT 就是单流速度 tok/sDecode出字快不快,20 tok/s 以上感觉流畅
ITLtoken 间隔的分布,和 TPOT 同源,看抖动Decode出字是否均匀
吞吐 tok/s所有并发请求每秒合计产出的 token。GPU 一步同时算 16 条请求和算 1 条的耗时接近,所以并发越高吞吐越高,每条请求的 TPOT 变差Decode 批处理服务能同时伺候多少人
E2EL端到端延迟:一条请求从发出到最后一个字全程一次回答总共等多久
P50 / P99中位数和 99 分位。P99 反映最差的那 1% 请求有多慢,做服务时比平均值更重要最倒霉的用户体验
KV cache 容量显存里能同时装下多少 token 的上下文,决定并发和长上下文的上限显存

压测时用固定长度的随机输入并强制生成到指定长度(ignore_eos),是为了让不同模型的数字可比,不受它们"话多话少"的影响。并发 1 / 4 / 8 / 16 / 32 的曲线比单个数字更有信息量:曲线先陡后平的拐点就是算力墙。

质量指标

测试内容样本判分方式测什么
GSM8K小学应用题测试集 1319 题中抽 200只比最终数字是否精确一致多步推理
HumanEvalPython 函数补全全部 164 题真实执行模型写的代码跑隐藏单元测试,一次通过的比例即 pass@1代码能力,无法靠"看起来对"蒙混
C-Eval中文考试题,52 个学科验证集 1346 题中每科约 6 题,共 300比选项字母中文知识面
大海捞针长文本里埋一个 7 位密码4K 到 128K 各 3 次,深度 10% / 50% / 90%答案含该密码即对,同时记录延迟长上下文是否真的可用
JSON 合规从一句话抽取信息输出规定 JSON20 条字段集合和值完全正确指令遵循,能否接进程序
工具调用OpenAI tools 接口,两个函数10 条,含 1 条不该调用函数名和参数正确,不该调用时不调用Agent 场景的基础
图形题程序生成的圆和方块12 张,问数量 / 颜色 / 形状关键词匹配图片链路通不通,基础感知

附带记录平均输出长度和单题耗时,反映思考模式的开销;以及截断率,即思考太长没说完答案的比例。截断在本套评测里按答错计。

这套评测的局限

脚本都在仓库的 bench/ 目录:quality.py 跑质量,perf.sh 跑性能矩阵,report.py 汇总。