← 返回题目列表

预训练过程中如何评估 checkpoint?

中等 第 17 / 25 题 更新于 2026/09/18
大模型预训练Checkpoint评估Validation Loss回归测试

简化版

Checkpoint 评估应分层:先检查文件与数值健康,再看按领域切分的 validation loss,最后运行少量稳定的下游、生成、安全和记忆测试。比较必须按已见 Token、数据版本和相同推理配置对齐;不要只凭平均 loss 选模型,还要识别某些领域退化、污染高分和 loss 改善但任务能力不涨的情况。

详细版

每个候选先验证权重完整、无 NaN/Inf、step/LR 正确,并跑固定 batch 对比 loss。快速层可每若干百 step 计算分域 validation loss、梯度范数和训练吞吐;昂贵层每若干 checkpoint 测知识、代码、数学、多语、长上下文、安全与数据记忆。评测集必须与训练语料隔离并固定版本。

模型选择采用门槛加 Pareto:核心能力不得低于阈值,通用和安全回归不得超过预算,再在合格版本中选质量、成本和稳定性最优者。保留完整评测产物、Prompt、Tokenizer、解码参数和代码 commit,并用置信区间或配对 bootstrap 避免把抽样噪声当提升。

checkpoint -> 完整性/NaN -> 分域loss -> 快速任务 -> 全量能力/安全 -> 候选晋级或回滚

完整版教学

一、评估不是只看训练 loss

训练 loss 在模型刚见过的数据上计算,会受数据难度和重复影响;它下降只说明更好拟合当前训练流。Validation loss 使用隔离数据,更能观察泛化,但平均值仍会掩盖语言和领域差异。下游任务则检验我们实际关心的能力。

预训练过程中评测还承担故障检测:权重损坏、数据 mixture 突变、Tokenizer 错位和数值发散都应尽早发现。因此评估体系既是模型排名工具,也是训练控制面的一部分。

二、第一层先检查状态健康

加载后检查参数 shape、dtype、checksum、NaN/Inf 和 tied weights 关系,确认 global step、累计 Token 与学习率匹配。用固定的 1~10 个 batch 前向,输出 loss 与 logits 摘要;与保存前遥测差异过大时不进入昂贵评测。

健康项异常可能原因
文件/分片完整保存中断、对象存储损坏
参数无 NaN/Inf数值发散被写入
固定 batch loss权重或 Tokenizer 不匹配
step/LR 一致调度器未恢复
推理吞吐稳定图编译或结构变化

这一层应在隔离 worker 上自动运行,失败后保留日志并回退前一版本。

三、分域 validation loss 怎么看

对通用网页、代码、数学、中文、英文等固定验证集分别计算 Token 加权 NLL 和 perplexity。平均 loss 下降可能只是最大数据源改善,某低资源语言却退化。分域曲线还能反映配比变化是否达到预期。

NLL = - Σ valid_tokens log p(x_t | x_<t) / N_valid_tokens
PPL = exp(NLL)

若 NLL 从 2.00 降到 1.98,PPL 从 7.39 到 7.24;差值虽小,在海量 Token 上可能稳定,但仍需任务验证。不同 Tokenizer 的 PPL 不能直接比较,因为 Token 单位不同。

记忆钩子:loss 是“每个 Token 预测得怎样”,任务分数是“能力能否用出来”;前者适合高频监控,后者负责最终解释。

四、下游任务如何控制成本

每个 checkpoint 跑全套 benchmark 很贵,可以分快速烟测、周期评测和里程碑全量三档。烟测用少量高判别样本发现明显回归;周期层覆盖核心任务;最终候选再跑多随机种子、污染检查和人工评审。

快速集不能长期不更新,否则团队会对它过拟合。可保留稳定锚点集与轮换隐藏集,前者看时间趋势,后者检查泛化。生成任务必须固定 Prompt 模板、few-shot、最大长度和解码参数,否则版本差异可能来自评测配置。

五、统计显著性与切片

100 道题从 70 对提升到 72 对,未必是真提升。可对同一批样本做 paired bootstrap,计算分数差的置信区间;多次生成任务还需控制随机种子或报告均值方差。对关键指标设置最小可检测差异。

切片应覆盖训练目标和风险:代码语言、题目难度、长短上下文、文化语言、事实时间、安全类别等。总体持平但高风险切片下降,应阻止晋级。切片数量过多时预先定义主指标,避免事后挑选好看的结果。

六、污染与记忆如何处理

公开 benchmark 可能出现在预训练语料,Checkpoint 越晚记忆越强,分数上涨不一定代表能力。评测前做 n-gram/MinHash 污染扫描,把确认污染样本剔除或单列。使用训练截止日期后的私有集、参数化题和对抗改写能提高可信度。

还可测 canary 暴露、前缀逐字续写和训练文档成员推断。若某版本任务分数略升却记忆风险显著增加,不能简单选最新。数据安全指标应与能力一样成为发布门槛。

七、怎样选择“最佳”Checkpoint

“最后一个”不一定最好,validation loss 最低也不一定满足安全和部署要求。先设硬门槛:无严重回归、安全合格、推理稳定;再在合格集合中比较核心能力、训练成本和趋势稳定性。可使用多个 checkpoint 的权重平均,但必须重新完整评测。

例如 C1/C2/C3 的领域分分别 75/78/79,通用分 80/79/74,安全通过率 98/98/91。若门槛要求通用≥78、安全≥97,只有 C1/C2 合格,C2 是合理候选。把指标简单加权可能让 C3 用领域高分抵消不可接受的安全退化。

八、常见误区与追问

  • 误区:validation loss 最低的 checkpoint 一定最好。 loss 与指令、推理、安全和生成质量并非完全一致。
  • 误区:每次跑同一小评测集就最可比。 长期会产生间接过拟合,需要隐藏轮换集。
  • 误区:公开榜单上升就是能力提升。 先排查训练污染和评测配置变化。
  • 追问:评测频率怎么定? 健康与小 loss 集高频,核心任务周期运行,全量评测只给里程碑候选。
  • 追问:如何比较不同 Batch 的 checkpoint? 按累计有效 Token 对齐,而非只按 step 编号。
  • 追问:能否边训练边评测? 可用独立资源异步评测,但必须记录它对应的不可变 checkpoint。

九、加强记忆

Checkpoint 评估可记成“健、损、能、险、选”:先查文件和数值健康,再看分域 loss,随后测真实能力和统计波动,排查污染、安全与记忆风险,最后用硬门槛加 Pareto 选版本。所有比较按 Token、数据与推理配置对齐,才能让曲线既能报警,也能支撑发布决策。