← 返回 2026-10-02 简报

发布 Olmo-core 3:面向大型混合专家(MoE)模型的开源、可扩展训练基础设施

Introducing Olmo-core 3: Open, scalable training infrastructure for large MoEs

语音播报
摘要
事件:Hugging Face发布Olmo-core 3,这是面向大型混合专家模型的开源可扩展训练基础设施升级,旨在降低开发门槛。 要点:支持万亿参数规模,专家池扩至128个且吞吐仅降5%。采用DDP替代FSDP,吞吐量提升2.7倍;引入MXFP8格式使效率增21%。 影响:解决MoE训练通信瓶颈,让学术机构和小实验室能以更低成本高效训练超大模型,推动开源AI生态发展。

📄

科技报道 | 💻

代码 | 🧩

交互式演示

今天,我们发布 Olmo-core 3,这是我们对大型语言模型开发框架的重大升级,其特色是重新设计的开放混合专家(MoE)训练系统。

Olmo-core 3 旨在将 MoE 训练扩展至万亿参数规模,同时保持计算效率。它是下一代 Olmo 背后的核心系统之一,也是我们持续致力于公开每个新模型背后工具和训练基础设施承诺的一部分。

训练大型 AI 模型需要大量的计算资源,这不仅推高了成本,还增加了能源消耗,使得许多学术研究人员和小型实验室难以触及先进的模型开发。MoE 模型提供了一种更高效的途径——它们可以包含更多的学习组件(即参数),而无需让每个输入都使用所有参数。然而,整个模型仍然必须存储在 GPU 内存中并在训练期间进行更新,而在集群中将输入引导至正确的专家(MoE 内的专用组件)也会产生自身的通信和协调成本。随着 MoE 规模的扩大,这些成本可能会侵蚀仅对每个输入使用部分模型所带来的大部分计算优势。

Olmo-core 3 旨在填补这一差距。在一个基准测试中,我们将专家池从 8 个增加到 128 个,同时仍仅为每个 token(语言模型处理的小文本单元)选择四个专家,使每个 token 的活跃参数数量大致保持在约 32 亿。总参数容量从 46 亿增长到 470 亿,而训练吞吐量下降不到 5%。

同一基础设施在基准测试中已支持超过一万亿的总参数。

围绕 MoE 的实际工作原理构建训练栈

Olmo-core 随着每一代 Olmo 的演进而发展。

我们在稀疏模型方面的工作始于 OlmoE,它使用带有 64 个路由专家的 MoE 架构。相比之下,Olmo 3 使用了密集架构,这意味着几乎所有模型参数都对每个 token 处于活跃状态,其训练栈也是围绕该设计构建的。Olmo-core 3 通过一个专为更大规模 MoE 模型设计的训练系统扩展了该框架。

我们在 Olmo-core 中早期的 MoE 实现使用完全分片数据并行(FSDP),配置为收集并重新分片每个小批训练数据的模型权重。Olmo-core 3 转向基于分布式数据并行(DDP)的系统。它使专家驻留在 GPU 上并将相关数据路由到它们,从而避免了重复的权重收集。

NVIDIA 的 Megatron-Core 是训练大型 MoE 的既定选择。Olmo-core 3 为 Olmo 背后的框架带来了集成的 MoE 训练栈,其重新设计提高了吞吐量,优于我们早期基于 FSDP 的实现。在八块 NVIDIA B300 GPU 上的初步测试中,使用新栈的 470 亿参数 MoE 每块 GPU 每秒处理 52,000 个 token,而使用我们早期实现时仅为 19,400——吞吐量约为原来的 2.7 倍。

扩展和优化 MoE 训练

Olmo-core 3 结合了多种技术,用于在 GPU 集群上分布大型 MoE,并通过优化使路由和计算更加高效。

三种技术决定了模型及其训练状态如何在硬件上拆分:

专家并行(Expert parallelism)将专家分布在 GPU 上,因此每个 GPU 仅存储完整专家池的一部分。

流水线并行(Pipeline parallelism)将模型的层(转换输入的连续阶段)分布在 GPU 组之间,减少了每个 GPU 需要保留在内存中的模型部分。

分布式优化器(Distributed optimizer)将优化器状态(用于计算和应用训练期间更新所需的额外数据)分布在 GPU 上,而不是在每个 GPU 上存储完整副本。

这些技术共同作用,使得 MoE 能够扩展,而无需每个 GPU 都将整个模型及其训练状态保留在内存中。

Olmo-core 3 还降低了将数据路由到正确专家并运行其计算的成本。行级专家并行性将路由后的数据直接放入专家输入缓冲区,从而最大限度地减少重新排列数据所需的额外工作。GPU 驻留式路由将路由元数据保留在 GPU 上,因此 CPU 可以在无需等待信息复制回来的情况下排队处理工作。而分组 GEMM(通用矩阵乘法)则将许多小型专家计算组合在一起,使 GPU 能够更高效地执行它们。

