⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

扩展:模型评估设计 ​

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明。

所属章节: 第 5 章:LLM 基础 | 5.6 模型评估


从任务开始,而不是从榜单开始 ​

公开 Benchmark 可以筛选候选模型,但版本、提示词、解码参数和数据污染都会影响分数。本教程不维护“当前模型水平”表;选型应在目标数据上复现。

模型评估证据链

图 E5.1:从任务定义、固定样本和可复现配置,到自动指标、人工复核、运行指标和最终决策。单个 Benchmark 只覆盖其中一部分。

常见评测类型 ​

类型示例主要测量常见局限
选择题知识MMLU、C-Eval、CMMLU题目准确率训练污染、格式单一
数学推理GSM8K 等最终答案或步骤答案抽取、题型覆盖
代码生成HumanEval 等单元测试通过率测试覆盖不足、样本公开
指令遵循IFEval 等可程序检查的约束不直接评价内容质量
多轮对话MT-Bench 类评测连贯性与任务完成评判模型偏差、样本较少
长上下文检索、问答、摘要集合信息定位和整合长度与难度容易混杂

同名 Benchmark 也可能有不同版本、子集和评分脚本。报告时应保存数据版本和运行命令。

自动指标 ​

分类、抽取和代码任务可以使用准确率、F1、执行通过率等指标。生成任务的字符串相似度通常不能完整反映事实性和任务完成度。

对于随机采样或有限样本,应报告样本数、均值和置信区间。两个分数相差很小,不代表存在稳定差异。

代码任务的 pass@k ​

pass@k 衡量多次采样中至少一个候选通过测试的概率。它同时受采样次数、温度和测试用例覆盖影响,因此不能与单次确定性生成直接比较。

规则评测 ​

JSON schema、长度、关键词和工具参数等约束适合程序检查。规则通过只说明格式正确,仍需检查内容和业务语义。

人工比较 ​

成对盲评的一般流程:

  1. 固定问题集并定义评价维度;
  2. 隐藏模型身份并随机交换回答顺序;
  3. 允许胜、负、平局和无法判断;
  4. 记录理由与错误标签;
  5. 报告胜率、样本数、置信区间和标注一致性。

标注指南应把事实正确、任务完成、表达质量和安全边界分开,避免一个模糊的“总体更好”分数掩盖错误。

LLM-as-Judge ​

评判模型可以扩大评测规模,但会产生位置、长度、风格和自我偏好。降低偏差的方法包括:

  • 随机交换候选顺序并重复评判;
  • 给出明确量表和可核对的参考信息;
  • 对边界样本进行人工复核;
  • 用一部分人工标注估计评判模型误差;
  • 保存评判提示词、模型版本和原始输出。

要求模型输出理由有助于审计,不保证评分更正确。

数据污染与切分 ​

公开题目可能出现在训练数据中。可使用精确匹配、n-gram 或语义近邻检查重合,但这些方法也不能证明完全没有污染。

内部任务数据应按用户、时间、文档或业务实体切分,避免近似样本同时进入训练集和测试集。反复依据测试集调提示词,也会让测试集逐渐变成开发集。

运行指标 ​

模型质量之外,还应测量:

  • 首 token 延迟、端到端延迟和吞吐;
  • 输入与输出 token 分布;
  • 峰值显存、并发和失败率;
  • 单次请求或固定工作负载成本;
  • 版本升级后的回归结果。

质量和运行指标应在相同硬件、并发和解码设置下比较。

最小评估记录 ​

text
任务与成功条件
评测集版本、样本数和切分规则
模型、提示词、工具和解码参数版本
自动指标及置信区间
人工复核样本与错误分类
延迟、吞吐、显存和成本
已知污染、缺失覆盖和结论边界

最终决策应能追溯到这些证据,而不是某一张公开榜单。


返回: 第 5 章:LLM 基础

本教程采用 CC BY-NC-SA 4.0 许可协议