LLM 评测体系详解
目录
1. 概述
1.1 为什么需要系统化评测
大模型的能力边界不断扩展,但「能力强」是一个模糊的概念。系统化评测的核心目标是将模型能力转化为可量化、可比较、可复现的指标,从而回答三个关键问题:
- 能力有多强? 在特定任务上,模型的准确率 / 得分是多少?
- 和谁比? 与竞品模型、上一版本、人类的差距有多大?
- 可信吗? 评测结果是否真实反映模型能力,还是被数据污染、基准过拟合等噪声干扰?
1.2 评测的分类
评测方法按自动化程度可分为两大类:
| 类型 | 特点 | 代表 |
|---|---|---|
| 自动基准 | 客观、可复现、规模化 | MMLU, GSM8K, HumanEval |
| 人工 / LLM 裁判 | 处理主观、开放任务 | MT-Bench, Chatbot Arena |
自动基准 依赖固定数据集和标准化指标(准确率、F1、pass@k 等),适合大规模横向对比。人工 / LLM 裁判 面向难以用固定答案衡量的任务(如创意写作、多轮对话、指令遵循),通常由人类标注者或强模型作为裁判进行打分。
1.3 核心原则
- 多基准交叉印证:不只看单一分数,模型可能在某个基准上表现好但泛化差。需要覆盖知识、推理、代码、对齐等多个维度,交叉验证。
- 区分「能力」与「对齐」指标:能力指标衡量模型「知道什么、能做什么」(如 MMLU、GSM8K),对齐指标衡量模型「回答得好不好、是否符合人类偏好」(如 MT-Bench、Arena Elo)。两者不可混淆。
- 评测设置透明化:prompt、few-shot 示例、temperature、解码策略等都会显著影响分数,报告时必须完整记录。
2. 能力维度与代表基准
2.1 能力-基准全景表
| 维度 | 代表基准 | 任务形式 | 指标 | 说明 |
|---|---|---|---|---|
| 知识 | MMLU | 4 选 1 选择题 | Accuracy | 57 个学科,从初等到专业 |
| C-Eval | 4 选 1 选择题 | Accuracy | 中文多学科,52 个领域 | |
| CMMLU | 4 选 1 选择题 | Accuracy | 中文多学科,67 个主题 | |
| TriviaQA | 问答 | F1 / Exact Match | 百科知识型问答 | |
| 推理 | GSM8K | 数学应用题 | 最终答案准确率 | 小学数学,8.5K 题,需 CoT 推理 |
| MATH | 竞赛数学 | 答案准确率 | AMC/AIME 级别,需符号推理 | |
| BBH | 多选题 + 生成 | Accuracy | 23 个 BIG-Bench 难任务 | |
| LogiQA | 选择题 | Accuracy | 逻辑推理,中英双语 | |
| GPQA | 选择题 | Accuracy | 研究生级科学推理,专家验证 | |
| 代码 | HumanEval | 函数补全 | pass@k | 164 题,单测验证 |
| MBPP | 函数补全 | pass@k | 974 题,含描述 | |
| LiveCodeBench | 编程题 | pass@k | 定期更新,防污染 | |
| DS-1000 | 数据分析 | pass@k | Pandas/NumPy 等库 | |
| 对齐 | MT-Bench | 多轮对话 | LLM-Judge 1-10 分 | GPT-4 裁判,8 类问题 |
| AlpacaEval | 单轮指令 | Win Rate vs GPT-4 | 长度控制版 LC | |
| Arena-Hard | 单轮指令 | Win Rate | 500 个高难度 prompt | |
| Chatbot Arena | 人工对战 | Elo 分 | 众包比较,真实偏好 | |
| 真实性 | TruthfulQA | 选择题 + 生成 | Accuracy / Truthfulness | 测「不说谎」,对抗常见误解 |
| HaluEval | 二元分类 | Accuracy | 幻觉检测数据集 | |
| RealTimeQA | 问答 | Accuracy | 实时知识,防过时记忆 | |
| 多模态 | MMBench | 选择题 | Accuracy | 20 个能力维度 |
| MME | 是/否判断 | Accuracy | 14 个感知+认知子任务 | |
| POPE | 是/否判断 | Accuracy / F1 | 测视觉幻觉 | |
| MMMU | 选择题 | Accuracy | 多学科多模态理解 |
2.2 知识维度
MMLU(Massive Multitask Language Understanding)是当前最广泛使用的大模型知识基准,覆盖 57 个学科领域,从初等数学到专业法律。每个领域约 100-200 题,总题量约 14K。评测方式为 4 选 1 选择题,指标为 Accuracy。
C-Eval 和 CMMLU 是中文知识评测的代表。C-Eval 覆盖 52 个学科,包含中学、大学、职业考试三个难度级别;CMMLU 则覆盖 67 个主题,更侧重中国文化和语境下的知识。
2.3 推理维度
GSM8K 是小学数学应用题的经典基准,约 8.5K 道题,考察模型的多步推理能力。评测时通常使用 Chain-of-Thought (CoT) prompting,让模型逐步推导后再给出答案。最终答案准确率是核心指标。
MATH 难度更高,题目来自 AMC、AIME 等数学竞赛,需要较强的符号推理和公式推导能力。它与 GSM8K 互为补充,前者测基础推理,后者测高阶数学能力。
BBH(BIG-Bench Hard)从 BIG-Bench 的 200+ 任务中筛选出 23 个对当时模型来说「困难」的任务,涵盖逻辑推理、算法、数学等方向。
GPQA(Graduate-Level Google-Proof Q&A)是近年来更难的推理基准,题目由领域专家(PhD 级别)编写,经过「Google-Proof」验证——即无法通过搜索引擎简单检索到答案,防止模型死记硬背。
2.4 代码维度
HumanEval 是代码生成的标准基准,包含 164 个 Python 编程题,每个题目提供函数签名和 docstring,要求模型补全函数体。评测指标为 pass@k:对每个题目生成 k 个候选,只要有 1 个通过所有单测即算正确。
pass@k = E[1 - C(n-c, k) / C(n, k)]
其中 n = 总生成数, c = 正确数, C = 组合数
MBPP 规模更大,包含 974 个入门级 Python 题,带有自然语言描述。LiveCodeBench 则通过定期从 LeetCode、AtCoder 等平台收集新题,缓解数据污染问题。
2.5 对齐维度
对齐评测关注模型回答是否符合人类偏好:有用性、无害性、诚实性。MT-Bench 设计了 8 类共 80 个多轮对话问题,由 GPT-4 作为裁判对回答进行 1-10 分打分。每个问题进行两轮对话,考察模型的上下文理解和持续对话能力。
Chatbot Arena(LMSYS)采用众包对战模式:用户随机向两个匿名模型提问并投票,胜率通过 Elo 评分系统聚合。至今已收集数百万次人类偏好投票,是目前最接近「真实用户体验」的评测方式。
AlpacaEval 和 Arena-Hard 则是基于 LLM-Judge 的自动化对齐评测,前者用 GPT-4 与参考模型对比,后者筛选了 500 个高难度 prompt 以提升区分度。
2.6 真实性与多模态
TruthfulQA 专门测试模型是否会产生「以假乱真」的错误回答,题目设计基于人类常见的误解和谬误。HaluEval 则聚焦于幻觉检测,要求模型判断给定回答中是否存在虚构内容。
多模态评测方面,MMBench 和 MME 是综合感知 + 认知能力的基准,POPE 专门检测视觉幻觉(如图像中存在但模型编造出不存在物体),MMMU 则覆盖 30 个学科的大学级多模态推理。
3. LLM-as-Judge
3.1 核心思想
对于开放式生成任务,无法用固定答案判断对错。LLM-as-Judge 使用一个强模型(通常是 GPT-4 或 Claude)作为裁判,对候选回答进行打分或比较。这已成为 LLM 评测的主流范式,MT-Bench、AlpacaEval、Arena-Hard 等均采用此方法。
常见的评判模式:
1. 单回答打分(Single Answer Grading)
Judge 对单个回答给出 1-10 分的评分
2. 成对比较(Pairwise Comparison)
Judge 比较两个回答,输出胜/负/平
3. 参考对比(Reference-based)
Judge 比较候选回答与参考回答的质量
3.2 已知偏置与缓解方法
LLM-as-Judge 虽高效,但存在多种系统性偏置,需在评测设计中主动应对:
位置偏置(Position Bias):Judge 倾向于偏好某个位置的回答(通常是第一位)。缓解方法:交换 A/B 顺序再评,取两次结果的平均。MT-Bench 默认采用此策略。
长度偏置(Length Bias):Judge 倾向给更长的回答更高分,即使内容质量相同。AlpacaEval 2.0 引入长度控制(Length-Controlled)版本,通过回归模型消除长度影响。
风格偏置(Style Bias):Judge 偏好更礼貌、更正式或更「自信」的表述风格,而非内容准确性。解决方案是优化 prompt 模板,明确要求 Judge 忽略风格,聚焦内容质量。
自我增强偏置(Self-Enhancement Bias):Judge 倾向偏好自己生成的回答(或同家族模型)。缓解方法是使用不同模型家族的 Judge 交叉验证。
3.3 校准与验证
Judge 分数必须与人工评分进行校准,以确保其有效性:
Pearson / Spearman 相关系数
衡量 Judge 打分与人类打分的相关性
Human Agreement
以人类之间的一致性作为上界,Judge 与人类的
一致性应接近此上界
MT-Bench 的实验表明,GPT-4 作为 Judge 与人类的一致性超过 80%,接近人类之间的一致性(约 82%),验证了 LLM-as-Judge 的可行性。但这一结论在不同领域和 Judge 模型上可能不成立,使用前需验证。
3.4 Chatbot Arena 与 Elo 评分
Chatbot Arena 是 LMSYS 组织维护的众包对战平台。用户输入任意 prompt,系统随机返回两个匿名模型的回答,用户投票选择更好的一个。所有对战结果通过 Elo 评分系统聚合:
\[E_A = \frac{1}{1 + 10^{(R_B - R_A) / 400}}\]其中 $R_A$ 和 $R_B$ 是两个模型的 Elo 分,$E_A$ 是模型 A 的预期胜率。实际对战结果更新分数的公式为:
\[R_A' = R_A + K \cdot (S_A - E_A)\]其中 $S_A$ 为实际结果(胜=1, 平=0.5, 负=0),$K$ 为更新系数。Arena 还引入了 Bradley-Terry 模型和置信区间,提供更稳健的排名估计。
Chatbot Arena 的优势在于:覆盖真实用户分布、多样化 prompt、持续更新。局限在于:用户群体偏技术,可能不代表所有使用场景;且无法控制 prompt 难度分布。
4. 评测框架与工具
4.1 主流评测框架
| 框架 | 维护方 | 特点 |
|---|---|---|
| lm-eval-harness | EleutherAI | 最广泛使用,支持 200+ 基准,HuggingFace 集成 |
| OpenCompass | 上海 AI Lab | 中文评测全面,社区活跃,可视化报告 |
| HELM | Stanford CRFM | 多维度全景评测,透明化方法论 |
| BigCode-Eval-Harness | BigCode | 代码评测专用,多语言支持 |
| AlpacaEval | Stanford | 自动化 LLM-judge 评测,长度控制 |
| MT-Bench | LMSYS | 多轮对话评测,GPT-4 裁判 |
4.2 lm-eval-harness 使用示例
# 安装
# pip install lm-eval
# 命令行评测
# lm_eval --model hf \
# --model_args pretrained=mistralai/Mistral-7B-v0.1 \
# --tasks mmlu,gsm8k,hellaswag \
# --batch_size auto \
# --output_path ./results
# Python API 评测
from lm_eval import simple_evaluate
results = simple_evaluate(
model="hf",
model_args="pretrained=mistralai/Mistral-7B-v0.1",
tasks=["mmlu", "gsm8k"],
num_fewshot=5,
batch_size="auto",
)
print(results["results"]["mmlu"]["acc,none"])
4.3 HELM 全景评测
HELM(Holistic Evaluation of Language Models)由 Stanford CRFM 提出,核心理念是透明化评测。它不仅报告最终分数,还公开:
- 完整的评测 prompt 和场景配置
- 每个样本的预测结果
- 模型可能存在的偏置和局限
- 多维度指标(准确率、校准、公平性、效率、偏置等)
HELM 的评测维度矩阵:
场景(Scenario)→ 指标(Metric)
├─ 知识 → 准确率, 校准
├─ 推理 → 鲁棒性, 公平性
├─ 生成 → 效率, 偏置
└─ 交互 → 毒性, 信息危害
4.4 数据污染检测
数据污染(Data Contamination)是指评测集样本出现在训练数据中,导致模型「作弊」而非真正推理。检测方法包括:
n-gram 重叠检测:将评测样本按 13-gram 分词,检索训练集中是否存在完全相同或高度重叠的片段。简单高效,但无法检测改写或翻译后的污染。
困惑度异常检测:被污染的样本在模型下的困惑度(perplexity)通常显著低于同类干净样本。通过比较评测样本与类似难度样本的困惑度分布,可发现异常。
留痕探测(Canary Probing):在训练数据中故意插入特殊字符串(canary),评测时检测模型是否「记住」了这些字符串。这是最直接的检测手段,但需要在训练数据构建时预埋。
推荐实践:发布评测结果时,同时报告数据污染分析结果。使用多个检测方法交叉验证,并说明污染检测的阈值和细节。
5. 评测陷阱
5.1 数据污染
这是 LLM 评测中最严重的系统性风险。当评测集被混入训练数据时,模型可以在测试时「背诵」答案而非进行推理,导致分数虚高。
典型表现:
- 模型在某个基准上突然大幅提升,但真实体验无变化
- 模型在改写后的相同题目上表现骤降
- 困惑度分析显示模型对评测样本异常「熟悉」
案例:多个模型在 GSM8K 上的表现曾因数据污染被质疑,后经 n-gram 检测发现部分测试样本确实出现在训练集中。
5.2 过拟合基准
为在特定基准上刷分,部分团队会进行针对性优化:选择特定 prompt 模板、调参 few-shot 示例、甚至针对基准进行微调。这种「应试」优化可能导致模型在其他任务上泛化性能下降。
Goodhart 定律:当一个指标成为目标,它就不再是一个好的指标。
缓解方法:使用多个独立基准交叉验证;关注模型在未见过的评测集上的表现;使用「留出集」(held-out set)进行最终验证。
5.3 基准饱和
随着模型能力提升,部分基准已被「饱和」——顶级模型表现接近天花板,无法进一步区分模型优劣。
| 基准 | 饱和状态 | 替代方案 |
|---|---|---|
| MMLU | GPT-4 已达 ~86.4%,接近人类专家 | GPQA, MMMU |
| GSM8K | 多个模型已达 95%+ | MATH, FrontierMath |
| HumanEval | 多个模型已达 90%+ pass@1 | LiveCodeBench, SWE-bench |
| HellaSwag | 饱和 | 不再作为核心区分指标 |
饱和后的基准仍有价值(作为「及格线」检测),但不应作为核心区分指标。评测社区需要持续开发更难、更多样的基准。
5.4 LLM-Judge 系统性偏置
除 3.2 节讨论的位置、长度、风格偏置外,还需注意:
- 领域偏置:Judge 在特定领域(如数学、代码)的判断能力可能不足,导致评分不可靠
- 语言偏置:非英语评测中,Judge 的可靠性可能下降
- prompt 敏感性:Judge 对不同 prompt 模板可能给出不同结果,需固定模板并报告
5.5 评测复现性
即使使用相同基准和模型,不同团队的评测结果也可能不一致,原因包括:
- prompt 模板差异(少量措辞变化可能影响结果)
- few-shot 示例的选择和顺序
- 解码参数(temperature, top-p, top-k)
- 评测框架的实现差异(如 normalization 方式、评测指标计算)
建议参考 HELM 的透明化方法论,完整记录评测配置,鼓励社区采用统一的评测协议。
6. 实践建议
6.1 多基准交叉印证
推荐的最小评测矩阵:
知识 → MMLU + C-Eval(中文)
推理 → GSM8K + MATH + BBH
代码 → HumanEval + MBPP
对齐 → MT-Bench + AlpacaEval 2.0 LC
真实 → TruthfulQA
不要只看一个分数——模型在 GSM8K 上 95% 但 MATH 上 30%,说明基础推理强但高阶推理弱。这种「能力剖面」比单一分数更有信息量。
6.2 报告评测设置
完整报告以下信息以确保可复现:
- 模型版本和 checkpoint
- 评测框架和版本
- Prompt 模板(完整文本)
- Few-shot 示例数量和内容
- 解码参数(temperature, top-p, top-k, max_tokens)
- 评测指标(acc, pass@k, F1, etc.)
- 数据污染检测结果
- 是否使用 CoT / self-consistency
6.3 关注评测 vs 实际体验的差距
评测分数高不代表实际体验好。可能的原因:
- 评测集覆盖不全,忽略了模型的实际短板
- 基准过拟合导致评测分数虚高
- 评测场景(如选择题)与真实使用场景(如开放式对话)有差异
建议结合定量评测和定性分析:在评测之外,进行人工 A/B 测试、构建典型场景的测试用例、收集用户反馈。
6.4 构建评测体系
对于需要持续跟踪模型能力的团队,建议建立分层评测体系:
第一层:快速评测(每次训练后)
MMLU + HumanEval + GSM8K(10 分钟内完成)
第二层:完整评测(每周/关键 checkpoint)
全维度基准 + MT-Bench + AlpacaEval
第三层:深度评测(发布前)
全维度 + 数据污染分析 + 人工评估 + A/B 测试
6.5 前沿趋势
- Agentic 评测:随着 AI Agent 的兴起,评测从单轮问答转向多步任务完成(如 SWE-bench、WebArena)。
- 动态评测:基准定期更新以避免数据污染(LiveCodeBench, RealTimeQA)。
- 多模态评测:从纯文本扩展到图文、视频、音频等多模态评测。
- 安全性评测:红队测试、越狱检测、有害内容生成等安全维度日益重要。
7. 参考文献
[1] Hendrycks, D., et al. Measuring Massive Multitask Language Understanding. ICLR, 2021. (MMLU)
[2] Cobbe, K., et al. Training Verifiers to Solve Math Word Problems. arXiv:2110.14168, 2021. (GSM8K)
[3] Chen, M., et al. Evaluating Large Language Models Trained on Code. arXiv:2107.03374, 2021. (HumanEval)
[4] Lin, S., et al. TruthfulQA: Measuring How Models Mimic Human Falsehoods. ACL, 2022.
[5] Zheng, L., et al. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. NeurIPS, 2023. (MT-Bench / Chatbot Arena)
[6] Liang, P., et al. Holistic Evaluation of Language Models. TMLR, 2023. (HELM)
[7] Srivastava, A., et al. Beyond the Imitation Game: Quantifying and Extrapolating the Capabilities of Language Models. TMLR, 2023. (BIG-Bench)
[8] Suzgun, M., et al. Challenging BIG-Bench Tasks and Whether Chain-of-Thought Can Solve Them. ACL Findings, 2023. (BBH)
[9] Rein, D., et al. GPQA: A Graduate-Level Google-Proof Q&A Benchmark. arXiv:2311.12022, 2023.
[10] Li, X., et al. AlpacaEval: An Automatic Evaluator of Instruction-following Models. GitHub, 2023.
[11] Tian, Y., et al. Arena-Hard: A Better Automatic Evaluator for LLM Chatbots. arXiv:2406.11939, 2024.
[12] Huang, Y., et al. C-Eval: A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models. NeurIPS, 2023.
[13] Li, H., et al. CMMLU: Measuring Massive Multitask Language Understanding in Chinese. arXiv:2306.09212, 2023.
[14] Jain, N., et al. LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Code. arXiv:2403.07974, 2024.
[15] Yue, X., et al. MMMU: A Massive Multi-discipline Multimodal Understanding and Reasoning Benchmark for Expert AGI. CVPR, 2024.
留下评论