核心原则一句话:选验证集上更好的 checkpoint,而不是 train loss 最低的那一步。 这一篇讲怎么读日志、怎么看曲线、怎么把「几轮最好」从拍脑袋变成可复现实验。

核心原则

Train loss 持续下降,只说明模型更「贴」训练集;eval loss 若开始回升,往往意味着过拟合。

读哪些文件

训练输出目录里常见:

文件 用途
trainer_log.jsonl / trainer_state.json 逐步 loss、eval_loss、best checkpoint
training_loss.png 训练损失曲线
training_eval_loss.png 验证损失曲线(若开启评估)
train_results.json / eval_results.json 汇总指标

trainer_state.json 里通常能看到 best_model_checkpointbest_metric。若开启了 load_best_model_at_end,最终导出的适配器应对齐该最优步。

曲线怎么读(定性)

健康形态通常是:

  1. 前期:loss 快速下降(模型在学格式与高频模式);
  2. 中后期:下降变缓,进入平台;
  3. eval_loss:整体下降或先降后平;若明显掉头向上,应提前停或回退 checkpoint。

不健康形态:

  • train 一直降、eval 持续升 → 过拟合;
  • 两者长期几乎不动 → 学习率过小、数据过难/过脏、或步数不够。

轮数没有唯一正确答案

可先按数据规模给一个起点,再靠验证集裁定:

监督样本规模(量级) 可试起点
很小 3–5 epoch
中等 2–3 epoch
很大 1–2 epoch

实操建议:

  1. 训练中看 eval_loss
  2. 训完用同一套评估脚本对比多个 checkpoint;
  3. 对结构化任务,以 schema/字段匹配为主指标,不要只看开放文本的字符串全匹配。

批量对比 checkpoint(思路)

写一个脚本遍历 checkpoint-*

  • 加载基座 + 该 checkpoint 适配器(或已合并产物);
  • 私有验证集上跑同一评估;
  • 输出表格:步数、核心指标、是否推荐。

这样「几轮最好」就从拍脑袋变成可复现实验。

过拟合信号清单

  • eval 变差而 train 仍很好;
  • 对训练集原句极准,换个说法就崩;
  • 输出过度模板化,缺乏变化。

对策:减轮数、早停、补更有区分度的样本、加适度 dropout / weight decay。

小结

日志篇解决的是「何时停、选哪份权重」。

语言模型微调实战第 06 篇完。下一篇进入评估:指标怎么选,失败案例如何归因。