预训练监控指标#
本页内容4 个部分
1. 统计口径与使用方式#
这份表记录训练内部状态的诊断入口。指标异常用于定位问题,不能仅凭一个数值判定模型坍塌;应结合基线、训练阶段和数据分布。
表中的 P0/P1/P2 是本笔记建议的排查顺序,不是跨框架统一的告警等级;指标名与 hook 位置也要以实际实现为准。
RMS 和平方归约建议先转 FP32,并排除 padding;分布式均值应按有效元素数加权,最大值用 MAX 归约。MoE token 计数需明确统计窗口与 EP 全局聚合范围。
2. 指标速查#
| 大类 | 模块归属 | 重要性 | 观测对象与指标名 | 计算方法与监控作用 |
|---|---|---|---|---|
| act (激活) | output_layer | P0 | act/output_layer_logits_rms.avg | 计算: logits.pow(2).mean().sqrt()。作用: 监控最终输出 logits 的均方根值,用于判断输出分布是否爆炸或发散。 |
| moe (路由) | moe_router | P0 | moe/dead_expert_ratio | 计算: 统计全量数据中分配 token 数为 0 的专家占总专家数的比例。作用: 核心 MoE 监控,观察专家闲置。小 batch 下零 token 专家可能自然出现,需结合窗口大小、负载分布和期望计数判断。 |
| Diagnostic | attention | P0 | bos_value_grad_... | 计算: 特殊观测 BOS (Begin of Sentence) token 在 attention 层的 value 梯度。作用: 诊断指标,常用于排查特殊 token 引发的异常梯度累积。 |
| act (激活) | output_layer | P1 | act/output_layer_logits_abs.max | 计算: 输出 logits 的绝对值最大值。作用: 监控数值上限,识别异常值;稳定 softmax 会减最大值,有限的大 logit 本身不必然使其溢出,仍需检查输入 NaN/Inf 与上游计算。 |
| act (激活) | output_layer | P1 | act/output_layer_logits_top2_diff.avg | 计算: torch.topk(logits, 2),计算 (top1 - top2).mean()。作用: 监控预测置信度,差值反映头部置信度,但难样本、小 margin 或量化并列不等于退化。 |
| act (激活) | output_layer | P1 | act/output_layer_logits_top2_equal_ratio | 计算: 统计 top1 == top2 的比例。作用: 配合 diff 监控极端的分布平滑或模型坍塌现象。 |
| act (激活) | transformer | P1 | act/hidden_states_abs.max | 计算: TransformerLayer 最终输出的隐状态最大绝对值。作用: 监控主干网络深层激活是否出现异常 outlier。 |
| act (激活) | transformer | P1 | act/hidden_states_rms.avg | 计算: TransformerLayer 最终输出隐状态的均方根值。作用: 监控层间激活尺度;RMS 包含均值贡献,不等于标准差。 |
| act (激活) | mtp | P1 | act/mtp_{k}_lm_head_top1_agreement | 计算: LM head 的 top-1 预测 ID 与 MTP 第 k 层的 top-1 预测的重合度。作用: 监控多步预测 (MTP) 的一致性与前瞻表征质量。 |
| moe (路由) | moe_router | P1 | moe/maxvio.mean (及 .max) | 计算: 各 MoE 层 maxvio 张量的均值与最大值。作用: 衡量负载不均,不能与辅助损失混为一谈;例如定义为 (最大专家 token 数 − 平均数) / 平均数时,应排除平均数为零的窗口。 |
| moe (路由) | moe_router | P1 | moe/ep_bias_abs_sum | 计算: Expert bias 的绝对值求和。作用: 监控 MoE router 的偏置变化,防止个别专家被过度激活。 |
| grad (梯度) | embedding | P2 | grad/word_embeddings_abs.max | 计算: Embedding 权重梯度的最大绝对值。作用: 监控词表层梯度的剧烈波动。 |
| grad (梯度) | output_layer | P2 | grad/output_layer_abs.max | 计算: LM Head 权重梯度的最大绝对值。作用: 监控反向传播起点的梯度健康度。 |
| grad (梯度) | attention | P2 | grad/Wq_abs.max(含Wk/Wv) | 计算: 从 fused QKV 切分出的 Query/Key/Value 投影权重的梯度最大值。作用: 定位 Attention 核心投影层的梯度毛刺。 |
| grad (梯度) | attention | P2 | grad/Wo_abs.max | 计算: Attention Output 投影 (Wo) 的权重梯度最大值。作用: 监控 Attention 模块输出聚合时的梯度状态。 |
| grad (梯度) | mla_attention | P2 | grad/mla_Q_up_abs.max(含Q_down/KV_up等) | 计算: MLA 特有的降维/升维投影 (linear_q_up_proj等) 的权重梯度最大绝对值。作用: 专门针对 MLA 压缩与解压机制的梯度监控。 |
| grad (梯度) | mlp | P2 | grad/W_gate_rms(含W_up/down) | 计算: MLP 门控网络 (W_gate) 及上下投影权重的梯度 RMS。作用: 监控 MLP 层的梯度规模,通常采用 RMS 比 MAX 更能体现整体更新幅度。 |
| grad (梯度) | layernorm | P2 | grad/{name}_rms | 计算: 各层前置 LayerNorm (如 pre_mlp_layernorm) 及最终 LayerNorm 的权重梯度 RMS。作用: LN 的缩放因子极大影响训练稳定性,需严格监控其梯度累积。 |
| act (激活) | attention | P2 | act/attn_out_before_proj_rms.avg | 计算: Attention core 输出 (投影前) 的 RMS 均值。作用: 监控 Attention head 汇聚前的激活规模,便于定位注意力机制内部的数值爆炸。 |
| act (激活) | mla_attention | P2 | act/gate_scores_rms.avg | 计算: MLA gated attention 的 sigmoid 门控分数的 RMS 均值。作用: 监控 MLA 的门控开启程度与分布状态。 |
3. 解读边界#
MTP agreement 应对齐各分支的预测目标位置,并与真实标签准确率一起看;不要比较错位 token。表中的 sigmoid gate 指标只适用于实际加入 gated attention 的变体,标准 MLA 不包含这一门控。
4. 从指标回到定位步骤#
先用 loss、裁剪前全局梯度范数和 AMP 跳步定位异常时间,再对比同一步各层的 RMS 与最大值,查找最早偏离正常基线的位置。RMS 衡量均方根,不等于方差或标准差;最大值则可能由单个位置主导。
梯度指标应说明是在 unscale 前后、裁剪前后,以及参数是否已分片。MoE 指标同时记录有效 token 数、top-k 和统计窗口;只看平均负载可能掩盖少数专家的极端值。具体排查顺序见训练诊断。
延伸阅读#
- 训练超参数计算器:怎样由训练预算和硬件设置得到一组可核对的训练参数?