最后,Olmo-core 3 支持 MXFP8,这是一种较低精度的数字格式,用更少的位数来表示某些数值。只要节省下来的成本超过在数字格式之间转换的成本,这就能减少计算量以及 GPU 之间移动的数据量。

我们在四块 NVIDIA B300 GPU 上进行的受控基准测试中测量了 MXFP8 对端到端训练吞吐量的影响,工作负载在专家之间均匀分布。在系统中最能受益的部分启用 MXFP8 后,与作为基线的较高精度格式 BF16 相比,训练吞吐量提高了约 21%,同时峰值活跃内存从 103 GiB 降至 95 GiB。大部分增益来自前馈计算以及在专家之间移动数据,而不仅仅是注意力机制。

这些技术和优化必须协同工作。加快训练的某一部分可能会在其他地方产生成本;更快的计算可能需要更多的数据移动,而如果转换数据耗时过长,减少位数可能无济于事。Olmo-core 3 围绕整个训练过程中的这些权衡而构建,使我们——以及使用开源堆栈的研究人员——能够控制各个部分如何组合在一起。

探索我们的交互式演示,了解数据、专家和流水线并行性如何协同工作以扩展 MoE 训练规模——从单块 GPU 到多块 GPU。

扩展至万亿参数范围

我们已在 NVIDIA B300 GPU 上的各种配置中对 Olmo-core 3 进行了基准测试,其中包括一个拥有 1.2 万亿参数的模型,在 512 块 GPU 上运行时,每个 token 有 583.6 亿个参数处于激活状态。其观察到的最高吞吐量为每块 GPU 858 TFLOP/s——这是衡量每块 GPU 每秒有用模型计算量的指标。这些测试使用随机路由来测量系统性能,而非已训练模型的质量。

我们还尝试了 DeepEP v2,这是一种处理 GPU 间专家通信的替代方法,达到了拥有 2.38 万亿总参数的配置。这是一项短期容量测试,而非完整的训练运行,因此它展示了 Olmo-core 3 所能达到的规模,而非持续的训练性能。

在这些规模下,系统性能只是图景的一部分。我们的技术报告还记录了指导我们如何训练 MoE 并衡量其性能的实验。例如:

旨在鼓励平衡路由的评分指标,在实际工作负载变得不那么平衡时甚至可能改善。我们将此称为失败 token 杰利蝾螈(gerrymandering)现象。

由于专家处理的 token 数量减少而降低其学习率——即训练更新的幅度——在我们测试的模型系列中并未带来结果提升。

当处理值发生变化时,即使矩阵维度相同,GPU 计算所花费的时间也不同。因此,性能比较需要匹配的输入值以及匹配的形状。

在单独的 GPU 流上重叠通信和计算并不总是能加快训练速度。在某些测试中,它反而减慢了端到端执行速度——这提醒我们,更多的重叠并不一定意味着更高的吞吐量。

报告解释了这些发现,以及我们测试但未采用的方法。

为下一代 Olmo 打造,向所有人开放

Olmo-core 3 是我们正在构建的下一代的基石。我们的下一代 Olmo 将采用 MoE 架构,我们的目标是使其成为迄今为止最强大的 Olmo,在最大的数据集和最长上下文窗口上进行训练。

新的技术栈使我们能够在之前的混合专家(MoE)工作基础上实现更广泛的扩展,同时随着模型和硬件的演进,为我们提供了更大的灵活性来调整训练策略。而且它是完全开源的——研究人员和开发者可以使用 Olmo-core 3 训练自己的 MoE 模型,将其适配到不同的硬件上,并对路由、并行化以及其他系统组件进行实验。

这正是我们看待开源模型开发的方式——当支撑模型的底层基础设施和训练决策也处于开放状态时,模型权重才更具价值。

若想深入了解系统设计、实验结果、消融研究以及我们在过程中测试的各种方法,请阅读我们的技术报告,并在 GitHub 上探索 Olmo-core 3。

本条评分 10.6 score-v1
  • 来源权威 8
    注册表 priority=8(Hugging Face)
  • 时效 2.598
    发布 7.5 小时前,衰减到 2.60/3.0
  • 多源印证 0
    只有 1 家在报(无旁证)
  • 社区信号 0
    无社区数据(本管线走 RSS,HN 的 hn_fetcher 未接入)

首次收录 · 2026-10-02 · 10.6 分

原文链接:https://huggingface.co/blog/allenai/olmocore3
来源:Hugging Face
以上内容由 AI 自动翻译,仅供参考。
← 返回简报