← 人工智能返回顶部

Evaluation & Benchmarking

LLM Benchmark 可以分为三个层次:

LLM Evaluation
├── Model Capability Benchmark
│   ├── Knowledge / Reasoning
│   ├── Mathematics / Coding
│   ├── Instruction Following
│   └── Long Context / Tool Calling
│
├── Inference Performance Benchmark
│   ├── TTFT / TPOT / ITL
│   ├── Latency / Throughput
│   ├── Concurrency / Goodput
│   └── GPU Memory
│
└── End-to-End Benchmark
    ├── Agent Task Success
    ├── RAG Quality
    ├── Tool Call Accuracy
    └── Latency / Cost / Reliability

1. Model Capability Benchmark

用于衡量模型本身的能力,而不是推理引擎运行速度。

常见评测维度:

  • 知识与事实准确性。
  • 数学和逻辑推理。
  • 代码生成。
  • 指令遵循。
  • 多语言能力。
  • 长上下文理解。
  • Tool Calling 和 Agent 能力。

常用指标

指标含义典型场景
Accuracy正确答案占比选择题
Exact Match(EM)预测与标准答案精确匹配QA、信息抽取
F1Precision 和 Recall 的调和平均QA、分类、抽取
Pass@k生成 k 个候选,至少一个通过测试的概率代码生成
Judge Score模型或人工按标准打分开放式回答

Pass@k

例如对于一道代码题:

Generate 5 Solutions

Solution 1 → Fail
Solution 2 → Fail
Solution 3 → Pass
Solution 4 → Fail
Solution 5 → Fail

这次采样的 5 个候选中至少有一个正确,因此对应的 Pass@5 事件为成功。

正式评测中,通常对多道题及多次采样统计 Pass@k;如果使用 n 个候选、其中 c 个通过测试,可以使用标准无偏估计:

pass@k⁡=1−(n−ck)(nk)\operatorname{pass@k}=1-\frac{\binom{n-c}{k}}{\binom{n}{k}}

注意:Pass@k 不是把单个答案的 Accuracy 简单乘以 k。

评测常见问题

  • Data Contamination:测试题或答案进入训练数据。
  • Benchmark Leakage:测试集、答案或评测信息泄漏。
  • Prompt Sensitivity:不同 Prompt / Chat Template 影响结果。
  • Sampling Differences:Temperature、Top-p、生成次数不同。
  • Judge Bias:LLM Judge 的长度偏好、位置偏好或模型偏好。

比较模型时,应尽量统一评测配置,并记录模型版本、Prompt、生成参数和评测程序版本。

2. 常见模型能力 Benchmark

Benchmark主要测试内容
MMLU / MMLU-Pro多学科知识与推理
GPQA / GPQA Diamond高难度科学推理
GSM8K数学文字题
HumanEval / MBPP函数级代码生成
SWE-bench真实软件仓库中的 Issue 修复
TruthfulQA事实真实性及常见错误观念
HellaSwag / ARC / WinoGrande常识与语言推理
LongBench / RULER长上下文理解和检索
BFCLFunction Calling 能力

SWE-bench

SWE-bench 让模型或 Agent 处理真实 GitHub Repository 中的软件问题。

GitHub Issue
      ↓
Agent Reads Repository
      ↓
Modify Code
      ↓
Run Tests
      ↓
Resolved / Failed

相比 HumanEval,它更接近真实软件工程。

但这类结果高度依赖 Agent Scaffold、工具权限、测试环境和执行预算,不能完全归因于基础模型。

此外,2026 年 OpenAI 公开指出 SWE-bench Verified 已受到明显数据污染,并建议改用更新、更可靠的评测基准。因此应谨慎使用 Verified 排行榜分数判断前沿编码能力。

3. Inference Performance Benchmark

推理性能 Benchmark 研究同一个模型在不同硬件、推理引擎、量化方案和负载下的运行效率。

核心指标

指标含义
TTFT请求到第一个输出 Token 的时间
TPOT第一个 Token 之后平均每个输出 Token 的生成时间
ITL连续输出 Token 之间的延迟
Latency请求端到端总耗时
Throughput每秒处理的请求或 Token 数
Concurrency同时进行中的请求数量
GPU Memory推理过程显存占用
Goodput满足指定延迟目标的有效处理吞吐量

