M3-087M3: Deep Learning FoundationsTraining Diagnostics & DebuggingMedium
Mastery:

Training Diagnostics & Debugging: 解释 loss 曲线中常见的三种异常形态及其原因。

📐 Mathematical Definition
diagnose: {oscillate→η↑; step→data/sched; spike→bad batch}\text{diagnose}:\ \{\text{oscillate}\to\eta\uparrow;\ \text{step}\to\text{data/sched};\ \text{spike}\to\text{bad batch}\}
⚡ Executive Summary
Core Concept: 震荡不收敛(lr 过大)、阶梯式跳变(数据/调度问题)、突增后恢复(spike,脏数据/数值)。

📌 Key Takeaways

  • •
    震荡:lr 过大或 batch 过小
  • •
    阶梯跳变:数据分布变化、lr 调度点、恢复训练
  • •
    突增:loss spike(脏数据、数值溢出)

📐 Mathematical Derivations

数学机理:<strong>(1) 震荡不收敛</strong>——loss 在较高水平来回波动、不下降。原因:(a) <strong>lr 过大</strong>——单步跨过极小值,在两侧来回跳(表现为规律性的大幅震荡);(b) <strong>batch 过小</strong>——梯度噪声大,loss 本身波动(但趋势仍向下);(c) <strong>梯度爆炸</strong>——偶发尖峰。区分方法:lr 过大的震荡<strong>幅度大且规律</strong>、降 lr 后立即改善;噪声导致的震荡<strong>幅度小且趋势向下</strong>、是正常现象。<strong>(2) 阶梯式跳变</strong>——loss 在某步突然上跳(或下跳)一个台阶并保持。原因:(a) <strong>lr 调度点</strong>(如 step decay 的下降点,loss 会先降后稳);(b) <strong>数据分布切换</strong>(如多数据源混合时权重变化、课程学习阶段切换);(c) <strong>恢复训练</strong>(checkpoint 恢复后优化器状态/数据顺序不一致);(d) <strong>数据管道 bug</strong>(如某类数据开始/停止出现)。<strong>(3) 突增后恢复(spike)</strong>——loss 突增一到数个量级,随后(可能)恢复。原因:(a) <strong>脏数据</strong>(异常样本、超长序列);(b) <strong>数值溢出</strong>(FP16 下 exp 溢出);(c) <strong>注意力数值问题</strong>;(d) <strong>梯度爆炸</strong>。特征是<strong>伴随 grad_norm 尖峰</strong>、且可定位到具体 step/batch。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>震荡的定量判据</strong>——计算 loss 的滑动标准差与滑动均值之比;若 >10% 且不下降,说明不稳。② <strong>阶梯式下降 vs 上升</strong>——阶梯<strong>下降</strong>常是 lr 调度的正常效果(step decay 设计如此);阶梯<strong>上升</strong>才是异常(数据或恢复问题)。③ <strong>spike 的处置</strong>——回滚到 spike 前、跳过坏批次、降 lr、用 BF16;若频繁发生需查数据清洗与数值稳定(见 loss spike 题)。④ <strong>多数据源混合的坑</strong>——预训练常混合多个数据集并设权重;权重变化或某数据集耗尽(进入下一 epoch)时 loss 会阶梯式变化,需在日志中标注数据源切换点。⑤ <strong>与 warmup 的关系</strong>——warmup 期 loss 通常先平后降;若 warmup 期 loss 上升,说明初始 lr 或初始化有问题。⑥ <strong>面试要点</strong>——被问'loss 曲线这样是什么问题',应给出'<strong>形态 → 候选原因 → 验证方法</strong>'的三段式回答;例如'规律性大震荡 → lr 过大 → 降 lr 验证',而非笼统的'训练不稳定'。
⚠️ Common Interview Pitfalls
  • ✕
    把正常的噪声波动误判为不收敛
  • ✕
    忽略数据源切换导致的阶梯变化
🎯 Interviewer Follow-ups
  • ?
    如何区分 lr 过大导致的震荡与噪声导致的震荡?
  • ?
    阶梯式上升通常预示什么?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM3-086: Training Diagnostics & Debugging: 训练 loss 下降但验证 loss 上升,说明什么?怎么办。📋Back to BankNext →M3-088: Training Diagnostics & Debugging: 如何判断模型是欠拟合还是过拟合?