【大模型】- 评估
评估
衡量语言模型的性能
类型: 学习 | 语言: Python | 🏷 前置:《评估》(本系列第 9 篇)
学习目标
- 了解 LLM 评估的主要基准
- 实现常见的评估指标
- 运行自动化评估流程
- 分析评估结果
- 理解评估的局限性
为什么评估很重要
评估对于以下方面至关重要:
- 比较不同模型
- 跟踪训练进度
- 识别模型弱点
- 指导模型改进
主要评估基准
知识和推理
| 基准 | 任务 | 类型 |
|---|---|---|
| MMLU | 57 个多选科目 | 知识 |
| ARC | 科学推理 | 推理 |
| HellaSwag | 常识推理 | 推理 |
| TriviaQA | 事实问答 | 知识 |
代码和数学
| 基准 | 任务 | 类型 |
|---|---|---|
| HumanEval | 代码生成 | 代码 |
| MBPP | 编程问题 | 代码 |
| GSM8K | 小学数学 | 数学 |
| MATH | 竞赛数学 | 数学 |
语言理解
| 基准 | 任务 | 类型 |
|---|---|---|
| WinoGrande | 常识推理 | 语言 |
| BoolQ | 阅读理解 | 语言 |
| PIQA | 物理直觉 | 语言 |
评估指标
准确率
1 | def compute_accuracy(predictions, references): |
F1 分数
1 | from sklearn.metrics import f1_score |
BLEU 分数
1 | from nltk.translate.bleu_score import sentence_bleu |
ROUGE 分数
1 | from rouge_score import rouge_scorer |
运行评估
使用 lm-eval-harness
1 | from lm_eval import evaluator, tasks |
自定义评估
1 | def evaluate_mmlu(model, tokenizer, dataset, num_samples=1000): |
评估流程
1 | def evaluation_pipeline(model, tokenizer, config): |
分析评估结果
1 | def analyze_results(results): |
评估的局限性
数据泄漏
1 | def check_data_leakage(eval_dataset, train_dataset): |
评估偏差
- 选择偏差:评估集可能不代表真实分布
- 格式偏差:模型可能学习了特定的格式
- 记忆偏差:模型可能记住了评估样本
- 评估者偏差:自动评估可能不准确
缓解策略
1 | def robust_evaluation(model, tokenizer, eval_dataset, num_runs=5): |
评估最佳实践
- 使用多个基准:不要只依赖一个基准
- 报告置信区间:多次运行并报告标准差
- 检查数据泄漏:确保评估数据未在训练中使用
- 人工评估:自动评估应与人工评估结合
- 透明报告:报告评估设置和限制
总结
评估是衡量 LLM 性能的关键环节。使用多个基准和指标可以全面了解模型能力。需要注意评估的局限性,如数据泄漏和偏差。
下一步
下一课将介绍量化,用于减少模型大小和加速推理。
📚 本文改编自 AI Engineering from Scratch(MIT License · 作者 Rohit Ghumare),中文内容来自官方中文镜像。原课程共 503 课 · 20 阶段 · 免费开源,教程网站见 aiengineeringfromscratch.com。
📝 自我检查(课程配套测验)
Q1(学前) 为什么 LLM 评估不能只看 loss 或 perplexity?
A. 这些指标无法计算
B. 低 perplexity 不保证有用、安全或符合指令的输出——需要任务特定基准
C. Perplexity 只对小模型有效
D. Loss 在微调后会上升
答案: B 解析: Perplexity 衡量预测下一 token 的能力,不衡量指令遵循、推理、安全性或事实性。模型 perplexity 低仍可能幻觉、拒绝合理请求或产生有害内容。
Q2(学前) MMLU 基准测试什么?
A. 代码生成能力
B. 57 个学科的多选题知识,从初等数学到专业法律
C. 对话质量
D. token 生成速度
答案: B 解析: MMLU(大规模多任务语言理解)在 57 个学科约 16K 道多选题上测试模型,涵盖 STEM、人文、社科等,是衡量广泛知识的标准基准。
Q3(学后) LLM 评估中人工评估与自动指标如何配合?
A. 只需自动指标
B. 自动指标(MMLU、HumanEval)可扩展但可能无法捕捉细微质量;人工评估更准确但昂贵——两者结合
C. 只需人工评估
D. 两者互斥
答案: B 解析: 自动基准(MMLU、HumanEval、GSM8K)可大规模、可复现地运行,但可能无法反映真实效用。人工评估(Elo 排名、并排比较)捕捉质量但成本高。生产评估通常两者都用。
Q4(学后) 什么是 LLM-as-judge 评估?
A. 用人工逐条评估每条回答
B. 用强大 LLM(如 GPT-4)对较弱模型的输出打分或排名,作为人工评估的可扩展替代
C. 模型自评
D. 仅评估 judge 模型本身
答案: B 解析: LLM-as-judge 用能力强的模型评估其他模型的输出,比纯人工评估更可扩展。研究表明 GPT-4 等 judge 与人类判断相关性高,但存在 position bias 和 self-preference 等局限。
Q5(学后) 为什么评估应包含对抗性和安全测试?
A. 加快训练
B. 模型在标准基准上表现好仍可能在 jailbreak、有害请求或边缘情况下失败——安全评估发现这些漏洞
C. 减少 API 成本
D. 安全测试取代能力测试
答案: B 解析: MMLU 高分不意味着模型能抵抗 jailbreak 或拒绝有害请求。安全评估(HarmBench、AdvBench)专门测试对抗输入、prompt injection 和有害内容生成,对部署至关重要。
- 标题: 【大模型】- 评估
- 作者: 宋
- 创建于 : 2026-08-19 09:10:00
- 更新于 : 2026-08-21 16:20:11
- 链接: https://sxl-space.tk/2026/08/19/010_LLM/010_LLM-10-Evaluation/
- 版权声明: 版权所有 © 宋,禁止转载。