Qian, Cheng

Activation Recomputation 不是免费午餐:recompute 24 层 vs 16 层导致 loss 显著偏高

某 3B 模型的代码预训练实验,recompute-num-layers 从 16 改到 24,loss 明显偏高。教科书说 activation recomputation “对训练无影响,只是用计算换内存”——但在 BF16 精度下,这个假设在 24/32 层时不成立。 1. Activation Recomputation 的教科书描述 标准说法:前向传播时不保存中间层的 ac...

RMSNorm scalar 漂移到 56 训练 Loss 却不动:Softmax 的量化照妖镜与温度调控术

一个 3B 模型训练到中后期,RMSNorm 最后一层的 learnable scalar 从初始值 1.0 悄悄漂移到了 56。训练 loss?纹丝不动。验证 perplexity?看不出异常。直到模型做 INT8 量化部署——精度断崖式下跌,top-1 accuracy 掉了 12 个点。这篇文章从这个真实 case 出发,把 softmax 的数值陷阱、温度调控、精度问题串成一条线。 ...

长文 Loss 突然涨了 0.004:一次 RoPE × SWA 的冲突复盘与位置编码扩展全解

引子:一次出乎意料的长文 Loss 恶化 某 3B 模型项目中,我们尝试将 SWA(Sliding Window Attention)与 Hybrid RoPE 组合使用。假设很简单:SWA 节省长序列显存,RoPE 负责长距离位置建模,各司其职。短文本 PT(Pretraining)阶段的指标也确实验证了这个预期——loss 下降了 0.002,一切看起来很美好。 但切到长文本 FD(...

一个 Megatron flag 把多模态梯度稀释了 17 倍:--calculate-per-token-loss 的生产事故复盘

某 3B 多模态模型完成了 5.2T token 的 PT-1 阶段,多模态指标(OCRBench、物体识别)全线偏低。排查了数据、模型结构、学习率……最后发现是训练脚本里多了一个 Megatron flag:--calculate-per-token-loss=true。这个 flag 把多模态梯度贡献从 16% 稀释到了 0.94%——整整 17 倍。 一个 boolean 参数,吃掉...

Loss Spike 频率降了 80%:从 Adam 到 MuonClip,万亿参数 MoE 的优化器进化实战

两份优化器配置,同一个 3B 模型底座,一份跑纯文本预训练,一份跑多模态对齐。把它们的超参数差异摊开来看,就能直观理解为什么 Adam 在大规模训练中需要如此多的”场景特化”——以及为什么业界正在转向 Muon。 一个 3B 模型的两套优化器配置 某 3B 模型的纯文本预训练基线: optimizer: AdamW beta1: 0.9 beta2: 0.95 epsilon: 1...