AI图鉴

AI图鉴首页 › AI 资讯 › 复制 Olmo 3 7B 在 MaxText 的预训:关于 TPU 的大规模培训

复制 Olmo 3 7B 在 MaxText 的预训:关于 TPU 的大规模培训案例研究

来源:Google Developers · 发布时间:10-10 · 由 AI图鉴每小时自动聚合

MaxText团队成功在Google Cloud TPU上从头复制了Ai2的 Olmo 3 7B 语言模型,使用JAX/XLA,精确匹配原版的 PyTorch

Sept. 24, 2026 (英语).

Olmo 3,由Allen Institute for AI(Ai2)开发,是一种最先进,完全开放的语言模型,经过现代建筑和多阶段培训配方的训练。 为了评估MaxText在Google Cloud TPU上的能力,我们选择了奥尔莫3,因为它结合了很少同时出现的三个属性。 这是一个强大的现代7B模型,经过实际生产规模的培训。 Ai2披露了完整的模型流量,包括数据,代码,配置,检查站,日志,以及评价。 最后,它给了我们一个独立的PyTorch和GPU的参考,我们可以用它来测试MaxText和TPU.

我们重现了Ai2的 Olmo 3 7B 在 MaxText 上的 Google Cloud TPU,无论是第1阶段前训练还是第2阶段中训练的肛门

主要要点,后面各有详细论述:

- PyTorch JAX型号转换。 Olmo 3的架构(重新排序-规范块,QK-规范,3:1滑动/全局关注)移植到MaxText,并通过对数-均等检查进行验证:转换后的台阶-0检查点与KL QHuggingFace参考点吻合 0.5e-3,"相同模型,不同框架"噪声层,在bfloat16的完整8192-token上下文中,两人同意时间最高值-1的98.75%.

- 能够捕捉到真虫的核查 Hold-out evals 捕捉到一个数据加载器错误,使得MaxText看起来像是在击败引用;增益是回忆。

- 多星期的可靠性检查点和重置精确地重置了运行:在恢复后的每一步都有一个控制的A/B 显示 = 0.000,当一个宿主故障杀死了阶段-2的运行中程时,恢复运行在XQ = 0.000的记录损失和perplexity重新训练了127步。

- 调整中途的训练任务。 在步骤~1.05M中,我们失去了四分之三的容量;运行恢复在四分之一的片段上,没有改变食谱的大小(相同的脚本运行 olmo3 7b stage1.sh比例尺每个设备批量大小保持GBS恒定),每个设备的吞吐量保留在1%之内(X%100%强缩放,双向测量)。

- 改变 TPU 生成的中继器。 第2阶段将相同的发射装置指向v5p而不是Ironwood,只改变设备类型,维持了57.4%的MFU.

- 自己付的功劳在7B的铁木上,44.5%的MFU通过SparseCore集体卸载,重制调和,以及最优的硬化,大约三分之一的计算预算回购。

- 为TPU共同设计:在同样质量下更快。 将注意力从32头×头-dim 128重排到16×256重排,在相同的参数和FLOP重排时,运行速度加快了+12.4%,因为头-dim 256充分利用了Ironwood的256×256MXU,其损失曲线通过120B令牌(30k步)与原始的相匹配。 这是一种侧式建筑;复制保留了原始建筑。

从Ai2的步-0 PyTorch重量和同一核心食谱开始,MaxText运行了Ai2公布的亏损曲线,覆盖了完整的~5.93T-token / 1.41M步预算,并在第1阶段末端的顶部运行获得。 我们甚至简化了两个食谱细节(一个Ai2缝合两个的单一大同LR时间表,以及公开的发布数据组合;参见下面的食谱),以及无论如何举行的比赛。 其余部分是这些东西是如何建造、测量的,在一个有启发性的例子中,几乎是伪造的。

Olmo 3是少数真正开放的前沿类语言模型之一:开放权重,开放数据,以及一个在Weights & Biases上公开查询的完全指定的训练食谱。 匹配独立训练的运行,而不是仅仅按照损失曲线进行,这有力地证明了MaxText堆(优化、损失、数据管道、数字)是忠实的,而不仅仅是“似乎是训练 ”。

MaxText是为TPU建造的JAX/XLA LLM训练框架。 我们所要回答的问题:PyTorch-on-GPU的食谱能否在JAX-on-TPU中忠实地复制,在重要的而不是比特比特比特的衡量标准上匹配,你如何证明?

