DC娱乐网

知乎的一篇介绍GLM-5.3 的 RL 基础设施框架 slime 内部机制的文章

知乎的一篇介绍GLM-5.3 的 RL 基础设施框架 slime 内部机制的文章:slime的rl训推一致性对齐网页链接

GLM 刚刚将 RL 训练-推理一致性推向了近乎数值对齐的水平。 📈 在 4K token 下,训练-推理 Logprob 平均绝对误差达到 1.89×10⁻⁷。 核心思路听起来很简单:提升 SGLang 内核精度、消除非确定性,并将 Megatron 的前向传播与 SGLang 对齐——或直接复用其内核。 但实现并不简单:仅 PR 就超过 10K 行代码。

1️⃣ 舍入边界至关重要 RMSNorm 边界处一个微小的 BF16 与 FP32 差异,会在数十层中累积,最终变成可观测的 logprob 差距。 GLM 将 Megatron 与 SGLang 对齐,使 RMSNorm 直接作用于未舍入的 FP32 残差和,只保留一个外部可见的 BF16 边界。

2️⃣ 对齐深入到 CUDA 指令级别 对于 FP8 GEMM,即使微小的实现差异也会产生影响:expf 与 __expf、一次还是两次 BF16 舍入点、FP8 缩放计算、标量转换还是打包转换,以及内核调度。 仅 1 ULP 的差异就可能将数值推过 FP8 舍入边界,导致 GEMM 结果发散。

3️⃣ 对齐内核,而不仅仅是数学 在前向传播中,Megatron 切换为 SGLang 实现,涵盖 DeepGEMM、RMSNorm、SwiGLU、路由器 GEMM、RoPE、sparse-MLA、FP8 索引器等。 模式一致:前向对齐使用 SGLang 内核,反向则使用稳定的训练侧实现。

4️⃣ 硬件差异可能转化为数值差异 Hopper 和 Blackwell 使用不同的 FP8 路径。在 Blackwell 上,即使将 q 从 64 头填充到 128 头,也可能引入约 1 ULP 的 BF16 差异。 如果训练侧不匹配这种填充,logprob 差距可能从 H100 上的约 2e-7 跃升至 B300 上的 0.027。

5️⃣ MoE 对齐不止于匹配专家 整个路径必须匹配: 路由 → 分发 → 专家 GEMM → 概率加权 → 逆置换 → 合并 即使选中的专家完全相同,不同的 top-k 顺序也会改变 BF16 累加顺序——从而改变结果。 因此,GLM 不仅对齐专家和概率,还对齐概率的应用位置以及精确的归约顺序。