你的基准测试结果,可能全是错的

2026年,AI推理框架的"性能对比"满天飞。vLLM说自己的吞吐量最高,SGLang说自己延迟最低,TensorRT-LLM说自己的性能最强。

但当你自己测试时,结果可能和官方差了一倍。 为什么?因为基准测试不是"跑一下就行"——输入长度、输出长度、batch size、并发数、GPU型号、CUDA版本、推理框架版本——每一个变量都影响结果。

基准测试需要严格的方法论。 以下是2026年推理性能基准测试的标准方法。

基准测试的"六大变量"

变量1:输入长度分布。 你的测试数据的输入长度分布是什么?全是短prompt(100 tokens)?全是长prompt(10000 tokens)?混合长度?输入长度直接影响TTFT。

变量2:输出长度分布。 你的测试数据的输出长度分布是什么?全是短回答(10 tokens)?全是长回答(1000 tokens)?输出长度直接影响TPOT和总吞吐量。

变量3:并发数。 测试时的并发请求数是多少?1个请求(单用户)?100个请求(高并发)?并发数直接影响吞吐量和延迟的trade-off。

变量4:GPU型号和数量。 H100和A100的性能差1.5倍。1张GPU和8张GPU的性能差得更多(考虑通信开销)。

变量5:推理框架版本。 vLLM 0.8和vLLM 0.9的性能可能差20%。必须记录框架版本。

变量6:精度和优化。 FP16、FP8、INT4?FlashAttention开启了吗?投机解码开启了吗?每一项优化都影响结果。

如果你不控制这6个变量,你的基准测试结果没有意义。

标准的基准测试方法

步骤1:定义测试场景。 你的应用场景是什么?

  • 实时对话:短输入(200 tokens),短输出(100 tokens),高并发(100+),低延迟要求(P99<500ms)
  • 批量分析:长输入(5000 tokens),长输出(2000 tokens),低并发(10),高吞吐量要求
  • 混合场景:输入/输出长度混合,并发数混合

步骤2:准备测试数据。 使用标准的测试数据集,保证可复现。

  • ShareGPT:真实的对话数据,包含多轮对话
  • LMSYS-Chat-1M:100万条对话数据
  • 自建数据集:根据你的场景构建

步骤3:设置测试参数。

  • 预热(Warmup):先跑100个请求,让GPU进入稳定状态,不作为正式测试结果
  • 持续时间:至少跑5分钟,确保结果稳定
  • 重复次数:至少跑3次,取平均值

步骤4:记录测试条件。 必须记录:

  • 输入/输出长度分布(平均值、P50、P95、P99)
  • 并发数
  • GPU型号、数量、CUDA版本
  • 推理框架版本、配置参数
  • 精度(FP16/FP8/INT4)、优化(FlashAttention/投机解码)

步骤5:报告测试结果。 必须报告:

  • 吞吐量(tokens/s,请求/s)
  • TTFT(P50、P95、P99)
  • TPOT(P50、P95、P99)
  • 端到端延迟(P50、P95、P99)
  • GPU利用率(%)
  • 显存使用量(GB)

常见的基准测试陷阱

陷阱1:只看平均值,不看分布。 P50延迟很好,但P99延迟可能很差。P99延迟才是用户体验的关键指标。

陷阱2:使用合成数据,而不是真实数据。 合成数据(如"请重复[1000个空格]")的分布和真实数据完全不同。基准测试必须用真实数据(或接近真实分布的数据)。

陷阱3:忽略预热。 第一次推理的延迟很高(因为GPU冷启动、CUDA kernel编译)。预热后的结果才是真实的推理性能。

陷阱4:使用不同的Prompt。 不同的Prompt可能导致不同的输出长度,从而影响结果。基准测试必须使用相同的Prompt(或相同的Prompt分布)。

陷阱5:忽略KV Cache的影响。 长上下文会导致KV Cache变大,推理速度变慢。基准测试必须考虑上下文长度的影响。

2026年推理性能基准测试的"标准配置"

硬件: H100 80GB(单卡或8卡,根据模型大小) 模型: Qwen 3.0 7B/72B(代表性的中文模型)和Llama 4 7B/70B(代表性的英文模型) 精度: FP8(H100原生支持)或FP16 优化: 默认开启FlashAttention,默认开启Continuous Batching 测试数据: ShareGPT(对话场景)和自建长文本数据集(长上下文场景) 并发数: 1(单用户)、32(中并发)、128(高并发)

结语:基准测试是"科学",不是"魔术"

基准测试不是"跑一下模型,看每秒生成多少token"。 它是严格的实验——需要控制变量、重复实验、报告完整结果。

下次你看推理框架的"性能对比"时,问三个问题:

  1. 测试条件是什么?(输入长度、输出长度、并发数、GPU型号)
  2. 测试数据是什么?(合成数据还是真实数据?)
  3. 报告了哪些指标?(只有吞吐量?还是TTFT、TPOT、P99延迟?)

如果这三个问题没有明确答案,这个基准测试结果不可信。


数据来源:MLPerf Inference Benchmark(2026),vLLM/SGLang/TensorRT-LLM基准测试文档,作者团队基准测试实践。