TTFT 与 TPOT

对于输出 Token 数大于 1 的请求:

TPOT=Latency−TTFTOutputTokens−1TPOT=\frac{Latency-TTFT}{OutputTokens-1}

ITL 统计相邻输出之间的延迟,而 TPOT 一般是请求级平均值。

在 Streaming 中,两者相关但不完全相同。

不同 Benchmark 工具的测量位置与统计口径可能不同,比较前需要确认公式。

Goodput

Throughput 高不一定代表用户体验好。

假设服务器每秒完成 100 个请求,但是其中许多请求延迟超过要求。

Goodput 只统计满足 Service Level Objective(SLO)的请求。

例如:

SLO:
TTFT < 1 s
TPOT < 50 ms

100 requests/s total

80 requests/s meet SLO
20 requests/s violate SLO

Goodput = 80 requests/s

实际 SLO 阈值应由产品需求决定。

Goodput 对生产 Serving 尤其重要,因为它把系统处理能力与用户体验约束结合起来。

4. 推理性能测试场景

测试场景主要考察
短输入、短输出基础延迟与调度开销
长输入、短输出Prefill、TTFT
短输入、长输出Decode、TPOT
长输入、长输出综合性能、KV Cache
高并发请求Throughput、排队延迟、显存
重复 Prompt PrefixPrefix Cache 命中收益

负载模型

两个重要概念:

Closed-loop Benchmark

固定一定数量的并发客户端,一个请求完成后继续发起下一个。

N Concurrent Clients
       ↓
Request → Response → Next Request

Open-loop Benchmark

按照设定的请求到达速率发送请求,不必等待上一请求完成。

5 Requests/s
10 Requests/s
20 Requests/s
...

Open-loop 更适合研究给定请求到达速率下的排队、延迟和系统容量。

测试注意事项

应固定:

  • 模型及精度。
  • GPU 型号与数量。
  • 推理引擎版本。
  • 输入 / 输出 Token 长度分布。
  • 请求到达速率或并发数。
  • Prefix Cache 设置。
  • Sampling 参数。

还应考虑预热、测试时长和多次重复测量。

对延迟建议至少报告 P50、P95、P99,而不是只报告平均值。

5. End-to-End Benchmark

端到端评测关心整个应用是否真正完成用户目标。

User Request
      ↓
Application / Agent
      ↓
Retrieval / Tool Calling
      ↓
LLM
      ↓
Final Result
      ↓
Task Evaluation

常见指标:

指标含义
Task Success Rate任务完成比例
End-to-End Latency完成任务的总时间
Error / Failure Rate系统错误或任务失败比例
Retry Rate重试发生比例
Cost per Task每个任务的平均成本
Cost per Successful Task每个成功任务的成本

模型回答得好,不代表整个 Agent 或 RAG 应用一定能正确完成任务。

6. Agent Evaluation

Agent 评测主要关注工具选择、参数、执行路径和最终结果。

User Task
    ↓
Plan / Reason
    ↓
Select Tool
    ↓
Generate Arguments
    ↓
Execute Tool
    ↓
Observe Result
    ↓
Continue / Finish

核心指标

指标作用
Task Success Rate最终是否完成任务
Tool Selection Accuracy是否选择正确工具
Argument Accuracy工具参数是否正确
Trajectory Evaluation执行步骤是否合理
Steps per Task平均执行步数
Cost per Successful Task每个成功任务的成本
End-to-End Latency总执行时间

最重要的原则

Task Success Rate 通常比单独的 Tool-call Accuracy 更重要。

例如一个 Agent 工具选择完全正确,但最终没有完成用户任务,仍然应算任务失败。

同时,Steps 越少不代表一定越好;减少步骤不能以降低成功率为代价。

对于 Agent 系统,评测环境还应该尽量可重复,包括工具返回值、外部状态和测试数据。

7. RAG Evaluation

RAG 通常分成 Retrieval 与 Generation 两部分评估。

User Query
     ↓
Retriever
     ↓
Retrieved Documents
     ↓
LLM
     ↓
