01
60 秒回答模板
LLM 训练监控可以分成质量、稳定性、性能和可靠性四类。质量上要看 train loss、validation loss、按数据域切分的 loss、perplexity、周期 benchmark 和样例生成,不能只看全局平均;如果训练 loss 降而验证 loss 升,可能过拟合或数据配比有问题,如果 loss 突刺要检查学习率、坏 batch、数据重复、混合精度溢出和恢复点。稳定性上要监控 grad norm、梯度 RMS、参数范数、update-to-weight ratio、NaN/Inf、loss scale、梯度裁剪次数和 optimizer state,发现梯度爆炸、消失或优化器状态损坏。性能上看 tokens/s、step time 分解、dataloader wait、通信时间、GPU SM/HBM/NVLink 利用率、显存 allocated/reserved、碎片和 OOM。可靠性上要监控 checkpoint 写入耗时、完整性、恢复一致性、评测任务趋势和不同 rank 的状态一致。一个好的训练监控不是堆 dashboard,而是能把异常从指标模式映射到可能原因,并支持自动报警、暂停、回滚和小规模复现实验。
考点 Loss 多维观察
难度 真实面经题
回答目标 让读者能搭建一套可操作的 LLM 训练监控回答框架:知道看哪些指标、每类指标代表什么、异常模式如何定位,以及如何通过 checkpoint 和评测闭环降低长训风险。
02
深入解析
01 Loss 质量
核心指标包括 train loss、validation loss、per-domain loss、per-token loss、困惑度和 loss moving average。正常情况是训练 loss 平滑下降并逐渐放缓,验证 loss 同步改善或稳定。若训练 loss 下降但验证 loss 恶化,要怀疑过拟合、数据配比不当或评测分布变化。
02 梯度稳定性
需要监控 global grad norm、分层 grad norm、梯度 RMS、参数范数、update-to-weight ratio、梯度裁剪频率、NaN/Inf 和混合精度 loss scale。grad norm 突然尖峰常对应坏 batch、学习率过高或数值溢出;长期接近 0 可能表示梯度消失、冻结错误或 optimizer 配置问题。
03 吞吐性能
性能指标包括 tokens/s、samples/s、step time、forward/backward/optimizer/communication 时间分解、gradient accumulation 周期和 pipeline bubble。吞吐下降但 loss 正常,通常是系统问题;如果周期性下降,可能是 checkpoint、eval 或数据 shard 切换;如果只在部分 rank 慢,要查 straggler 和通信等待。
04 显存状态
显存要看 allocated、reserved、peak memory、activation memory、optimizer state、fragmentation、OOM 次数和重启后的基线变化。显存缓慢增长可能是缓存未释放、动态图对象保留、评测过程泄漏或 dataloader pinned memory 问题;显存突增则常来自 sequence length、batch 形状或激活检查点配置变化。
05 GPU 与网络
硬件监控包括 GPU SM 利用率、HBM 带宽、NVLink/IB 吞吐、PCIe、NCCL wait、温度、功耗和 ECC/Xid 错误。SM 低但网络高说明通信瓶颈,SM 低且 dataloader wait 高说明输入管道瓶颈,单卡异常低说明 rank 负载不均、坏卡或进程阻塞。
06 Checkpoint 可靠性
checkpoint 不是只看有没有文件,还要监控保存耗时、大小、完整性校验、latest 指针、异步上传状态、恢复试跑 loss 是否连续、optimizer/scheduler/random state 是否恢复一致。损坏 checkpoint 会让长训风险极高,必须周期性做 restore validation。
07 评测集信号
周期评测应包含 validation perplexity、领域任务、长上下文、指令遵循、安全或格式约束等切片。若训练 loss 正常但评测下降,可能是数据配比损害某类能力、学习率阶段不合适、过度重复训练、评测污染修正后暴露真实退化,或模型在平均 loss 外的行为能力变差。
08 异常处置
发现异常后应先定界:是单 step、单数据域、单 rank、单节点,还是全局持续问题。然后用最近 checkpoint 回滚、小 batch 复现、固定数据 batch 重跑、降低学习率、跳过坏 shard、隔离节点或关闭可疑优化项验证。监控的价值在于缩短定位路径,而不是只展示曲线。
03
易错点
- 只监控 train loss,忽略 validation、领域切片和评测集。
- 看到 loss 下降就认为训练健康,不检查梯度、NaN、吞吐和资源异常。
- 把 GPU utilization 当成唯一性能指标,不看 HBM、网络和数据等待。
- checkpoint 只检查文件存在,不做完整性校验和恢复试跑。
- loss spike 后盲目继续训练,不定位坏 batch、学习率、溢出或恢复点。
- 发现 OOM 只减 batch,不分析 sequence length 分布、碎片和激活重算配置。
- 只看全局平均指标,忽略单 rank straggler 和数据域退化。
- 评测频率过低或评测集过窄,导致能力退化很晚才被发现。
04
面试官追问
loss 突然 spike 但随后恢复,应该跳过、回滚还是继续训练?
先不要只凭单点决定。若 spike 后指标、梯度和评测都恢复,可能是坏 batch 或短期数值波动,可以标记样本并继续观察;若伴随 NaN、grad norm 异常、loss scale 频繁下降或后续验证退化,应从最近可靠 checkpoint 复现并考虑回滚。
如何区分坏数据 batch、学习率过高和混合精度溢出导致的 NaN?
坏数据通常能在固定 batch 重跑时复现,并集中在特定 shard、长度或 token 分布;学习率过高会表现为全局 grad norm 持续放大和 loss 发散;混合精度溢出常伴随 Inf、loss scale 调整、特定 kernel 或激活范围异常。
tokens/s 下降时,怎样判断瓶颈在 dataloader、NCCL 还是 GPU kernel?
看 step time 分解和 profiler。dataloader wait 高说明输入管道慢;NCCL 时间、rank wait 或网络吞吐升高说明通信瓶颈;若 GEMM kernel 时间增加、SM/HBM 接近上限,则更像计算或内存带宽瓶颈。还要比较不同 rank 的耗时。
为什么 validation loss 正常,具体任务评测仍可能下降?
validation loss 是平均 token 预测指标,可能对格式遵循、推理链路、长上下文、少数领域能力或安全边界不敏感。数据配比变化也可能让平均 loss 稳定,但某些任务切片退化,所以需要周期 benchmark 和样例生成共同观察。
checkpoint 恢复后 loss 不连续,可能缺了哪些状态?
常见原因是 optimizer state、scheduler step、随机数状态、dataloader 位置、混合精度 loss scale、模型 shard、EMA 或并行拓扑信息没有完整恢复。也要检查是否加载了不一致的 tokenizer、配置或数据顺序。
如何设置报警阈值,避免既漏报严重问题又被正常波动刷屏?
阈值应结合绝对值、相对变化和持续时间,例如 loss 或 grad norm 超过移动窗口统计范围并持续多步才报警;NaN、checkpoint 损坏、rank 掉线可立即报警。不同训练阶段、数据域和规模应使用分层阈值。