概述
评测,也叫评估,基准测试,Benchmark,有综述性论文值得一读。

挑战
大模型的评测难点在于其能力空间的无限维度性。传统NLP模型只需在特定任务上打分(如情感分析准确率),但LLM声称具备通用能力,带来以下根本性挑战:
- 能力范围的爆炸性扩张:从写诗、编程、证明数学定理到情感陪伴,单一指标无法刻画全貌。需要构建多维度、多任务的综合评测体系,但维度越多,测试成本越高,维度间的权重分配也充满争议。
- 开放式输出的评估困境:传统分类任务有明确的"正确答案",但"帮我写一篇关于气候变化的文章"不存在唯一正确答案。基于规则的指标(BLEU、ROUGE)与人类判断的相关性越来越低,逼迫评测体系转向LLM-as-Judge和人工标注,但这两种方法都有各自的偏差问题。
- 数据污染(Contamination):现代LLM的预训练数据体量极大(数十TB的网络数据),许多知名Benchmark的测试集(如MMLU、GSM8K)早已出现在训练集中。模型"记住答案"而非真正理解,导致Benchmark失效速度越来越快。GPT-4等模型在某些Benchmark上的分数已经超越人类基线,但实际应用能力仍存在明显差距。
- 评测与部署分布偏移:Benchmark设计时的任务分布与用户真实使用场景可能存在巨大偏差。如MMLU覆盖57个学科的多选题,但实际用户更常用LLM来调试代码、撰写邮件。
- 评判者偏差(Judge Bias):人工标注存在标注者主观偏好、文化背景差异、疲劳效应;LLM评判者(如GPT-4作为裁判)存在自我偏好(self-enhancement bias)和位置偏差(position bias)------倾向于给排在第一个的答案打高分。
演进
时间线:
2018 GLUE NLU多任务基准,标志评测进入多任务时代
2019 SuperGLUE 更难的NLU任务集合,引入复杂推理
2020 CLUE 中文NLU任务基准,对标GLUE
BIG-bench 多样性任务集合(200+任务),评测"涌现能力"
2021 MMLU 57学科知识测试,成为事实标准
TruthfulQA 首个系统性幻觉评测
2022 HellaSwag/ARC 常识推理成为重要维度
HumanEval 代码生成标准化评测
HELM 斯坦福提出"整体评估"框架
2023 AGIEval GPT-4时代下的人类考试题评测
MT-Bench 多轮对话+LLM-as-Judge范式
SuperCLUE 中文大模型综合评测
LMSYS Chatbot Arena 基于人类偏好的ELO排名
2024 MMLU-Pro 更难的MMLU升级版
LiveBench 持续更新、防污染的动态基准
SWE-bench 真实GitHub Issue修复基准
GPQA 博士级别学科难题
2025 多模态评测爆发 MMBench/MMMU/Video-MME等
Agent评测体系成熟 WebArena/AgentBench/OSWorld等
安全/对齐评测 红队测试、越狱攻防成为独立赛道
评测方法论分类
| 评测范式 | 描述 | 代表工具/数据集 | 优点 | 缺点 |
|---|---|---|---|---|
| 判别式评测 | 多选题/分类,有明确正确答案 | MMLU、ARC、HellaSwag | 客观、可重复、成本低 | 无法评估生成质量,易被选项刷高 |
| 生成式评测(规则) | 对比生成输出与参考答案 | HumanEval(pass@k)、ROUGE/BLEU | 可自动化,有一定解释性 | 参考答案单一,与人类判断相关性低 |
| LLM-as-Judge | 用强模型(GPT-4/Claude)评判 | MT-Bench、AlpacaEval | 接近人类判断,可扩展 | 裁判模型自身偏差,成本高 |
| 人类偏好排名 | 人类在两个答案中选优 | ChatbotArena(LMSYS) | 最贴近真实用户体验 | 极度耗时耗钱,难以标准化 |
| 基于执行的评测 | 运行代码/查询验证结果 | SWE-bench、HumanEval | 客观准确,无幻觉风险 | 仅适用于可执行任务 |
| 对抗/红队测试 | 主动寻找模型失败案例 | WMDP、HarmBench | 发现真实安全漏洞 | 成本高,覆盖不全 |
| 基于场景的评测 | 设计完整应用场景测试 | AgentBench、WebArena | 贴近实际使用 | 设计复杂,可重复性差 |
数据集
另起一篇大模型基础之评测数据集,包括两个主题:数据集汇总分类、如何构建高质量数据集。
评估能力
不同评测体系对LLM能力的划分维度各有侧重,给出3个参考的综合框架:
HELM
斯坦福提出的HELM的维度框架
HELM能力维度
├── 准确性(Accuracy)
├── 校准度(Calibration)
│ └── 模型信心与准确率是否匹配
├── 鲁棒性(Robustness)
│ ├── 对轻微改写的不变性
│ └── 对对抗性输入的稳定性
├── 公平性(Fairness)
│ ├── 各人口统计组的性能差距
│ └── 机会均等性
├── 偏见(Bias)
│ └── 输出中的社会刻板印象
├── 毒性(Toxicity)
│ └── 有害内容生成倾向
└── 效率(Efficiency)
├── 推理时延
└── Token成本
Evals
OpenAI的Evals能力分类
OpenAI Evals分类
├── 基础能力
│ ├── 问答(QA)
│ ├── 算术与数学
│ └── 翻译
├── 复杂推理
│ ├── 多步推理
│ ├── 假设推理
│ └── 抽象推理
├── 指令遵循
│ ├── 约束格式
│ ├── 条件逻辑
│ └── 角色维持
├── 知识与理解
│ ├── 事实知识
│ ├── 常识推理
│ └── 专业知识
└── 安全与对齐
├── 有害内容拒绝
├── 幻觉控制
└── 价值观一致性
CAICT
根据中国信通院(CAICT)2024年发布的《大模型基准测试体系研究报告》,将大模型能力划分为:
大模型能力三层框架
├── 基础能力层
│ ├── 语言能力
│ │ ├── 语法正确性
│ │ ├── 语义理解
│ │ ├── 语篇连贯性
│ │ └── 多语言能力
│ ├── 知识能力
│ │ ├── 事实知识密度
│ │ ├── 知识时效性
│ │ └── 知识覆盖广度
│ └── 推理能力
│ ├── 逻辑推理
│ ├── 数学推理
│ └── 常识推理
├── 应用能力层
│ ├── 代码能力
│ ├── 对话能力
│ ├── 创作能力
│ ├── 检索增强能力
│ └── 工具调用能力
└── 安全对齐层
├── 价值观对齐
├── 有害内容过滤
├── 幻觉控制
└── 隐私保护
指标
通用指标
分类任务指标
准确率: A c c u r a c y = ( T P + T N ) / ( T P + T N + F P + F N ) Accuracy=(TP + TN) / (TP + TN + FP + FN) Accuracy=(TP+TN)/(TP+TN+FP+FN)
适用:多选题、分类任务。问题:类别不平衡时不可靠。
精确率(Precision)、召回率(Recall)、F1:
Precision = TP / (TP + FP)
Recall = TP / (TP + FN)
F1 = 2 × Precision × Recall / (Precision + Recall)
适用:NER、关系抽取、有害内容检测等二/多分类任务。
宏平均 F1(Macro F1)vs 微平均 F1(Micro F1):
- Macro F1:各类别 F1 平均,不考虑类别频率(适合不平衡)
- Micro F1:将所有样本合并后计算(适合多标签)
MCC(Matthews Correlation Coefficient):
MCC = (TP×TN - FP×FN) / √((TP+FP)(TP+FN)(TN+FP)(TN+FN))
对于类别不平衡问题,MCC比F1更可靠,范围[-1,1]。
排名评测指标
ELO Rating:用于 Chatbot Arena 等对战评测:
E(A) = 1 / (1 + 10^((R_B - R_A) / 400))
R_A' = R_A + K × (S_A - E(A))
其中 S_A=1(赢)/0.5(平)/0(输),K 为更新步长。
优点:支持非传递性比较,不需要所有模型两两对战。
Bradley-Terry 模型:
Chatbot Arena 也使用 BT 模型来拟合人类偏好数据,相比ELO更稳健。
校准度指标
ECE(Expected Calibration Error):
ECE = Σ (|B_m| / n) × |acc(B_m) - conf(B_m)|
评测模型的置信度是否与实际准确率匹配,ECE=0为理想校准。
Brier Score:
BS = (1/n) Σ (f_t - o_t)^2
预测概率与实际结果的均方误差,越小越好。
NLU/NLG 专项指标
文本相似度
EM(Exact Match):
EM = 1 if normalize(prediction) == normalize(reference) else 0
规范化通常包括:小写化、去标点、去冠词。适用:SQuAD 等抽取式 QA。
F1(Token-Level):
共同 token 数 / max(预测 token 数, 参考 token 数)
比 EM 更宽松,处理答案边界模糊问题。
机器翻译 / 摘要生成指标
BLEU(Bilingual Evaluation Understudy):
BLEU = BP × exp(Σ w_n × log p_n)
其中 BP = min(1, exp(1 - r/c)) (简洁度惩罚)
p_n = n-gram 精确率
- BLEU-4 是最常用的变体(1~4 gram 组合)
- 问题:不考虑语义,对同义替换敏感;无法评估句子流畅性
ROUGE(Recall-Oriented Understudy for Gisting Evaluation):
ROUGE-N = (匹配的 n-gram 数) / (参考摘要的 n-gram 总数)
ROUGE-L = LCS 长度 / 参考摘要长度(F1形式)
- ROUGE-1、ROUGE-2、ROUGE-L 最常用
- 更侧重召回,适合摘要评测
METEOR:
结合同义词匹配和词序惩罚,与人类判断相关性高于 BLEU:
- 单词精确/召回匹配 + 同义词匹配 + 词根匹配
- 按 F1 组合,再乘以片段惩罚因子
ChrF:
基于字符 n-gram,语言无关,对中文等分析语言更友好:
ChrF = (1 + β²) × ChrP × ChrR / (β² × ChrP + ChrR)
BERTScore:
基于 BERT 的语义相似度,与人类判断相关性远高于 BLEU:
BERTScore = F1(BERT_embedding(pred), BERT_embedding(ref))
使用 DeBERTa-xlarge-mnli 版本效果最好。
COMET(Crosslingual Optimized Metric for Evaluation of Translation):
当前翻译质量评测的最优选择:
- 基于 XLM-R 预训练模型
- 在人类评分数据上微调
- COMET-22(wmt22-comet-da)是推荐版本
- 与人类 DA(直接评估)分数的相关性约 0.85+
对话/生成评测指标
Perplexity(困惑度):
PPL = exp(-1/N × Σ log P(w_i | w_1...w_{i-1}))
- 衡量语言模型对测试集的"惊讶程度",越低越好
- 不同模型/分词器之间不可比
- 主要用于同一分词器的语言模型训练监控
Distinct-N = 唯一 n-gram 数 / 总 n-gram 数
衡量生成文本的多样性,常用于对话生成评测。
生成质量指标
LLM-as-Judge 已成为评测开放生成质量的主流方法:
Pointwise Scoring(逐条打分):
Prompt: "请对以下回答按照1-10分进行评分,评分标准包括:
帮助性(40%)、准确性(30%)、相关性(20%)、简洁性(10%)"
代表:MT-Bench(GPT-4 打分)、FastChat 评测
Pairwise Comparison(成对比较):
Prompt: "给定以下两个回答A和B,哪个更好?请输出'A'或'B'或'Tie'"
代表:Chatbot Arena、AlpacaEval
Reference-Guided(参考引导):
Prompt: "给定参考答案,评估模型输出与参考答案的质量差异..."
代表:G-Eval
G-Eval 框架:
Yang et al. 2023,用 GPT-4 评测文本摘要质量的四个维度:
- Coherence(连贯性):逻辑结构是否合理
- Consistency(一致性):是否与原文一致(无幻觉)
- Fluency(流畅性):语言是否自然
- Relevance(相关性):是否覆盖原文关键信息
已知偏差类型与缓解方法:
| 偏差类型 | 描述 | 缓解方法 |
|---|---|---|
| 位置偏差 | 更倾向于第一个答案 | 交换 A/B 位置,取平均 |
| 冗长偏差 | 更倾向于更长的答案 | 长度控制,AlpacaEval 2.0 引入 LC Win Rate |
| 自我强化偏差 | 更倾向于与自身风格相似的答案 | 使用不同家族的评判模型 |
| 权威偏差 | 倾向于给出自信语气的答案打高分 | 匿名化并控制语气 |
| 美化偏差 | 倾向于格式更好看的答案 | 去除 Markdown 格式 |
代码评测
pass@k:评估代码生成模型的能力,表示对同一问题生成k个样本时,至少有一个通过测试的概率。k越大越能反映模型的探索能力与多样性。
python
def pass_at_k(n, c, k):
"""
n: 每道题生成的代码数
c: 通过的代码数
k: 评测时选择的代码数
"""
if n - c < k:
return 1.0
return 1.0 - comb(n - c, k) / comb(n, k)
@1<@10<@100,常用:
- pass@1:最严格
- pass@8:
- pass@32:
- pass@10:展示模型潜力
测试覆盖率(Coverage):生成代码覆盖的测试用例比例,比pass@k更细粒度。
代码质量指标:
- Cyclomatic Complexity:代码圈复杂度
- Lines of Code(LOC):代码行数
- Maintainability Index:可维护性指数
- Halstead Metrics:程序复杂度理论指标
SWE-bench 指标:
- %Resolved:成功修复的Issue比例
- Patch Apply Rate:生成的补丁可以成功应用的比例
- Test Pass Rate:通过相关测试用例的比例
多模态评测指标
图像生成质量
FID(Fréchet Inception Distance)(越低越好):
FID = ||μ_r - μ_g||² + Tr(Σ_r + Σ_g - 2(Σ_r Σ_g)^(1/2))
- μ_r, Σ_r:真实图像 InceptionV3 特征的均值和协方差
- μ_g, Σ_g:生成图像对应特征
- 评测分布级别的逼真性,需要至少 50K 张生成图像才稳定
IS(Inception Score)(越高越好):
IS = exp(E_x[KL(p(y|x) || p(y))])
- p(y|x):单张生成图像的分类概率(越集中越好,代表质量高)
- p(y):所有生成图像的平均类别分布(越均匀越好,代表多样性强)
- 问题:不考虑与真实数据的距离,已逐渐被 FID 替代
CLIP Score(越高越好):
CLIP_Score = 100 × max(cos(I_feat, T_feat), 0)
- I_feat:CLIP 图像编码器特征
- T_feat:CLIP 文本编码器特征
- 评测文本与图像的语义对齐度
VQAScore(越高越好):
VQAScore(I, T) = P(answer="Yes" | Q="Does the image show {T}?", I=I)
- 用 VQA 模型回答"图像是否符合文本描述"
- 比 CLIP Score 更能处理组合性描述和复杂空间关系
DINO Score(越高越好):
- 使用 DINO 自监督特征计算图像相似度
- 常用于评测风格一致性(如基于参考图生成的风格迁移)
多模态理解指标
VQA Accuracy(VQA 准确率):
VQA_acc(ans) = min(1, (与 ans 一致的人类答案数) / 3)
注意:VQA v2 采用 10 个人工答案,评测方式特殊,需要与多数人答案一致。
ANLS(Average Normalized Levenshtein Similarity):
ANLS = (1/N) Σ max_a NLS(predicted, a)
NLS = 1 - ED(predicted, a) / max(len(predicted), len(a))
用于 DocVQA 等包含长文本答案的任务,比精确匹配更宽松。
安全评测指标
幻觉评测指标
FactScore:
FactScore = (1/N) Σ 被知识库支持的原子事实比例
将生成文本分解为"原子事实"(最小不可分割的事实声明),逐条核查。
Hallucination Rate:= 幻觉响应数 / 总响应数
对于不同类型幻觉(事实幻觉、忠实幻觉、常识幻觉)分别统计。
SelfCheckGPT:不一致性分数 = 1 - (多次采样的 n-gram 一致度)
不依赖外部知识库,通过模型自一致性检测幻觉。
有害内容评测指标
ASR:Attack Success Rate,成功越狱的攻击数 / 总攻击数,越低越好(安全模型应使 ASR 接近 0)。
False Refusal Rate,FRR = 不该拒绝却拒绝的请求数 / 合法请求总数
评测过度拒绝问题(如XSTest数据集设计的目标)。
Safety Score(Llama Guard类):
Meta的Llama Guard系列模型专门用于二分类安全评测:
- 输出:Safe / Unsafe + 违规类别
- 可集成到评测流水线作为自动安全评测器
偏见评测指标
Bias Score:
Bias Score = |P(stereotype|Group A) - P(stereotype|Group B)|
衡量不同人口统计组之间的刻板印象概率差异。
BBQ Bias Score:
bbq_bias = (Σ biased_choice - Σ anti_biased_choice) / total
负值表示反刻板印象偏向,正值表示刻板印象偏向,理想值为 0。
RAG评测指标
RAG系统涉及检索+生成两个模块,各有专项指标:
检索评测指标
MRR(Mean Reciprocal Rank):
MRR = (1/|Q|) Σ 1/rank_i
第一个相关文档出现的位置倒数的平均值,越高越好。
NDCG(Normalized Discounted Cumulative Gain):
DCG_k = Σ rel_i / log2(i+1)
NDCG_k = DCG_k / IDCG_k
考虑相关性分级(不只是 0/1),位置越靠前权重越高,常用 @10。
MAP(Mean Average Precision):
AP = Σ (P@k × rel(k)) / R
MAP = (1/|Q|) Σ AP_i
综合考虑精确率和召回率,适合评测整体排序质量。
Recall@K = 检索到的相关文档数 / 相关文档总数(限前K个)
生成质量指标(RAG 专用)
RAGAS指标:
| 指标 | 公式概述 | 衡量什么 |
|---|---|---|
| Faithfulness | 答案中被检索上下文支持的声明比例 | 答案是否忠实于检索到的文档,不产生幻觉 |
| Answer Relevance | 问题和答案的语义相似度 | 答案是否回答了问题 |
| Context Precision | 检索到的相关上下文在排序中的位置 | 检索结果中有多少是真正相关的 |
| Context Recall | 答案中的信息能被检索上下文覆盖的比例 | 检索是否找回了足够的信息 |
TruLens RAG Triad:
| 指标 | 说明 |
|---|---|
| Context Relevance | 检索到的上下文与输入问题的相关性 |
| Groundedness | 答案是否完全基于检索上下文(无添加) |
| Answer Relevance | 答案是否回答了原始问题 |
Agent评测指标
任务完成度指标
SR(Success Rate):
SR = 成功完成任务数 / 总任务数
Agent 最核心指标,但"成功"的定义依场景而定。
Progress Rate:
PR = 完成的子任务数 / 总子任务数
对于长任务,即使最终失败也能捕捉部分完成情况。
Efficiency(效率指标):
Steps_Ratio = 完成任务使用的步数 / 最优步数
Cost_Ratio = 使用的 token 数 / 任务基准 token 数
工具调用指标
Tool Selection Accuracy:
TSA = 正确选择工具的次数 / 总工具调用次数
Argument Correctness:
AC = 参数完全正确的调用次数 / 总调用次数
BFCL的评测方式:
- AST解析比较(对于Python类语言)
- JSON结构比较(对于REST API)
- 执行验证(实际运行并检查结果)
其他
FPS
TTFF
Dino-S:身份一致性指标
ASE
AssistantBench
GenBench
WebArena
HLE:Humanity's Last Exam
BrowseComp
xbench-DeepSearch
SEAL-0
FRAMES
SimpleQA
文档
智能文档处理排行榜:一个全面的基准测试平台,跟踪和评估视觉语言模型在OCR、关键信息提取(Key Information Extraction,KIE)、文档分类、表提取和其他智能文档处理任务中的性能。
Online-Mind2Web
https://huggingface.co/spaces/osunlp/Online_Mind2Web_Leaderboard
HELMET
评估套件中的多个任务
- 召回:从随机生成的长JSON文件中检索特定键对应的值。
- RAG:基于多个检索和打乱的维基百科文档回答问题。
- 重排序:对给定查询和多个检索文档进行重排序。
- ICL:多轮上下文学习任务。
- QA:基于长文档回答问题。
- 摘要:对长法律文档进行摘要。
框架
另起一篇,参考大模型评测框架。
挑战
LLM评测领域当前面临的核心挑战
- 基准饱和:Benchmark Saturation
| Benchmark | 人类基线 | 当前最优模型 | 状态 |
|---|---|---|---|
| MMLU | ~89.8%(专家) | ~92%(o3) | 接近饱和 |
| HellaSwag | ~95.6%(人类均值) | ~95.3%(GPT-4) | 已饱和 |
| ARC-Easy | ~99%(人类) | ~98%+ | 已饱和 |
| GSM8K | ~100%(人类) | ~99%(o3) | 已饱和 |
| GPQA | ~65%(博士) | ~87.7%(o3) | 快速接近饱和 |
| SWE-bench | ~100%(人类专家) | ~55%(Devin2.0) | 仍有差距 |
- Goodhart 定律与评测博弈。核心问题:当一个指标变成目标,它就不再是一个好指标 。具体到LLM评测场景下,模型开发者可以:
- 在测试集相关数据上专门微调(过拟合Benchmark)
- 对测试格式针对性优化Prompt策略
- 利用数据污染(训练集包含测试集题目)
- 优化"看起来好"但不真正有用的指标(如AlpacaEval中的回答长度)
应对策略:保密测试集、多 Benchmark 综合评估、使用不可预备的实时数据。
- 评测成本与可及性
| 评测方式 | 成本 | 速度 | 准确性 |
|---|---|---|---|
| 人工评测 | 极高 | 慢 | 最高 |
| GPT-4评判 | 较高($5-20/千条) | 快 | 中高 |
| 开源评判模型(Prometheus/JudgeLM) | 低 | 快 | 中(接近GPT-4) |
| 规则/程序化验证 | 极低 | 极快 | 适用于特定任务 |
- 人类基准的问题
- 众包工人 vs 领域专家的差距
- 多选题格式与真实任务能力的不对应
- 文化偏见(以西方大学生为标准)
- 人类基线本身也随时间和激励变化
前沿研究方向
动态基准
LiveBench(2024,ICLR 2025 Spotlight):
- 每月从 AIME 竞赛、arXiv论文、新闻更新题目
- 所有题目有程序化验证的客观答案
- 按训练截止日期锁定,防污染
设计原则:时间截止、程序化验证、持续更新
基于IRT的自适应测试
Item Response Theory(IRT):
P(正确 | θ, a, b, c) = c + (1-c) × 1/(1+exp(-a(θ-b)))
θ: 模型能力 a: 题目区分度 b: 难度 c: 猜测系数
- 用少量题目估算模型能力参数 θ θ θ
- 自适应选题(CAT):用更少题目达到同等评测精度
真实世界基准
SWE-bench(2024):2294个真实GitHub Bug修复任务,需理解大型代码库。
GAIA(General AI Assistant):真实个人助理任务(订餐、查文献、制定计划),需要多步推理+工具调用。人类完成率92%,GPT-4初期仅约15%。
OSWorld:369个真实计算机任务,需操作桌面应用(文件管理、表格、浏览器等)。
后Benchmark时代的评测探索
| 方向 | 代表 | 优缺点 |
|---|---|---|
| 持续人类对战 | ChatbotArena | 真实用户偏好,动态防污染;但昂贵、不可控 |
| LLM-as-Examiner | 动态出题模型 | 防污染、难度自适应;裁判自身偏差 |
| 基于任务完成 | SWE-bench、GAIA | 最贴近真实能力;设计复杂、难以标准化 |
| 行为测试 | BehaviorBench | 测试行为一致性而非知识 |
多语言与文化公平评测
- 翻译数据集的问题:翻译腔、文化元素丢失
- 原创多语言数据集:OCNLI(中文)、CValues(中国价值观)、CCBench(中国文化视觉)
- 低资源语言评测:FLORES-200(200种语言)、Okapi(26种语言MMLU等效)
py