Ai2发布Olmo-core 3:面向万亿参数MoE的开放训练框架
Ai2在Hugging Face博客发布Olmo-core 3,用DDP替代FSDP,在 8 张B300上把 470 亿参数MoE的吞吐从每秒每GPU 1.94万token提到 5.2 万,并已在 512 张GPU上跑过 1.2 万亿参数配置。
AI解读:Ai2把训练大MoE的“脚手架”整个重写了一遍:Olmo-core 3不再像上一版那样用FSDP每一小批数据都重新收集、切分权重,而是把专家常驻在GPU上,把数据路由过去。最直观的收益是吞吐:同样 8 张NVIDIA B300,470 亿参数MoE从每秒每GPU 1.94万token升到 5.2 万,约 2.7 倍。
这次升级的真正动机藏在MoE的成本结构里。MoE虽然每个token只激活少数专家,但全部参数仍要占显存、仍要更新,专家越多,路由和通信开销越大,最后可能把稀疏带来的算力优势吃掉。Ai2的一个基准把专家池从 8 扩到 128、每token仍只选 4 个,总参数量从 46 亿涨到 470 亿,活跃参数稳定在约 32 亿,吞吐只掉了不到 5%。
最直接受益的是没有大厂预算的研究者和中小实验室,他们可以拿这套开源栈训练自己的MoE,或改到不同硬件上。不过Ai2也把限制写清楚了:1.2 万亿参数(每token激活 583.6 亿)、512 张GPU、858 TFLOP/s/GPU的测试用的是随机路由,量的是系统性能而不是模型质量;2.38 万亿参数那次只是短时容量测试,不是完整训练。
Ai2在技术报告里还列了几条“反直觉”的实验结果:用于鼓励均衡路由的分数可能在负载实际更不均衡时反而变好,他们称之为token gerrymandering;给处理更少token的专家调低学习率,在他们测试的模型家族里没有改善;相同矩阵维度下,数值不同会让GPU计算时间不同;把通信和计算放到不同GPU流上重叠,有时反而拖慢端到端速度。这些结论比吞吐数字更能帮后来者避坑。
接下来下一代Olmo会用MoE架构,Ai2称目标是迄今最强的一代,将用最大的数据集和最长上下文训练。Olmo-core 3支持MXFP8低精度格式,在 4 张B300的对照基准里吞吐比BF16高约 21%,峰值活跃显存从 103 GiB降到 95 GiB,大部分收益来自前馈计算和专家间数据传输,而不是注意力。
Ai2在Hugging Face博客发布Olmo-core 3,称这是其大语言模型开发框架的一次重大升级,核心是重新设计的开放混合专家(MoE)训练系统,目标是把MoE训练扩展到万亿参数级别,同时保持计算效率。它是下一代Olmo背后的核心系统之一,也是Ai2开放模型训练基础设施承诺的一部分。
Ai2称,训练大模型需要大量算力,推高成本与能耗,使许多学术研究者和较小实验室难以开发先进模型。MoE允许模型包含更多参数而无需每个输入都用到全部参数,但完整模型仍需存放在GPU显存中并在训练中更新,把输入路由到正确专家在集群上还会带来通信与协调成本;随着MoE变大,这些成本可能侵蚀稀疏激活带来的算力优势。Olmo-core 3的目标就是缩小这一差距。
在一个基准中,Ai2把专家池从 8 个增加到 128 个,同时每个token仍只选择 4 个专家,每token活跃参数大致固定在约 32 亿。总参数容量从 46 亿增至 470 亿,训练吞吐下降不到 5%。Ai2称同一基础设施已在超过 1 万亿总参数的规模上做过基准测试。
从FSDP换成DDP:8 张B300上吞吐约 2.7 倍
Olmo-core随每一代Olmo演进。Ai2在稀疏模型上的工作可追溯到OlmoE,它使用 64 个路由专家的MoE架构;而Olmo 3采用稠密架构,几乎所有参数对每个token都活跃,其训练栈围绕该设计构建。
Olmo-core 3扩展了这套框架,加入为更大MoE设计的训练系统。早期MoE实现使用完全分片数据并行(FSDP),为每个小批量训练数据收集并重新分片模型权重。Olmo-core 3改用基于分布式数据并行(DDP)的系统,让专家常驻GPU,把相关数据路由到专家,避免反复收集权重。
Ai2称,NVIDIA的Megatron-Core是训练大MoE的既有选择;Olmo-core 3为Olmo背后的框架带来集成的MoE训练栈,其重新设计相比早先基于FSDP的实现提升了吞吐。在 8 张NVIDIA B300 GPU上的初步测试中,一个 470 亿参数MoE用新栈达到每秒每GPU 52,000 token,而早先实现为 19,400,约为 2.7 倍吞吐。
并行与路由优化,以及MXFP8的实测收益
Olmo-core 3结合多种技术把大MoE分布到GPU集群上:专家并行把专家分散到各GPU,每张GPU只存全部专家池的一部分;流水线并行把模型层切分到多组GPU,减少每张GPU需在内存中保留的模型量;分布式优化器把优化器状态分散到各GPU,而不是每张卡存一份完整副本。
在降低路由与计算成本方面,行式专家并行把路由数据直接放入专家输入缓冲区,减少重排数据的额外工作;GPU常驻路由把路由元数据留在GPU上,让CPU不必等待这些信息拷回即可排队工作;分组GEMM合并许多小专家计算,让GPU执行更高效。
Olmo-core 3还支持MXFP8低精度格式,用更少比特表示部分数值,可减少计算量和GPU间数据传输,前提是节省超过格式转换成本。Ai2在 4 张NVIDIA B300 GPU上做了工作均匀分布到专家的对照基准:在收益最大的部分启用MXFP8后,训练吞吐比作为基线的BF16高约 21%,峰值活跃显存从 103 GiB降至 95 GiB。Ai2称大部分收益来自前馈计算和专家间数据移动,而非注意力。
1.2 万亿参数、512 张GPU:量的是系统性能而非模型质量
Ai2称已在NVIDIA B300 GPU上对Olmo-core 3做了多种配置的基准测试,包括一个 1.2 万亿参数模型,每token激活 583.6 亿参数,运行在 512 张GPU上,观测到的最高吞吐为 858 TFLOP/s/GPU。这些测试使用随机路由来衡量系统性能,而不是衡量训练出的模型质量。
Ai2还试验了DeepEP v2,一种处理GPU间专家通信的替代方式,达到总参数 2.38 万亿的配置。Ai2说明这是一次短容量测试而非完整训练运行,因此它展示的是Olmo-core 3可达到的规模,而不是持续训练性能。
技术报告里的几条反直觉发现
Ai2称,在此类规模上系统性能只是图景的一部分,其技术报告还记录了影响MoE训练方式与性能度量的实验。例如:一个旨在鼓励均衡路由的分数,可能在实际负载变得更不均衡时反而改善,Ai2称之为token gerrymandering;因为他们处理的token更少而降低专家的学习率,在测试的模型家族中并未改善结果;即使矩阵维度相同,被处理的数值不同也会让GPU计算耗时不同——因此性能比较不仅需要匹配形状,也需要匹配输入数值。
Ai2还提到,在独立GPU流上重叠通信与计算并不总能加快训练,某些测试中反而拖慢端到端执行。报告在解释这些发现的同时,也列出了测试并决定不采用的方法。
下一代Olmo将用MoE,栈完全开放
Ai2称Olmo-core 3是下一步工作的基础:下一代Olmo将使用MoE架构,目标是成为迄今最强的一代Olmo,用其最大的数据集和最长上下文窗口训练。新栈让他们能超出此前MoE工作的规模,并在模型与硬件演进时更灵活地调整训练。
Olmo-core 3完全开放,研究者和开发者可用它训练自己的MoE、适配不同硬件,并试验路由、并行等技术。Ai2表示,模型权重在其背后的基础设施和训练决策也公开时才更有用。