Olmo 3的食谱是三阶段课程:一般的预训,中训(ananaling),以及长文适应。 这个职位涵盖第1阶段(~5.9T-token预训跑)和第2阶段(中训),既经过训练结束,又与Ai2的参考文献相匹配。 以及训练后(SFT/RL通过Tunix)

Olmo-3 预训课程:第1阶段(Ironwood)和第2阶段(v5p)在本文章中转载;第3阶段长文(seq 65k,YARN)和后训练(SFT之后通过Tunix的GRPO)接下来

奥尔莫-3课程。 第一阶段和第二阶段在此员额中复制;第三阶段和后培训是下一个阶段。

Olmo 3 7B是一个32层,4096深密的变压器,有一些非标准的选择:一个“重排规范”块,QK-Norm,以及3:1滑窗与全球关注的组合。 MaxText配置(olmo3-7b-pt.yml,用于第1阶段和第2阶段)与其完全吻合:

训练食谱与Olmo-core的Pretrain-1.py相仿;

我们从Ai2的步数-0PyTorch检查站开始训练,转换为Orbax,因此MaxText从与参考文献完全相同的重量开始。 转换本身是第一个检查点:转换后的重量的前传与KL ≈ 1.5e-3的HuggingFace参考值相匹配,9/10上-10符号重叠,即“相同的模型,不同的框架”噪音层。

比赛是否取决于继承Ai2的初始化?显然没有。 作为独立检查,我们还从MaxText自己的随机输入器中为~50k步(占地平线的3.5%)训练了一次运行;其训练损失跟踪了Ai2的已公布曲线,在它下面运行一触。 这是一次训练损失现场检查

数据管道精确地镜像了Olmo-core:将所有文件(EOS)标注在两者之间,切成非重叠的8192个托肯实例,用固定的种子在全球对索引进行洗涤,并应用一个n克的重复过滤器,用>32的重复n克来掩盖实例。 MaxText 的数据集 type=olmo grain( 在谷物上建造) 执行此功能。

与Ai2运行的两个故意的分歧 (1)LR时刻表:Ai2最初计划~5T令牌,并将飞行中程扩展至~5.93T的终极视野,因此其LR的微量线缝合了两条余弦曲线(可见于其公开的WandB运行);我们运行了一条余弦线全程。 (2)数据:我们用公开的发布 Olmo-3混音器来训练,它省略了Ai2内部运行所看到的一小部分(小于象征性预算的0.5%,大多为发布文件列表中缺失的s2pdfsshards). 两者都是我们选择的简化,而不是意外,而MaxText仍然在每个被搁置的表面匹配。 这也是我们为什么说“重复到运行中的噪声,”而不是位元(见§G中的KL分析)。

Olmo 3在我们开始的时候不是在 MaxText中;复制增加了,并且上游,下面的一切。 本文章结尾的"自行转载"是"配置",而不是代码。

