Appearance
LLM Evaluation
LLM 评估(Evaluation)是衡量模型能力、发现模型弱点和驱动模型改进的系统性方法。从 MMLU 到 HumanEval、从基准测试到人类偏好评估,评估体系决定了"什么模型更好"的判断标准。EleutherAI 的 LM Evaluation Harness 是该领域最核心的开源工具。
Key Papers: Evaluation Benchmarks
| 基准 | 年份 | 机构 | 测试内容 | 指标 |
|---|---|---|---|---|
| MMLU (Massive Multitask Language Understanding) | 2020 | UC Berkeley | 57 学科的多选题知识测试 | Accuracy (0-shot / 5-shot) |
| HumanEval | 2021 | OpenAI | 164 道 Python 编程题,从 docstring 到函数实现 | pass@k |
| GSM8K (Grade School Math 8K) | 2021 | OpenAI | 8.5K 小学数学应用题 | Accuracy (few-shot / CoT) |
| MATH | 2021 | OpenAI | 12.5K 高中数学竞赛题(5 个难度等级) | Accuracy |
| HellaSwag | 2019 | UW / Allen AI | 对抗性筛选的常识推理选择题 | Accuracy |
| TruthfulQA | 2021 | OpenAI | 人类常见误解相关的 QA,测试真实性 | Accuracy (True*Info) |
| GPQA (Graduate-Level Q&A) | 2023 | NYU / Cohere | 博士级别科学推理(生物/物理/化学) | Accuracy |
| BIG-bench | 2022 | Google / 多家机构 | 204 项多样化任务,覆盖推理、数学、代码、社会偏见等 | 多种指标 |
| ARC (AI2 Reasoning Challenge) | 2018 | Allen AI | 小学科学考试(Easy / Challenge) | Accuracy |
LM Evaluation Harness
Overview
LM Evaluation Harness 是 EleutherAI 维护的标准化评估框架,目前是开源社区评估语言模型的事实标准工具。它被 Meta(Llama)、Mistral、Google(Gemma)、Stability AI 等主流模型发布方用于官方 benchmark 报告。
- GitHub: github.com/EleutherAI/lm-evaluation-harness
- 许可: MIT
- 语言: Python
- 最新版本: v0.4.6(2026 年初)
Architecture
Evaluation Flow:
1. 模型加载(Model Wrappers)
├─ Hugging Face Transformers(自动下载权重)
├─ vLLM(高吞吐推理)
├─ TensorFlow / JAX
└─ API Backend(OpenAI / Anthropic / Google API)
2. 任务定义(Task Registry / YAML)
├─ 数据集来源(Hugging Face Datasets / 本地)
├─ Few-shot 示例(来自训练集)
├─ 评测指标(acc / perplexity / f1 / exact_match / pass@k)
└─ 提示模板和输出解析
3. 评估运行(Evaluation Runner)
├─ 分类任务:比较模型对答案 token 的 log-probability
├─ 生成任务:生成文本并计算指标
└─ 结果汇总(按任务 / 按类别)
4. 输出
├─ 控制台打印
├─ JSON / CSV 导出
└─ Weights & Biases 集成Supported Benchmarks(部分)
| 类别 | 基准测试 |
|---|---|
| 通用知识/推理 | MMLU(含所有子任务和 Pro)、ARC(Easy/Challenge)、HellaSwag、WinoGrande、PIQA |
| 数学 | GSM8K、MATH、SVAMP、ASDiv |
| 代码 | HumanEval、MBPP |
| 阅读理解 | RACE、BoolQ、SQuAD、TriviaQA、Natural Questions |
| 多语言 | XNLI、TyDi QA、MLMMLU、PAWS-X |
| 真实性与安全 | TruthfulQA、BBQ、ToxiGen、HHH |
| 其他 | LAMBADA、COPA、StoryCloze、BLiMP、CLUE |
Key Features
- 零样本 / 少样本评估:可配置 shot 数量
- 多种模型后端:HF Transformers、vLLM、TensorFlow、API 模型
- 批量推理:GPU 批处理加速
- 并行执行:多任务并行
- 可扩展性:通过 YAML 文件即可添加新任务
- 聊天模板支持:支持指令微调模型的对话式评估
- 结果日志:WandB、MLflow、JSON、CSV
Evaluation Methodology Categories
| 方法 | 原理 | 典型指标 | 适用场景 |
|---|---|---|---|
| Log-probability (Per-token) | 对比模型对答案选项的 log-prob | Accuracy | MMLU、ARC、HellaSwag 等选择题基准 |
| Generation (Free-form) | 模型自由生成,再匹配标准答案 | Exact Match、F1、ROUGE | GSM8K、TriviaQA、SQuAD |
| Pass@k | 生成 k 个候选,至少一个通过测试 | pass@1, pass@k | HumanEval、MBPP(编程) |
| Pairwise Comparison (Elo) | 人类/模型对两个输出做偏好判断 | Elo Score | Chatbot Arena、MT-Bench |
| LLM-as-Judge | 用强模型(如 GPT-4)评估弱模型输出 | 1-10 分 | AlpacaEval、MT-Bench |
| Human Evaluation | 人工评分 | Likert Scale、Preference Rate | 真实场景质量评估 |
Evaluation Pitfalls
| 问题 | 表现 | 缓解 |
|---|---|---|
| Benchmark Contamination | 模型训练数据包含测试集 | 使用后训练的基准(如 MMLU Pro、后 2024 数据集) |
| Prompt Sensitivity | 小提示词变化导致大幅分数波动 | 报告多组提示词的平均值 |
| Few-shot Leakage | K-shot 示例无意中泄露答案格式 | 确保示例与测试集分离 |
| Metric Gaming | 模型针对基准做针对性优化而非真能力提升 | 使用多样化基准组合 |
| LLM-as-Judge Bias | GPT-4 偏向自己的输出风格 | 使用多个评判模型、盲评 |
| Evaluation Reproducibility | 不同框架/随机种子下结果不一致 | 标准化到 LM Evaluation Harness |
Why It Matters
- 没有评估就没有进步——评估体系定义了"更好"的标准,直接驱动了模型研发方向
- LM Evaluation Harness 提供了标准化、可复现的评估环境,使不同模型的跨论文比较成为可能
- 理解评估方法论有助于识别 benchmark 的局限性和过拟合风险
- 与 Transformer Architecture、Scaling Laws、Fine-tuning 共同构成理解 LLM 研发的完整框架
- 评估能力也直接关联到 AI Agents 的评测——Agent 任务(如函数调用、多步推理)的评估仍是一个开放问题
Related Concepts
Open Questions
- Agent 场景的系统化评估(多步推理、工具调用、鲁棒性)何时有统一标准?
- Benchmark 饱和(MMLU 接近天花板)后,下一代评估体系是什么?
- 如何在保护测试集隐私的前提下,实现社区级的反 contamination 协作?
- LLM-as-Judge 的可靠性能否达到人类评估的水平?
Sources
- EleutherAI LM Evaluation Harness (github.com/EleutherAI/lm-evaluation-harness)
- MMLU: Measuring Massive Multitask Language Understanding (Hendrycks et al., 2020)
- HumanEval: Evaluating Large Language Models Trained on Code (Chen et al., 2021)
- GSM8K: Training Verifiers to Solve Math Word Problems (Cobbe et al., 2021)
- Official Documentation: eleutherai.github.io/lm-evaluation-harness