MoE 训练的隐形门槛:显存尖峰
大模型训练早已进入万卡规模,但显存始终是那道看不见的门槛。MoE 架构把模型推到万亿参数级别,也埋下一颗定时炸弹——显存尖峰。某个微批次的 token 一旦集中涌向少数专家,激活显存会瞬间飙升,一张卡 OOM,整个分布式任务直接挂掉,几百步训练白跑。问题不在平均负载,而在少数异常迭代。
机器之心援引的实测数据显示:97.1% 的迭代中专家负载不均衡率低于 1.2×,看似平稳;但 2.9% 的异常迭代里,最高可达 2.6×。正是这极少数迭代反复打断训练。现有系统依赖静态显存预留:激进配置平时 MFU 约 30%,但尖峰必崩,一次冷重启就要 284 秒;全层重计算的保守配置稳是稳,MFU 却掉到 24.6%,算力长期闲置。怎么选都在浪费资源。
八卦炉2 怎么做:运行时自适应,零配置干预
清华大学翟季冬教授团队的答案是八卦炉2(BaGuaLu-2),论文已被 SC26 录用。核心思路很直接:显存压力在变,策略也该跟着变。平稳时少做干预保留高吞吐,尖峰来了临时加码,过去再自动恢复——不终止任务、不改配置、不重启。这套机制名为灵活激活显存供给(Flexible Activation Provisioning)。
决策点选在一个关键窗口:MoE 门控计算完成后、专家计算开始前。此时真实负载已知、风险尚未落地,仍有时间临时加强重计算或卸载。策略不再以整层为单位,而是不同算子分别选择保存、重计算或卸载,只选满足显存预算的最小组合。系统还会追溯激活来源,排除重复保存与冗余组合。决策开销低于 10 毫秒,而一次迭代超过 18 秒,开销几乎可忽略。
实测:国产算力上的万卡验证
在某万卡智算中心,模型从 1880 亿到 1.04 万亿参数,集群从 128 张扩展到 12,288 张海光 DCU(BW1000)。相比 Megatron-Kuai 与 AdaPipe,八卦炉2 平均提升 1.14× 与 1.13×(已含 OOM 重启损失)。在 12,288 卡规模下总吞吐达到 2.012 EFLOPS,平均 MFU 32.9%、峰值 35%。消融实验显示,细粒度激活策略、动态显存管理与重叠调度依次叠加,最终形成 1.38× 的整体收益。
值得注意的是,这套系统跑在国产海光 DCU 上。团队指出,其评测技术亦应用于智算中心的能耗控制,对使用国产算力较多的场景效果将更明显。代码已在 GitHub 开源(thu-pacman/BaGuaLu),提供适配样例与中立评测基准,可集成到现有训练流水线。
为什么重要:把显存管理从玄学变成可调度的资源
MoE 把显存尖峰从一个偶发故障,变成了可以建模、可以预测、可以调度的工程问题。八卦炉2 把一个可扩展的成本模型(保存、重计算、卸载统一估算显存收益与时间开销,多模型多配置平均预测误差仅 1.56%)与算子级精细控制结合起来,本质上把显存从被动预留的资源,变成了随负载弹性伸缩的供给。对正把训练推到更大集群、更多国产芯片的团队而言,这类系统级突破比单纯堆卡更有杠杆。
从更宽的视角看,这是国产算力上大模型训练系统的一次可复现方法级进展:不止于单点提速,而是给出一套能在万卡、跨芯片上稳定运行的显存供给范式。随着 MoE 成为主流架构,谁能把显存尖峰压住、把 MFU 抬起来,谁就能在同样的硬件上挤出更多有效算力。目前论文给出的机制已开源核心模块,后续在实际业务负载下的长期稳定性仍值得持续观察。