训练日志里最显眼的指标通常是困惑度,它下降得漂亮,不代表模型在真实任务上就更好用。 这篇笔记记录了一次小规模对比,想弄清楚几种指标之间的关系。
困惑度是什么
困惑度衡量模型对文本的「意外程度」:给定前文,模型给下一个词分配的概率越高,困惑度越低。 它本质上是在衡量语言建模能力,而不是在衡量任务完成能力。
三个指标
- 困惑度:自动计算,成本低,但对生成质量不敏感。
- 任务准确率:针对具体任务构造答案比对,客观但只看结果对不对。
- 人工评分:从准确性、完整性、表达三个维度打分,成本高,但最接近真实体验。
为什么会不一致
在同一批样本上,困惑度最低的版本并没有拿到最高的任务准确率,人工评分也排不到第一。 可能的原因有几个:困惑度更偏向常见表达,而任务需要的是精确的事实;训练数据分布和评测分布 之间始终存在偏移;以及困惑度对长答案中的局部措辞过于敏感。
怎么选指标
我的做法是:训练阶段看困惑度,用它判断收敛和异常;选模型阶段看任务准确率; 最终上线前抽一批样本做人工评分。三个指标各管一段,不要指望其中一个包打天下。
指标不是越多越好,而是要对准你真正关心的那件事。