Generated Answer

Retrieval 指标

指标含义
Recall@kTop-k 结果覆盖了多少相关文档
Precision@kTop-k 中有多少文档相关
MRR第一个相关结果的排名质量
NDCG@k综合相关性等级和排序位置

Recall@k

例如某个 Query 有 4 篇相关文档。

Top-5 找到其中 3 篇:

[ Recall@5=\frac34=0.75 ]

如果只关心是否至少找到一篇相关文档,可以使用 Hit Rate@k,但它与 Recall@k 不完全相同。

Precision@k

Top-5 中有 3 篇相关:

[ Precision@5=\frac35=0.6 ]

MRR

Mean Reciprocal Rank 关注第一个相关结果的位置。

Rank 1 → 1
Rank 2 → 1/2
Rank 5 → 1/5
No relevant result → 0

对多个 Query 的倒数排名取平均。

NDCG@k

Normalized Discounted Cumulative Gain 同时考虑:

  • 文档相关性等级。
  • 文档排序位置。

高相关文档排在前面通常得到更高分数。

常见取值范围为 0~1。

Generation 指标

指标含义
Faithfulness回答内容能否被检索上下文支持
Answer Relevancy回答是否切题
Answer Correctness回答是否与参考答案或事实一致
Citation Accuracy引用是否真正支持对应结论

Faithfulness 与 Correctness

这两个概念容易混淆。

Faithfulness 衡量回答是否有检索上下文作为依据。

Correctness 衡量回答是否事实上正确。

例如,检索文档包含错误信息,LLM 忠实地复述:

Faithfulness → 可能很高
Correctness  → 可能很低

因此 RAG 不能只看 Faithfulness,还需要评估检索来源质量和最终答案正确性。

Ragas 将 Faithfulness、Context Precision、Context Recall、Response Relevancy 等作为不同评测指标。

8. 常用评测工具

工具主要用途
lm-evaluation-harness通用模型能力 Benchmark
LightEval模型能力评测
HELM多维模型评测
vLLM Benchmark CLIServing 性能测试
GuideLLM推理服务负载与性能评测
RagasRAG、LLM 应用指标
DeepEvalLLM、RAG、Agent 系统评测
SWE-bench软件工程 Agent 评测

vLLM Benchmark 示例

vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --model your-model-id \
  --dataset-name random \
  --num-prompts 100 \
  --request-rate 5

这个示例使用随机合成请求,适合初步性能测试;运行前需要启动兼容的模型服务,并确保模型名称一致。

实际压测应尽量使用与生产环境相似的 Prompt 长度及请求分布。

9. 评测结果的可靠性

Benchmark 的可信度不仅取决于评测集,还取决于实验设计。

重点检查:

问题对策
数据污染使用未见过的测试集或更新评测
Prompt 不一致统一 Prompt 和 Chat Template
随机性固定参数、多次重复测试
Judge Bias明确 Rubric、抽样人工核验
样本太少扩大测试集、报告统计不确定性
环境变化固定模型、引擎、硬件和版本
缓存干扰明确区分冷缓存与热缓存
过度优化公开题集使用独立的私有或真实业务测试集

尤其在 Agent/RAG 应用中,应建立与实际业务任务对应的小型内部评测集。

例如 100 条真实业务请求,通常比只依赖某个通用模型排行榜更有决策价值。

总结

Benchmark核心问题主要指标
Model Capability模型本身有多强?Accuracy、Pass@k、EM
Inference Performance推理服务运行得多快?TTFT、TPOT、Throughput、Goodput
End-to-End系统能否正确完成任务?Task Success、Cost、Latency
RAG Retrieval能否找到正确资料?Recall@k、MRR、NDCG
RAG Generation答案是否正确且有依据?Faithfulness、Correctness
Agent是否正确调用工具并完成任务?Task Success、Tool Accuracy

最重要的三个原则:

  1. 能力、速度和系统成功率需要分别评测,不能只看一个 Benchmark 分数。
  2. 公平比较需要固定测试条件,否则结果可能没有可比性。
  3. 生产系统应关注质量、延迟、吞吐量和成本的综合表现,而不只是追求最高 Tokens/s。

参考文档