微调路线选型见 微调技术路线系列导读。微调完成后,「loss 降了」不等于「任务变好了」。评估指标的作用,是把模型在干什么翻译成可比较、可复现的数字——训练时看曲线是否健康,上线前看任务指标是否真提升。
段末注释:SFT(Supervised Fine-Tuning,监督微调)用标注样本优化下一 token 预测;训练指标反映拟合过程,任务指标反映业务目标达成度,二者不可互相替代。
本系列为目录 04(阅读顺序第 6 步)。前置:00 导读 → 01 数据 → 02 PEFT → 03 SFTTrainer。
本系列按微调实践中出现频率,把指标分为四层。

一、四层指标:各自回答什么问题
| 层级 | 回答的问题 | 典型指标 | 计算时机 |
|---|---|---|---|
| 训练监控 | 模型是否在学、是否过拟合 | eval_loss、Perplexity、mean_token_accuracy | 训练/验证集,每 N step |
| 任务判别 | 离散标签预测对不对、哪类容易错 | Accuracy、Precision/Recall/F1、混淆矩阵、Invalid 率 | 测试集,微调前后对比 |
| 生成质量 | 开放文本与参考答案有多接近 | BLEU、ROUGE、Exact Match、BERTScore | 测试集,需 reference |
| 专项能力 | 代码能否跑通、格式是否合规 | pass@k | 需沙箱或解析器 |
经验法则:
- 训练阶段:eval_loss 与 mean_token_accuracy 看收敛与过拟合;不要仅凭 train loss 停训。
- 生成式分类(输出固定标签词):macro F1 + 混淆矩阵 + invalid 率;务必跑微调前基线。
- 摘要/翻译/QA:BLEU / ROUGE / EM / BERTScore 各看一面;长文本生成还需人工抽检。
- 代码微调:pass@1 为主,附 pass@10 看多次采样潜力。
二、系列文档索引
2.1 训练过程指标
| 文档 | 指标 | 一句话 |
|---|---|---|
| 交叉熵损失 eval_loss | Cross-Entropy Loss | 模型对标准答案有多「意外」;越低越拟合 |
| 困惑度 Perplexity | PPL | loss 的指数形式,直观表示「平均候选词数」 |
| Token 准确率 mean_token_accuracy | Mean Token Accuracy | 非掩码 token 上 top-1 命中率 |
2.2 分类与结构化预测
| 文档 | 指标 | 一句话 |
|---|---|---|
| 准确率 Accuracy | Accuracy | 预测完全正确的样本占比;直观但易被类别不平衡误导 |
| 精确率、召回率与 F1 | P / R / F1 | 单类查准查全与二者的调和平均;macro 适合不平衡多分类 |
| 混淆矩阵 Confusion Matrix | Confusion Matrix | 真值×预测的计数表;定位「哪两类互相搞混」 |
| Invalid 预测率 | Invalid Rate | 生成结果无法解析为合法输出的比例;格式约束任务必备 |
2.3 开放生成质量
| 文档 | 指标 | 一句话 |
|---|---|---|
| BLEU | BLEU | n-gram 精确率的几何平均;偏「用词是否对齐参考」 |
| ROUGE | ROUGE-L 等 | 基于召回的 n-gram / 最长公共子序列重叠;偏摘要覆盖 |
| 完全匹配 Exact Match | EM | 生成答案与标准答案字符串是否完全一致 |
| BERTScore | BERTScore F1 | 基于语义 embedding 的 P/R/F1;对同义改写更宽容 |
2.4 专项能力
| 文档 | 指标 | 一句话 |
|---|---|---|
| pass@k | pass@k | k 次采样中至少一次通过单元测试的比例;代码生成主指标 |
三、在微调流水线中的位置
1 | 标注数据 → 监督微调训练 |
训练框架(如 TRL SFTTrainer)自动产出训练监控指标;任务指标需在 test 集上自行编写评估脚本,且微调前后使用同一套 prompt、decode 与 parse 规则。
四、选型速查
| 你的任务 | 优先看什么 | 次要补充 |
|---|---|---|
| 指令跟随 / 对话 SFT | eval_loss、mean_token_accuracy | 人工抽检 + EM(若有标准答) |
| 生成式分类(输出标签词) | macro F1、invalid 率、混淆矩阵 | accuracy |
| 传统分类头微调 | macro/micro F1、accuracy | 混淆矩阵 |
| 摘要 / 翻译 | ROUGE-L、BLEU | BERTScore、人工可读性 |
| 抽取式 QA | Exact Match、token F1 | BERTScore(允许 paraphrase 时) |
| 代码生成 | pass@1 | pass@10、失败类型统计 |
五、共性局限(读任何单篇前先看)
- 训练指标 ≠ 任务指标:eval_loss 低不保证分类 F1 高,尤其当评估用
generate()而训练用 teacher forcing。 - 数据泄漏:验证/测试 prompt 或实体若出现在训练集,指标会虚高。
- 生成式评估成本高:每条样本 autoregressive decode,可限制评估子集规模,但微调前后 limit 必须一致。
- 单一指标误导:不平衡分类只看 accuracy;开放生成只看 BLEU 都会漏掉重要失败模式。
- 比较必须同条件:同一 test 子集、同一 prompt、同一 decode 策略(temperature、max_tokens),否则 delta 无意义。
- 解析规则即指标:Invalid 率、EM、分类 Accuracy 都依赖 parse/normalize,变更规则后历史不可比。
各指标的公式、代码、适用边界见对应子文档。