评估指标与交叉验 证
训练损失(如交叉熵)是优化目标;评估指标(Metric)用于在验证集、测试集或公开基准上衡量模型能力,并指导超参选择与模型对比。二者相关但不等价:loss 持续下降时,下游 Acc、pass@k 等未必同步提升(见 1.2.2 损失函数与正则化 中「与评估指标脱节」的讨论)。
本文从机器学习通用指标出发,系统梳理 LLM 全链路(预训练 → 中期训练 → 对齐 → 推理 → Agent)常见指标,并说明在不同学习范式下通常关注哪些度量。生成类 NLP 指标(BLEU、ROUGE 等)的细节见 1.4.4 评估指标;基准套件与评估方法论见第七部分 评估。
- 指标与损失综述:Loss Functions and Metrics in Deep Learning(2023)
- Hugging Face 指标库:evaluate/metrics
- 代码能力评估:Evaluating Large Language Models Trained on Code(HumanEval / pass@k)
- LLM 评估综述:A Survey on Evaluation of Large Language Models
一、指标在 LLM 流程中的位置
| 阶段 | 典型任务 | 常用训练目标 | 常用评估指标 |
|---|---|---|---|
| 预训练(Pre-training) | 下一 token 预测 | 交叉熵 / NLL | PPL、验证集 loss、下游 probe |
| 继续预训练 / 领域适配(Continued Pre-training) | 同左,注入领域或语言知识 | 交叉熵 | PPL + 领域基准 Acc |
| 中期训练(Mid-Training) | 在通用语料与后训数据之间桥接分布;定向强化数学、代码、推理、长上下文等 | 多为下一 token 预测(与预训练同目标);数据更精选、配比更讲究 | PPL + 能力探针(GSM8K、HumanEval、MMLU 子集等);关注相对预训练的边际增益与对后续 SFT/RL 的warm-up 效果 |
| SFT / 指令微调 | 监督生成 | 交叉熵(通常仅 response 段) | EM、F1、ROUGE、任务 Acc |
| 偏好对齐(RLHF / DPO) | 排序 / 策略优化 | 奖励、偏好损失 | Win rate、RM 分、KL、安全率 |
| 推理强化(RLVR / GRPO) | 可验证答案 | 规则奖励 | Solve rate、pass@k |
| 部署与产品 | 对话、工具、Agent | — | 人工评分、Arena Elo、任务成功率 |
理解「优化什么」与「汇报什么」分离,有助于读论文技术报告和复现基准结果。
Mid-Training 是什么
Mid-Training(中期训练) 是近年被单独划出、介于通用预训练与后训练(SFT / RL) 之间的阶段:仍在大规模语料上采用下一 token 预测为主(与 SFT 的「只对回答算 loss」、RL 的奖励优化不同),但通过更小规模、更高质量、更偏领域的数据混合,在保持通用能力的同时,系统性拉高数学、代码、推理、指令跟随、长上下文等能力,并为后训提供更合适的初始化(见 A Survey on LLM Mid-Training、Midtraining Bridges Pretraining and Posttraining Distributions)。
与 继续预训练(Continued Pre-training) 的区分(综述中的常见界定):
| Mid-Training | Continued Pre-training | |
|---|---|---|
| 意图 | 有意识地在「预训练分布 ↔ 后训分布」之间过渡 | 主要在已有模型上追加领域或语言数据 |
| 数据 | 通用高质量语料 + 数学 / 代码 / STEM / 指令形态数据等混合配比;常配合退火(annealing)、长上下文扩展 | 往往以目标领域语料为主 |
| 规模 | 通常满足 ,算力介于预训练与微调之间 | 可长可短,不一定强调分布桥接 |
| 风险 | 若配比不当仍可能伤通用能力,但设计上常保留一定通用数据比例以抑制遗忘 | 领域占比过高时更易出现灾难性遗忘 |
工业与开 源实践中的 Mid-Training 常见做法包括:
- 数据退火(Annealing):预训练末期降低学习率,并混入高质量、高难度数据(数学、代码等),使 loss 收敛到更优局部极小(Phi、OLMo 2 等路线)。
- 长上下文扩展:在中后期提高长序列数据占比,并配合架构 / 位置编码调整(与 技术栈概览 中的「多阶段预训练」「长文预训练」呼应)。
- 精选混合:IBM 等实验表明,在已完成长上下文扩展的基座上做 Mid-Training 往往更划算;数学 + 代码 + 科学推理的混合配方对推理基准的提升,可明显大于仅在 RL 阶段调换同类数据(见 IBM — Mid-training for reasoning)。
该阶段应看什么指标:训练侧仍盯 验证 PPL / NLL(与预训练可比);能力侧应同时看领域基准(如 GSM8K solve rate、HumanEval pass@1、MMLU STEM 子集 Acc),并最好记录 Mid → SFT → RL 各阶段的相对提升,因为 Mid-Training 的价值常体现在「后训是否更省数据、更少遗忘、RL 是否更易放大」——仅看 Mid 结束时的单点 Acc 容易低估其桥梁作用(见 On the Interplay of Pre-Training, Mid-Training, and RL)。
二、分类与检索类通用指标
将模型输出离散化为「正 / 负」或「正确 / 错误」后,可用经典混淆矩阵指标。LLM 场景中常见于:多选题基准(MMLU)、拒答 / 安全分类、检索是否命中、代码单测是否通过(二分类)。
设 TP、FP、TN、FN 为真阳、假阳、真阴、假阴:
| 指标 | 公式 | 含义 | LLM 典型用法 |
|---|---|---|---|
| Accuracy(Acc) | 全部样本中判对的比例 | MMLU 选项命中率;SWE-bench 任务级通过率 | |
| Precision | 预测为正的样本里,真正为正的比例 | 高精确要求场景(少误报):有害内容拦截、错误 patch 提交 | |
| Recall | 真实为正样本中,被找出的比例 | 高召回场景:漏检代价大(如必须检出违规回复) | |
| F1 | Precision 与 Recall 的调和平均 | 抽取式 QA、NER、多标签分类;类不平衡时常用 Macro-F1 | |
| ROC-AUC | 曲线面积 | 排序能力(阈值无关) | 奖励模型、检索 reranker 质量 |
Macro / Micro:多类别时,Micro 按样本聚合 TP/FP/FN;Macro 先算各类 F1 再平均,对长尾类更敏感。
分类训练常优化交叉熵,但业务更关心 F1 或 Acc。类别极不平衡时,应同时看 Precision–Recall 曲线,而非只看 Acc。
三、语言建模与预训练指标
自监督预训练(见 1.2.1 学习范式 中「无监督预训练」)直接优化 token 级交叉熵,评估时常报告:
3.1 交叉熵与负对数似然(NLL)
对序列 ,平均 token 负对数似然:
与训练 loss 一致,便于监控过拟合与数据混合效果。
3.2 困惑度(Perplexity, PPL)
可直观理解为「模型平均在多少个等概率候选 token 间犹豫」。PPL 越低越好。不同分词器、词表大小之间 不宜直接横比;同一设定下可用于比较 checkpoint 与数据配比。
3.3 其他
- BPC(bits per character):字符级语言模型常用。
- Token Accuracy:下一 token 预测正确的比例;比 PPL 粗糙,但有时更直观。
- 下游探针(Probe):冻结表示、训练小分类器,间接衡量表示质量(非端到端生成能力)。
四、生成与开放域问答指标
当参考答案为文本而非单一选项时,常用重叠度、匹配度或语义相似度指标(详见 1.4.4):
| 指标 | 要点 | 常见场景 |
|---|---|---|
| BLEU | n-gram 精确率 + 简短惩罚 | 机器翻译 |
| ROUGE-N / ROUGE-L | 召回导向 n-gram / 最长公共子序列 | 摘要 |
| METEOR | 同义词、词干 | 翻译、摘要 |
| chrF / chrF++ | 字符级 F-score | 形态丰富语言 |
| BERTScore | 上下文嵌入相似度 | 开放生成、释义 |
| Exact Match (EM) | 规范化后字符串完全一致 | SQuAD 类 QA、短答案 |
| Token F1 | 预测与参考答案 token 集合 F1 | 抽取式 QA |
局限:n-gram 类指标与「语义正确但表述不同」不对齐;长文本生成更依赖 LLM-as-a-Judge 或人工评估(见 7.2)。
五、推理、数学与代码能力指标
5.1 解题率(Solve Rate / Pass Rate)
对 GSM8K、MATH、GPQA 等题,从模型输出中解析最终答案(如 \boxed{} 或最后一行数字),与标准答案比对。报告 pass@1(单次采样)或 maj@k(k 次采样多数投票)。
5.2 pass@k 与 pass^k
来自 HumanEval 等代码基准:
- pass@k:对每道题生成 个样本,若至少一个通过单测,则该题计为通过;再在题目上取平均。衡量「给 k 次机会能解出来吗」。
- pass^k:k 次独立采样全部通过的概率(更严格)。
实现上常对无放回采样做无偏估计(原论文附录)。HumanEval、MBPP、LiveCodeBench 等均采用此类指标。
5.3 软件工程基准
- SWE-bench:对真实 GitHub Issue 生成 patch,在容器内跑项目单测;任务级 Acc = 单测全部通过的比例。
- CodeBLEU:在 BLEU 基础上加入 AST、数据流匹配,用于代码生成质量。
六、综合知识与能力基准(Benchmark Acc)
业界常将多任务套件上的 Accuracy 或得分 作为「通用能力」名片,需注意任务形式与污染问题(见 7.2.4 可靠性):
| 类别 | 代表基准 | 主要指标 |
|---|---|---|
| 综合知识 | MMLU、MMLU-Pro、BIG-Bench、HELM | 多选题 Acc、归一化得分 |
| 推理 | ARC、HellaSwag、WinoGrande | Acc |
| 数学 | GSM8K、MATH、AIME 子集 | Solve rate / Acc |
| 代码 | HumanEval、MBPP、SWE-bench | pass@k、Acc |
| 中文 | C-Eval、CMMLU、SuperCLUE | Acc、综合榜 |