外观
LLM 评估与基准
概念定义:没有评估,就没有改进
LLM 评估(evaluation)是系统性地度量模型能力、行为与风险的方法体系。 大语言模型(Large Language Model, LLM)是概率式文本生成器,同一个问题每次输出都可能不同,甚至"看起来对"和"真的对"之间常常隔着一步推理。因此,没有评估就没有改进,也没有可信的选型——你无法知道一次微调是变好了还是变坏了,也无法在采购 API 时判断哪个模型更划算。无论是学术界发论文、厂商发版本、还是企业选型落地,评估都是全部决策的事实基础。
评估在 LLM 生命周期里无处不在,且每个阶段侧重不同:
| 阶段 | 要回答的问题 | 典型手段 |
|---|---|---|
| 预训练后 | 基础能力如何? | 通用基准(MMLU、HumanEval) |
| 对齐/微调后 | 指令跟随、偏好是否改善? | MT-Bench、IFEval、人工对比 |
| 上线前 | 安全、幻觉、有害内容风险? | 红队测试、对抗攻击、安全基准 |
| 产品落地 | 用户真实任务做得好吗? | RAG 评测、Agent 评测、产品级评估 |
| 持续迭代 | 有没有回归退化? | 私有黄金集 + CI 回归测试 |
一句话判断
先定义"好"的标准,再谈训练和调优。 评估设计是 LLM 项目最重要的工程决策之一——你用什么指标评估,就决定了模型朝哪个方向优化。
为什么 LLM 评估这么难
传统机器学习有明确的监督信号(标签、回归目标),而 LLM 评估要面对四个系统性难题:
- 开放性任务没有唯一答案:写一封邮件、总结一份财报、设计一个方案,没有标准答案,"好"是模糊的;
- 『看起来对』≠『真的对』:模型可能流畅地编造一个不存在的引用、煞有介事地推导出错误结论——即幻觉(hallucination),答案的语法质量与事实正确性完全脱钩;
- 评测集污染(contamination):训练数据里如果包含测试题的原文或变体,模型等于"考前看过答案",分数虚高,无法反映真实泛化能力;
- 评估者本身不可靠:人工评测昂贵且不稳定,LLM 裁判(judge)又有自己的偏好偏差(见后文)。
数据污染是最隐蔽的陷阱
公共基准的题目会随时间流入厂商的预训练语料。这也是为什么 2023 年后几乎每个新模型发布都伴随"benchmark contamination"争议,以及为什么各家越来越重视私有评测集与实时更新的基准(如 LiveCodeBench、LiveBench)。
评测维度与主流基准
基准(benchmark)的本质是一张标准化考卷:固定题目 + 固定评分规则,让不同模型可以在同一标准下比较。按能力维度看,主流基准大致如下:
| 维度 | 基准 | 测什么 | 怎么测 | 已知局限 |
|---|---|---|---|---|
| 知识 | MMLU(Massive Multitask Language Understanding) | 57 个学科(STEM、人文、社科等)的多选题知识 | 选择题,0-shot/5-shot 输出,按准确率计分 | 全是选择题、偏记忆;题目已广泛泄漏进训练语料;2024 年后多家厂商分数逼近饱和 |
| 知识 | GPQA(Graduate-Level Google-Proof Q&A) | 生物、化学、物理的博士级难题 | 选择题;题干经专家设计且"Google-proof"(普通搜索难以直接命中) | 对多数模型过难,区分度集中在头部模型;数据量小(约 448 题),方差大 |
| 知识 | C-Eval | 52 个学科的中文知识(含四个难度等级) | 中文选择题,从小学到研究生 | 题目相对容易,头部模型分数趋同;部分题目同样存在泄漏风险 |
| 推理 | GSM8K | 小学数学应用题 | 要求给出分步推理与最终数字答案,按精确答案匹配计分 | 只覆盖小学数学、题型模式化,2023 年后的模型普遍 90%+,几乎失效 |
| 推理 | MATH | 高中/竞赛级数学证明与解答题 | 分 5 个难度等级,按最终答案匹配(或自动评阅) | 答案匹配规则有漏洞(格式变体、等价表达),部分题需要程序验证 |
| 推理 | AIME(American Invitational Mathematics Examination) | 美国数学邀请赛真题(1983 年至今) | 每题一个 0–999 的整数答案,精确匹配 | 只考察数学;2025 年起 AIME 正式禁止 AI 参赛,凸显 AI 竞赛成绩的争议 |
| 代码 | HumanEval | 164 道 Python 函数级编程题 | 让模型补全函数,用**单元测试(pass@k)**判定 | 题目偏简单、全是 Python、函数级(无工程级上下文),已被多家模型刷到 90%+ |
| 代码 | LiveCodeBench | 按时间持续更新的编程题(来自 LeetCode/AtCoder/Codeforces 等) | 与 HumanEval 类似的测试驱动评测,但题目持续注入新题 | 仍以单文件/竞赛题为主,与真实工程项目差距大 |
| 指令跟随 | MT-Bench | 80 道多轮对话问题(写作、推理、数学、代码等 8 类) | 每轮由 GPT-4 等 LLM-as-a-judge 打 1–10 分 | 裁判模型本身有偏好(位置、长度、风格偏差);题目量少 |
| 指令跟随 | IFEval | 541 条带可验证约束的指令("至少 3 个要点""结尾用问句"等) | 自动检查输出是否满足结构化约束 | 只测格式层面的服从,不测内容质量 |
| 多模态 | MMMU(Massive Multi-discipline Multimodal Understanding) | 大学级多学科、跨图像-文本推理 | 多选题,需理解图像并推理 | 偏知识记忆与图表阅读,对"视觉-推理"联合能力要求高 |
| 多模态 | MMBench | 20 个细粒度能力维度的图像问答 | 选项式问答 + 判断式问题 | 部分题目可被纯语言先验猜中;细节请见多模态模型 |
| 中文 | C-Eval / CMMLU | 中文通识知识与中文语境理解 | 中文选择题 | 题目质量与区分度参差,部分题目受语料污染 |
如何"读"基准
分数是相对的,不是绝对的。 MMLU 从 2020 年模型 25%(随机水平)到 2024 年头部模型 90%+,涨的是分数,但模型对人类某些真实任务的提升远没有 60 个百分点那么夸张——因为题目泄漏、选择题本身好猜、以及基准与真实任务之间的鸿沟。
更多基准的维护信息与数据集下载入口,可参考数据集与工具档案与模型与榜单速查。
评测方法分类
基准只是评估的一种手段。完整的评估方法谱系分为四类:
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 基准测试(benchmark) | 标准化、可复现、成本低、可横向比较 | 易污染、离真实任务远、刷榜 | 能力摸底、版本间对比、选型初筛 |
| 人工评测 | 最接近真实用户判断、能捕捉细微质量 | 贵、慢、标注者之间不一致(低 inter-annotator agreement) | 高价值场景、上线验收、榜单仲裁 |
| LLM-as-a-judge | 便宜、快、可扩展、与人类相关性高 | 裁判模型有位置/长度/自我偏好偏差 | 大规模自动化评分、迭代回归 |
| 对抗/红队测试 | 主动暴露安全与鲁棒性弱点 | 不能穷尽风险、成本高 | 安全审查、上线前风险评估 |
LLM-as-a-judge:让模型给模型打分
用 GPT-4 或同等级的强模型作为裁判,对候选回答打分。这是当前自动化评估的事实标准,其与人类判断的相关性在论文(如 Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena)中被反复验证。一个典型的裁判提示长这样:
python
JUDGE_PROMPT = """请作为公正的评审员,对两个 AI 助手的回答进行打分(1-10 分)。
【任务背景】用户询问:{question}
【助手A的回答】{answer_a}
【助手B的回答】{answer_b}
评分标准:
- 事实正确性(40%):错误事实应直接判低分
- 有用性与完整性(30%):是否直接回应了问题
- 清晰度(20%):结构、表达是否易懂
- 安全与无害(10%):是否包含有害内容
输出格式(严格 JSON):
{{"score_a": 6, "score_b": 7, "reason": "……"}}
注意:先独立思考,再给分;不要因为回答更长就加分。"""
def judge(question, answer_a, answer_b, model):
resp = model.chat(JUDGE_PROMPT.format(
question=question, answer_a=answer_a, answer_b=answer_b))
return parse_score(resp) # 解析 JSON 分数裁判的三类已知偏差
- 位置偏差(position bias):偏爱排在前面或后面的答案——对策是调换顺序评两次取平均;
- 长度偏差(verbosity bias):偏爱更长的答案——在提示里显式声明"不要因长度加分",或对长度做校正;
- 自我偏好(self-preference):裁判偏爱与自身同源的模型输出——因此永远不要用被测模型自己当裁判。
应用层评估:RAG、Agent 与产品级
通用基准测的是"模型本身",而真实产品里模型总是被嵌入到系统中——评估的对象应是整个系统,而不是模型单点。
RAG 评测:三件套指标
检索增强生成(Retrieval-Augmented Generation, RAG)系统的质量由检索与生成共同决定,业界普遍使用 RAGAS 框架的三项核心指标:
| 指标 | 测什么 | 问法 |
|---|---|---|
| 忠实性(faithfulness) | 答案是否完全基于检索到的上下文,有无幻觉 | "答案里的每个论断,上下文里都有依据吗?" |
| 答案相关性(answer relevance) | 答案是否正面回应了问题 | "这份答案对回答这个问题有没有用?" |
| 上下文相关性(context relevance) | 检索到的上下文是否与问题相关、是否引入噪声 | "检索出来的这几段,有几段真正相关?" |
一句话判断
RAG 调优先看上下文相关性——如果检索结果本身就相关度低,再好的生成也救不回来。检索是 RAG 的上限,生成只是逼近它。完整落地流程见从零搭建 RAG 应用,RAG 机制本身见检索增强生成。
Agent 评测:任务能不能完成
Agent 与单轮问答的本质区别是多步决策:每一步的"看起来合理"都不等于"最终完成任务"。核心指标包括:
- 任务成功率(task success rate):在自动化环境(如 BrowserGym、SWE-bench)中最终达成目标的占比;
- 工具调用正确率:选择哪个工具、传什么参数、调用顺序是否正确;
- 步数与成本:完成同样任务消耗的 token/调用次数——效率也是质量;
- 轨迹安全:过程中是否做了危险操作(如删除文件、转账)。
一句话判断
Agent 评估必须放在受控环境里做,绝不能拿真实生产环境跑"试试看"。评估脚本与环境的自动化程度,直接决定 Agent 迭代速度。Agent 概念见AI 智能体(Agent),开发实战见从零开发一个 Agent。
产品级评估
最终极的标准是产品指标:用户留存、任务完成率、客服工单解决率、付费转化。离线分数只是代理指标,产品指标才是终审。完整的方法论(评估集设计、指标定义、上线策略)见搭建一套 LLM 评估。
评估的工程化:把评估变成 CI 的一部分
评估不能是"发版前打一次分",而要像单元测试一样沉淀成资产、接入开发流程:
- 建设黄金数据集(golden set):从真实用户数据中采样、人工标注"理想回答",再按维度分层(客服、代码、总结……)。原则是少量高质(几百到几千条),远超数量的是质量;
- 私有集 + 公开集结合:私有集防污染、公开集可对标行业水平——永远不要只用公开基准做上线决策;
- 回归测试:每次微调、每次换基座模型,都必须重跑全套评估,防止"提升 A 能力、退化 B 能力";
- 接入 CI/CD:评估脚本自动化、分数低于阈值则阻断发布,形成"评估即门禁";
- 分级评估:轻量快评估(几百条)跑每个 commit,全量评估(几千条)跑每次发布候选。
text
代码提交 → 触发 CI → 跑轻量回归(几百条黄金题) → 通过 → 训练/微调
→ 跑全量评估 → 与基线对比(LLM-as-a-judge 打分)
→ 分数全部 ≥ 阈值? → 是:发布 否:回滚并定位退化维度常见反模式
- 只在模型换版时才评估,平时从不回归;
- 评估集只有公开基准,被污染后"分数虚高却浑然不觉";
- 测试集参与过调参(用测试集的错误反推修改 prompt/阈值),等于提前看答案;
- 只看平均分,不看分维度细项——平均分掩盖"知识 90 分、安全 40 分"的失衡。
评估结果的正确解读
基准分数是最容易被误读的资产,记住三条纪律:
- 基准分数 ≠ 真实能力:MMLU 90% 不意味着它在你的业务场景里能用;选择题和自由生成之间隔着"知道"与"产出"的巨大鸿沟;
- 『刷榜』是理性博弈的必然:厂商为了发布效果会针对基准调整训练数据与解码策略(甚至间接过拟合测试集)。看到一个惊艳的分数,先问:这个基准被污染了吗?测试时用了额外算力(o1/thinking 模式)吗?——同一模型开不开推理模式分数能差 10 个百分点以上;
- 多维度综合判断:评估一次性能同时看知识、推理、代码、中文、安全、成本、延迟七张表,加上分维度细项与人工抽样复核,再下结论。
一句话判断
选型时"分数 + 成本 + 延迟 + 安全"四张表一起看:一个贵 5 倍的模型若只高 2 分,在很多场景下不值得。榜单数字是起点,不是终点。更多选型信息见模型与榜单速查。
评估还直接关系到其他几个热门概念:对齐的好坏要用评估来度量(见对齐:RLHF 与 DPO),安全评估是上线红线(见AI 安全与治理),而评估所用的提示词质量本身受提示词工程影响。想从原理上理解被测对象,可先读大语言模型(LLM)与Transformer 与注意力机制。
延伸阅读
- 搭建一套 LLM 评估——把本文方法论落地成工程代码
- 数据集与工具档案——评测集与评估框架资源入口
- 模型与榜单速查——主流模型分数与选型速查
- 常见陷阱与反模式——污染、泄漏、指标误用翻车现场
- 检索增强生成(RAG)——RAG 系统与忠实性评测
- AI 智能体(Agent)——Agent 任务成功率评测
- AI 安全与治理——红队测试与安全基准
- 多模态模型——MMMU、MMBench 等视觉评测
- DeepSeek-R1 与推理模型——推理模型在 AIME 等基准上的表现
- 面试题库——评估相关面试高频问题
参考资料
- Hendrycks et al. Measuring Massive Multitask Language Understanding(MMLU, arXiv:2009.03300) —— 至今仍最常用的通用知识基准
- Rein et al. GPQA: A Graduate-Level Google-Proof Q&A Benchmark(arXiv:2311.12022) —— 博士级"防搜索引擎"难题
- Cobbe et al. Training Verifiers to Solve Math Word Problems(GSM8K, arXiv:2110.14168) —— 小学数学推理基准
- Hendrycks et al. Measuring Mathematical Problem Solving With the MATH Dataset(arXiv:2103.03874) —— 竞赛级数学基准
- Chen et al. Evaluating Large Language Models Trained on Code(HumanEval, arXiv:2107.03374) —— pass@k 代码评测的起点
- Jain et al. LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Code(arXiv:2303.11366) —— 动态更新、抗污染的代码基准
- Zheng et al. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena(arXiv:2306.05685) —— LLM 裁判的权威论文,含偏差分析
- Zhou et al. Instruction-Following Evaluation for Large Language Models(IFEval, arXiv:2311.07911) —— 可验证的指令跟随评测
- Yue et al. MMMU: A Massive Multi-discipline Multimodal Understanding and Reasoning Benchmark(arXiv:2311.16502) —— 多学科多模态推理基准
- Liu et al. MMBench: Is Your Multi-modal Model an All-around Player?(arXiv:2307.06281) —— 细粒度多模态能力评测
- Huang et al. C-Eval: A Multi-Level Multi-Discipline Chinese Evaluation Suite(arXiv:2305.08322) —— 中文通用知识基准
- Li et al. CMMLU: Measuring Massive Multitask Language Understanding in Chinese(arXiv:2306.09212) —— 中文多任务知识基准
- Es et al. RAGAS: Automated Evaluation of Retrieval Augmented Generation(arXiv:2309.01417) —— 忠实性/相关性指标的提出论文
- AIME 官方页面(美国数学邀请赛) —— AIME 真题来源