- 模型本身:重排规范块,QK规范,以及3:1滑动/全球关注模式(#3004,#3112).

- 匹配 Olmo-core 语义的跳跃优化器,降为 Bessel 修正的 running std (在 128 步窗口上滑动 6/ 5) (# 3490)。

- Z - 损失(# 3211)和每参数的重量级掩体,因此可以排除嵌入(# 3280).

- olmo grain数据管道(# 3749):随机访问读取了预托的硬盘,一个种子全球指数洗牌,上面有指纹保护符,防止重启时的无声数据交换,n格重复过滤器,以及(从第2阶段开始)Grain interator-State检查。

- HF Orbax检查站转换,并配有对数-对数检查,这是本站每个"框架噪音地板"号码(#3112,#3832)背后的工具。

- 舞台-1和2发射器(env驱动运行的脚本+XPK包装器,并提交/监视器/恢复直到 done)(#3886).

- TensorBoard 等值标记(优化/步骤 skipped,perf/total totokens),因此Ai2的W&B仪表板上的每一度量都有一个MaxText对应比对。

头条是单倍数:MaxText的阶段-1 lm loss vs Ai2 已公布的 WandB 曲线,步对齐并被宾入2k步表示。 通过~800k在±0.012内步入双轨;从~0.9M MaxText在Ai2下方的边缘并永不交叉,数据错误的第一个标志在下一节解析。

MaxText vs Ai2 阶段-1在1.41M 步骤中丢失,下面板有 18k 步的偏差

顶部:曲线在这个尺度上是无法区分的,直到尾部。 底部:空隙停留在±0.012到~800k内,由于数据错误重复堆积而从~0.9M处倾斜为负,潜过1.25M,在18k步平滑两面板绘制前在原始的2k步槽中达到−0.22. 如下文各节所示,所有这一切都没有达到搁置损失或下游准确度。 (Per-landmark表:附录A;全曲线承诺为olmo stage1 loss curve.tsv.).

但光是损失曲线就是一个薄弱的证明:在训练损失上两跑就能匹配,因此我们在6个跨度915公里的地标上验证了四个独立表面的趋同:

- Hold-out C4 lm loss:在16M的代号C4-en上只转发eval,相同的批次都运行。

- 8任务lm-eval-harness套房:MMLU,HelaSwag,ARC-easy/challenge,OpenBookQA,PIQA,BoulQ,WinoGrande.

- 多域屏蔽perplexity:一个帕洛马式的横扫网络、新闻、百科全书和混合域。

- Token-level KL:在相同输入上的下一个token分布距离。

我们如何衡量。 所有evals运行在步配对的检查站上:直播的MaxText运行对同一步骤的Ai2检查点,即其公开的HuggingFace修订Allenai/Olmo-3-1025-7B@stage1-step{N}转换为Orbax(转换复制了PyTorch参考KL ≤ 1.8e-3,框架噪音层). lm-eval使用标准lm-eval-harness(5-shot MMLU,在别处默认); ç 是一个每个任务带 Stderr,组合为三角洲的四元。

在第一阶段结束时,每个表面都同意两种食谱可以互换:

第四层,象征级的KL,是一个不小的数字:相同的输入值为0. 389纳特,这也是我们为什么说“运行到运行的噪音 ”,而不是位元;分解在§G中。

下游准确度差距从未超过±0.005宏观,标志翻转四次

8 任务宏精确度,MaxText vs Ai2 跨越六个地标,每块地标三角洲

下游的能力在每个地标上都可以互换。 与训练损失不同,精度从不单调;三角洲随机行走在±0.005内部,以+0.0002结束。

这是有趣的。 从~0.9M步的MaxText的训练损失在Ai2下方倾斜,再也没有回转过;过去~1.25M路的训练损失明显下降,平均为−0.06路,几百步的训练损失高达−0.25路。 仅观察训练损失的覆辙

没有。 括号内检查站的C4损失被扣(++0.004,1000k,++0.03,1阶段末),下游准确度为1 350k,稍为偏好。 训练损失在下降,这便是记忆的标志:模型看到一些序列不止一次

顶部:最大Text训练损失潜至1.63 而Ai2保持平稳。 底部:C4三角洲被搁置,整个期间接近零

整个故事在一个图。 顶部:在1.24M–1.41M窗口中,MaxText的训练损失在2k步(QQ−0.22;~0.25步(百步拉伸))上反复跌至1.63,而Ai2则保持平稳。 看起来像一个逃跑的胜利。 底部:训练-损失 QQ(蓝色)漂移负数,但被搁置 C4 l

本文由 AI图鉴自动抓取并翻译,版权归原作者所有;如需查看原文请点下方链接。

相关 AI 工具

OpenBMB

清华团队支持发起的大规模预训练语言模型库与相关工具

序列猴子

出门问问推出的一款超大规模的语言模型

Cohere

构建AI产品的大语言模型平台

腾讯混元大模型

腾讯研发的大语言模型,具备强大的中文创作能力,复杂语境下的逻辑推理能力,以及可靠的任务执行能力

相关免费羊毛

Google Gemini API

Gemini API 免费层可直接试用

Google

2 个免费模型可调用

Ollama Cloud

免费云档,额度定期重置

Vercel AI Gateway

每月 $5 免费额度,统一接口

同源资讯

使用 Google 云 API 网关将您的 REST API 转换为 MCP 工具

Google Developers · 10-10

在反重力SDK中引入对本地AI模型的支持

Google Developers · 10-09

阅读原文(developers.googleblog.com)

标题、摘要与正文均来自该信源的公开页面,版权归原作者所有;本站自动聚合与翻译,仅作出处跳转。

← 返回 AI 资讯列表AI工具图鉴首页

返回 AI图鉴首页 · 提交工具 · 合作与友链 · 关于本站 · 528 款 AI 工具分类导航 · 每日 AI 热门项目与动态