新闻中心

NVIDIA 公开 Megatron Core 位级确定性训练方案:Nemotron 3 Ultra 确定性开销从约 17% 降至 1.5% NEWS DETAIL

当前位置:首页 > 新闻中心
资讯分类 · 新闻中心 作者 · 超级管理员 审核人 · 内容审核团队 发布时间 · 2026-10-17 更新时间 · 2026-10-17 来源 · 本站

NVIDIA

当模型规模达到万亿参数、训练横跨数千张 GPU 时,一次 loss 尖峰或一次中断都可能让昂贵的训练任务回到起点。要复现失败、验证修复,前提是两次独立运行、以及从检查点恢复的运行,在数据顺序、架构、配方、并行策略、软件、运行时设置和硬件都固定的情况下走完全相同的数值轨迹——也就是位级确定性。

Megatron Core 面向两个保证:一是独立可复现,两次从相同初始状态启动的运行在每一步都位级一致;二是位级断点续训,保存并恢复一次或多次检查点后,结果与未中断的运行完全相同。NVIDIA 在技术博客中列出它的四项价值:按相同步数重放失败、保持检查点前后的数值连续性、通过差异发现检查点损坏或软硬件问题、以及把有意改动的数值影响与运行间波动区分开。

验证不能只看打印出来的 loss。两次运行的 loss 可能四舍五入后完全相同,但梯度或参数的低位已经不同。更可靠的做法是逐步对选定的数值指标做"指纹",包括训练 loss、语言建模 loss、负载均衡 loss、多 token 预测(MTP)loss 和梯度范数,再逐 step 比对两次运行,第一个不匹配的步数就是排查起点。官方示例中,全精度指标显示首个不一致出现在第 377 步。

定位差异依靠逐层收窄。Megatron-LM PR #7262 提出的流程会按 rank 记录有序的张量指纹并离线比对:先做端到端比较,再把捕获范围从训练迭代缩小到阶段、模块、算子,最后到内核。判断规则是,如果两次运行以位级相同的输入进入某个范围、却带着不同输出离开,差异就产生在该范围内。实现上使用 torch.hash_tensor 在 GPU 上直接计算指纹,同时记录形状、dtype 和元素数;对 MXFP8、NVFP4 张量还要把编码值与 scale buffer 一起指纹。整张量 XOR 指纹无法发现元素排列变化,因此路由图、MoE dispatch 输出这类顺序敏感数据需要按行或按块、借助 dim 参数计算。

确定性不能以牺牲吞吐为代价。NVIDIA 用"确定性税"衡量开销,即确定性步时相对最快非确定性配方的增幅。一个具体例子是 grouped-GEMM 的 epilogue:多个 N-tile 原先累加到同一个 dprob[token] 地址,结果取决于到达顺序;团队改为给每个 N-tile 独立输出槽,保持内核内并行,等全部写完后按固定顺序合并。在三类工作负载上,步时开销都从两位数降到低个位数:Nemotron 3 Ultra 从约 17% 降到 2%,再降到 3072 GPU 上的 1.5%;混合 Triton 代理从约 60% 降到 37%,最终到 2%;CuTeDSL 权重梯度路径在 256 GPU 上约 3.6%;2432 GPU 的大规模配方在 800 步内保持位级一致,稳态开销约 2%。

规模越大,这笔账越重要。NVIDIA 举例说,一个在 10000 GPU 上跑 100 天的非确定性基线,若把开销从 15% 降到 5%,就能省下 10 天、约 10 万 GPU-day。为防回归,Megatron-LM 提供 --deterministic-mode 配方校验、逐字节比对的内核测试,以及在 FP8、FP4 和不同并行配置下重复模块级测试。需要说明的是,位级确定性只在相同硬件与软件环境内成立,跨 GPU 代际、网络配置或库版本的比较不在验证范围之内。