本文译自 Allen Institute for AI(AI2)Olmo 团队的 Olmo 31,2025 年 12 月 15 日提交于 arXiv,2026 年 4 月 14 日更新至 v2,118 页。这是正文全文翻译,覆盖摘要、§1 引言、§2 模型流程、§3 Olmo 3 Base、§4 Olmo 3 Think、§5 Olmo 3 Instruct、§6 Olmo 3 RL-Zero。第 8 节附录(35 页,含训练超参、数据细节、评测配置与去污染细节)、贡献者名单、致谢与参考文献列表不在译文范围内。

模型权重按 Base / Think / Instruct / RL-Zero 四条线开源在 Hugging Face2,预训练数据 Dolma 33、后训练数据 Dolci4、训练框架 OLMo-core5 与后训练框架 open-instruct6 也一并公开。

译注:v2 修订版把旗舰模型从 Olmo 3 Think 32B 换成了继续做了 21 天 RL 的 Olmo 3.1 Think 32B,并补上了 Olmo 3.1 Instruct 32B 与 Olmo 3.1 RL-Zero。译文中凡出现「Olmo 3.1」处均为 v2 新增内容,与初版 Olmo 3 对应的数字同时保留。

摘要

我们推出 Olmo 3,一个 7B 和 32B 参数规模的最先进完全开放语言模型家族。Olmo 3 的模型构建针对长上下文推理、函数调用、代码、指令遵循、通用对话和知识记忆等能力。本次发布包含完整的模型流程(model flow),也就是这一模型家族的全生命周期——构建过程中用到的每一个阶段、每一个 checkpoint、每一个数据点和每一项依赖。我们的旗舰模型 Olmo 3.1 Think 32B 是迄今为止最强的完全开放思考模型。

1 引言

我们推出 Olmo 3,一个 7B 和 32B 参数规模的最先进完全开放语言与思考模型家族,具备多样化的能力,包括长上下文推理、函数调用、代码、指令遵循、通用对话和知识记忆。Olmo 3 的发布提供了对其完整模型流程的访问权限——语言模型的全生命周期,包括创建它所需的每一个阶段、checkpoint、数据点和依赖项。这使得在模型开发过程的任意阶段进行干预、进而实现无限定制成为可能,而不只是拿到最终权重。

我们认为,要真正推动开源 AI 的研究与开发,发布一个最先进的语言模型应当让它的整个模型流程——而不只是终点——变得透明可及。通过 Olmo 3 的发布,我们提供了对自己在模型流程中所走过的每一条路径的完整访问权限,从最初的构想一直到最终打造出最先进的完全开放语言模型。

具体来说,我们训练 Olmo 3 Base 作为基础,在其上构建具备思考和工具使用能力的模型。从 Olmo 3 Base 出发,我们开发出旗舰模型 Olmo 3 Think,它被训练成在给出最终答案之前先生成中间思考轨迹、从而执行逐步推理。Olmo 3 Think 32B 是最强的完全开放思考模型,在我们的推理基准套件上把与同规模最佳开放权重模型(例如 Qwen 3 32B thinking7)之间的差距收窄了,而训练所用的 token 数少了六倍。由于我们采取完全开放的路线,Olmo 3 的发布还使得推理链能够被回溯到其原始训练数据,这解锁了任何其他思考模型都不具备的研究机会。

图 1:模型流程涵盖开发全阶段的训练数据、代码与中间 checkpoint。
图 1:模型流程涵盖开发全阶段的训练数据、代码与中间 checkpoint。

图 1:模型流程涵盖开发全阶段的训练数据、代码与中间 checkpoint。完全开放模型和开放权重模型都会发布最终 checkpoint(深青色),而 Marin、Apertus 和 Olmo 这类完全开放的发布还会沿模型流程提供数据,使得对中间开发阶段的细致研究成为可能(米色)。图中展示的是 Olmo 3 Think 32B 以及其他规模和架构相当的开放模型。Olmo 3 Think 与 Qwen 3 32B 有竞争力,而后者并没有发布基座模型。它底下的 Olmo 3 Base 32B 超过了所有其他完全开放的基座模型。

此外,我们训练了 Olmo 3 Instruct 7B 和 32B 模型,调优目标是产出更短、更直接的回复。通过避免中间的「思考」输出,Olmo 3 Instruct 有效降低了回复延迟,并针对通用对话和函数调用做了优化。Olmo 3 Instruct 7B 和 32B 超过了同规模的其他知名开放权重模型——Qwen 2.58、Gemma 39、IBM Granite 3.310 和 Llama 311——并进一步缩小了与 Qwen 37 的剩余性能差距。最后,我们引入 Olmo 3 RL-Zero 7B,这是直接从 Olmo 3 Base 用 RL 训练出的 Olmo 3 变体。Olmo 3 RL-Zero 让研究者能够研究基座模型数据如何影响 RL 表现。

Olmo 3 家族是最强的完全开放基座模型集合,表现优于 Stanford Marin12、Apertus13 和 LLM360 K2-V214。为达成这些结果,我们为模型流程的每一个阶段都构建了新数据集。这包括 Dolma 3——我们的预训练数据混合,涵盖从爬取来源中精心采样的自然数据;我们用于快速启动推理能力的高质量中训练混合;以及一大批以科学为主的 PDF 文档,它们解锁了 Olmo 3 的长上下文支持。我们还引入 Dolci,一套后训练数据集,它在监督微调阶段推进逐步推理,在偏好调优阶段提供高质量的对比数据,并为强化学习提供有挑战性的通用与推理提示词。

最后,我们在数据处理、评测、预训练和强化学习方面开发了一系列新的算法与基础设施进展。这包括 OlmoBaseEval,一套为算力高效的基座模型开发量身定制的基准套件;以及 OlmoRL,一套为我们的思考模型定制了效率优化的强化学习框架。综合来看,这些训练配方由一个把分布式实验与集中式评测相结合的开发框架所塑造,使得贯穿整条模型流水线的、以能力为导向的协调改进成为可能。

2 Olmo 3 的模型流程

本节我们简要概述 Olmo 3 模型流程的所有组成部分,重点说明我们在针对推理与工具使用能力上采用的方法论——它如何超越 Olmo 215 和其他开放权重模型。后续章节会对模型流程的每个组件做深入展开。Olmo 3 的训练分为基座模型训练和后训练两大阶段,每个阶段又进一步细分为子阶段,如图 2 所示。

图 2:Olmo 3 的模型流程示意。
图 2:Olmo 3 的模型流程示意。

图 2:Olmo 3 的模型流程示意。开发过程分为基座模型训练(左)和后训练(右)两大阶段,每个阶段又进一步细分为拥有各自配方(即训练数据与方法)的子阶段。

2.1 基座模型训练

我们通过三个阶段开发 Olmo 3 Base:预训练最多 5.9T token(§3.4)、中训练 1000 亿 token(§3.5),以及新增的长上下文扩展 500 亿 token(Olmo 3 Base 7B)或 1000 亿 token(Olmo 3 Base 32B)(§3.6)。

评测。我们开发了 OlmoBaseEval,一组用于支撑基座模型开发(预训练和中训练)期间决策的基准套件。我们的目标是做到算力高效——基于小规模训练出的模型来做开发决策。挑战在于,这类模型在某些任务上可能表现为随机猜测水平,分数之间的细微差异也很难与基准噪声区分开。为此我们(1)在评估相似能力的任务簇上聚合分数(§3.3.1);(2)为评估小规模模型开发代理指标(§3.3.2);(3)通过在噪声大的任务上评测更多样本、甚至干脆移除这些任务,来提升整体信噪比(§3.3.3)。

数据课程。我们为每个训练阶段整理专门的数据集,越靠后的阶段越聚焦于强化那些在后训练阶段至关重要的能力,例如数学、代码、推理、指令遵循和长上下文理解:

  • 预训练。我们首先在 Dolma 3 Mix(§3.4)上训练 Olmo 3 Base,这是我们 6T token 的预训练数据混合。虽然 Dolma 3 Mix 在很大程度上由其他开放预训练配方中使用的同类数据源构成161715,我们仍展示了三项关键创新:
    • 用于万亿 token 规模上快速、可扩展全局去重的新工具;
    • 一个新的学术 PDF 数据源——olmOCR 科学 PDF——用 olmOCR1819 转换成线性化纯文本;
    • 两种优化训练 token 选择的新方法:token 约束混合(token-constrained mixing)和质量感知上采样(quality-aware upsampling)。
  • 中训练。我们在 Dolma 3 Dolmino Mix(§3.5)上继续训练,这是我们 1000 亿 token 的数据,通过引入以下内容来提升代码、数学和通用知识 QA 领域的目标能力:
    • 一套新的两段式方法论框架,把 1)针对单个数据源的轻量分布式反馈回路,与 2)用于评估候选混合在基座模型质量和「可后训练性」上表现的集中式集成测试结合起来。
    • 有意纳入指令数据和思考轨迹,为后训练打好基础。
  • 长上下文扩展。通过 Dolma 3 Longmino Mix(§3.6),Olmo 3 支持长上下文的输入与输出,这是解锁推理和工具使用能力的关键特性。
    • olmOCR 科学 PDF 中的文档使我们的长上下文方案成为可能;这批数据包含超过 2230 万篇长度在 8K token 以上的文档(合计 6400 亿 token)和 450 万篇 32K token 以上的文档(合计 3800 亿 token),是目前公开可得的最大的长上下文研究数据集。
    • 由此,Olmo 3 成为我们第一个具备长上下文能力的模型,扩展后支持最长 65K 上下文。尽管扩展阶段很短(7B 用 500 亿 token,32B 用 1000 亿 token),Olmo 3 Base 32B 在长上下文基准上已能与 Qwen 2.5 32B、Mistral Small 3.1 24B 和 Gemma 3 27B 相抗衡。

开放产物。我们发布所有中间 checkpoint,以及每个训练阶段结束时的最终模型。数据方面,我们既发布数据混合(data mixes),即基座模型训练实际用到的 token,也发布每个阶段的完整源数据池(data pools)——预训练的 9T 清洗后源 token,以及中训练和长上下文扩展分别 2T 和 6400 亿 token 的专门数据。对预训练,除了 Olmo 3 Base 的实际训练混合之外,我们还发布了规模更小的样本混合,方便算力有限时做实验(预训练 1500 亿、中训练 100 亿)。

译注:一份数据混合可能涉及对数据池中数据的上采样或重复,因此混合的 token 数与池的 token 数不是简单的子集关系。

2.2 后训练

我们把 Olmo 3 Base 后训练成三个模型变体:

  • Olmo 3 Think(§4)被训练成在给出最终答案前生成一段结构化思考轨迹,从而执行扩展推理。我们通过 SFT、DPO 和 RLVR 来训练它,并观察到每个阶段都有增益。
    • 我们引入 Dolci-Think-SFT(§4.2)、Dolci-Think-DPO(§4.3)和 Dolci-Think-RL(§4.4),这些新的后训练数据集针对数学、代码、指令遵循和通用对话等一系列关键能力而设计。数据集包含用于监督微调的、带长思考轨迹的合成样本,遵循 Delta Learning20 洞见的高质量对比数据,以及覆盖可验证与不可验证领域的、有挑战性的强化学习提示词。特别地,我们为偏好调优整理对比实例的新方法,把模型的推理边界推到了单靠 SFT 无法企及的地方,并为有效的强化学习做好铺垫。
    • 我们在可验证奖励强化学习(RLVR)上引入了算法和基础设施层面的进展(§4.4)。这套方法把可验证推理推广到多个领域,超出了 Olmo 2 探索过的设定,纳入了代码和通用对话。我们的改进支撑了跨多样领域的更长、更稳定的 RL 运行,并提升了训练周期的整体效率,带来 4 倍的 RL 训练加速。值得注意的是,我们引入 Olmo 3.1 Think 32B 来说明延长 OlmoRL 训练能带来更好的性能。
  • Olmo 3 Instruct(§5)被训练成不生成内部思考轨迹、直接对用户查询给出高效有用的回复。这个模型优先考虑典型的用户需求,例如避免过度冗长以便用户理解,以及为用户信息检索提供函数调用。在这类场景下思考轨迹并无必要,推理时的效率比推理时扩展更重要。
    • 我们引入 Dolci-Instruct-SFT,这个新数据集专门为函数调用创建了数据(§5.2.1)。为了在能力之上直接优化模型的交互性,我们在 Dolci-Instruct-DPO 中扩展了 Delta Learning 偏好流水线,纳入多轮偏好数据和针对性的长度干预以鼓励简洁回复(§5.3.1)。最后,我们用可验证奖励强化学习(§5.4)进一步打磨核心能力,其中偏好调优与 RL 产生协同,在保持已习得的简洁性的同时提升了模型表现。
  • Olmo 3 RL-Zero(§6)。迄今为止,所有领先的开放 RLVR 基准和算法都是在不公开其预训练或中训练数据的开放权重模型之上训练的217。这限制了社区研究预训练数据对 RLVR 表现之影响的能力。它还会引发一系列基准评测被污染的问题——例如中训练数据里含有评测集,这会使得虚假奖励和真实奖励一样有效2223,或者让修正提示词模板带来的提升盖过 RL 本身带来的提升24
    • 因此我们发布完全开放的数据集 Dolci-RLZero、一套面向 Olmo 3 的算法化 RL zero 设定,并开源 OlmoRL 代码,以便 RL 研究社区做清晰的基准对比。我们从 Olmo 3 Base 出发在四个基准领域上执行 RLVR,构成 Olmo 3 RL-Zero 家族:数学、代码、精确指令遵循(IF)和一个通用混合。所有情形下我们都进一步对 Dolci-RLZero 相对预训练和中训练数据做了去污染,以保证我们的设定能在没有数据泄漏干扰结论的前提下细致研究 RLVR 的效果。

2.3 结果

表 1 展示了 Olmo 3 Think 与其他开放权重及完全开放模型对比的评测快照。据我们所知,Olmo 3 Think 是迄今为止最强的完全开放思考模型。它优于 Qwen2.5-Instruct、Gemma 2 和 3 27B、DeepSeek R1 蒸馏 Qwen 32B;也接近 Qwen 3 和 Qwen 3 VL 32B 模型,在训练 token 数少约 6 倍的情况下缩小了与同规模最佳开放权重模型的差距。

表 1:旗舰模型 Olmo 3.1 Think 32B 在我们后训练评测套件上的结果。Olmo 3.1 Think 32B 是 32B 规模下最好的完全开放模型。

技能 指标 Olmo 3.1 32B Think OLMo 2 Instruct 32B Apertus Instruct 70B LLM360 K2-V2 Instruct 70B Qwen 3 32B Qwen 3 VL 32B Think Qwen 2.5 32B Gemma 3 27B Gemma 2 27B DS-R1 32B
完全开放模型 完全开放模型 完全开放模型 完全开放模型 开放权重模型 开放权重模型 开放权重模型 开放权重模型 开放权重模型 开放权重模型
数学 MATH 96.2 49.2 36.2 94.5 95.4 96.7 80.2 87.4 51.5 92.6
AIME 2024 80.6 4.6 0.3 78.4 80.8 86.3 15.7 28.9 4.7 70.3
AIME 2025 78.1 0.9 0.1 70.3 70.9 78.8 13.4 22.9 0.9 56.3
OMEGA 53.4 9.8 5.6 46.1 47.7 50.8 19.2 24.0 9.1 38.9
推理 BigBenchHard 88.6 65.6 57.0 87.6 90.6 91.1 80.9 82.4 66.0 89.7
ZebraLogic 80.1 13.3 9.0 79.2 88.3 96.1 24.1 24.8 17.2 69.4
AGI Eval English 89.2 68.4 61.7 89.6 90.0 92.2 78.9 76.9 70.9 88.1
代码 HumanEvalPlus 91.5 44.4 42.9 88.0 91.2 90.6 82.6 79.2 67.5 92.3
MBPP+ 68.3 49.0 45.8 66.0 70.6 66.2 66.6 65.7 61.2 70.1
LiveCodeBench v3 83.3 10.6 9.7 78.4 90.2 84.8 49.9 39.0 28.7 79.5
IF IFEval 93.8 85.8 70.4 85.3 86.5 85.5 81.9 85.4 62.1 78.7
IFBench 68.1 36.4 26.0 57.7 37.3 55.1 36.7 31.3 27.8 23.8
知识与 QA MMLU 86.4 77.1 70.2 88.4 88.8 90.1 84.6 74.6 76.1 88.0
PopQA 30.9 37.2 33.6 32.2 30.7 32.2 28.0 30.2 30.4 26.7
GPQA 57.5 36.4 27.9 64.0 67.3 67.4 44.6 45.0 39.9 61.8
对话 AlpacaEval 2 LC 69.1 38.0 19.9 - 75.6 80.9 81.9 65.5 39.8 26.2

译注:原表用两级表头把前四列归为「完全开放模型」、后六列归为「开放权重模型」,markdown 无法表达跨列表头,故用单独一行标注每列的归属。

更多细节以及模型流程上其他模型的结果,可参考下面的快速索引:

  • Olmo 3 Base:§3.7 是详细的评测讨论。表 2(32B)和表 3(7B)是主结果。表 12 是长上下文评测。表 13 是预训练 / 中训练 / 长上下文扩展各阶段的对比。
  • Olmo 3 Think:§4.1 是详细的评测讨论。表 14(32B)和表 15(7B)是主结果,含 SFT / DPO / RL 各阶段。
  • Olmo 3 Instruct:§5.1 是详细的评测讨论。表 25(32B)和表 26(7B)是主结果,含 SFT / DPO / RL 各阶段。

2.4 成本

训练大模型的成本通常被报告为单一的美元数字,一般是把 GPU 小时按市场价折算成美元,例如 DeepSeek V3 的 557.6 万美元 H800 机时25。为了给出训练 Olmo 3 32B 所需资源的更有代表性的视角,我们改为报告训练期间流逝的墙钟时间

总计,从训练开始到评测 Olmo 3 Think 32B checkpoint,在一个专供 Olmo 3 使用的 1024 张 H100 GPU 集群上大约流逝了 56 天。32B 的 3.1 Think 和 Instruct checkpoint 是在这段时间之后训练的。这个训练时长在很大程度上反映的是把我们最好的配方应用到模型上,并不包含任何可能大幅拉长时间线的重大修改或研究性尝试。按每 H100 小时 2 美元计价,这相当于 275 万美元。运行时长的拆解如下:

  • 预训练:约 47 天(含中训练和长上下文阶段)。初始预训练阶段在 5.5T token 上用 512 张 GPU 花了约 9.5 天,随后在 1024 张 GPU 上又跑了 35 天。这些时长包含了所有崩溃恢复以及其他让我们无法全速运行的工程问题。中训练由两次并行运行组成,各用 512 张 GPU、每次覆盖 1000 亿 token,之后做模型融合和评测以确定最终 checkpoint,总共约 1.5 天。长上下文扩展作为单次运行在 1024 张 GPU 上执行;完整的长上下文阶段——包括训练和所有相关的融合与评测——又增加了约 1 天。
  • 后训练:约 9 天(SFT、DPO 和 RL)。后训练遵循一种不同的操作模式,我们会把每个阶段跑很多遍,扫描学习率和其他超参。后训练——尤其是 RL——的理论还不够成熟,所以我们不得不跑多次实验才能为给定的基座模型找到最优超参。我们希望在未来的工作中解决这个问题。后训练期间,checkpoint 评测占用了更大比例的算力资源,部分原因是推理模型在核心基准上会产生很长的生成。SFT 方面,我们并行扫了四个候选学习率、各用 256 张 GPU 跑 36 小时。然后约 12 小时用于评测、融合和 checkpoint 确认,合计约两天。DPO 训练每次运行耗时更少(每个作业 64 张 GPU 上跑完整的学习率扫描约 18 小时),但实际因集群不稳定而拖了好几天。初版 Olmo 3 Think 32B 的最终 RL 运行跨越约 5 天,其中至少有一天的训练时间因稳定性问题而损失。在 Olmo 3 初次发布之后,我们又在 224 张 GPU 上把最好的那次 RL 运行继续跑了 21 天,产出了 Olmo 3.1 Think 32B。

虽然预训练占了总 GPU 小时的大头,但后训练以及在主要训练阶段之间切换时所需的反复 checkpoint 评测也消耗了不小的份额。这些额外成本在只报告预训练机时的时候是看不到的,但它们在模型的完整开发周期中始终不容忽视。

3 Olmo 3 Base

Olmo 3 Base 的目标是打下一个扎实的基础,既支撑多样的通用能力,又让思考、工具使用、指令遵循这类下游能力能在后训练阶段被轻松激发出来。本节我们描述 Olmo 3 Base 的配方,组织如下:

  • 建模(§3.2)。Olmo 3 Base 紧跟 Olmo 2——都是 7B 和 32B 两个尺寸的稠密模型,超参也基本一致。除了提升训练吞吐的工程改进之外,我们重点放在支持更大的上下文窗口上。
  • 评测(§3.3)。为防止 Olmo 3 Base 对任何单一能力过拟合,我们大幅扩充了从 Olmo 2 继承的评测套件,纳入更多基准。我们在整个开发过程中系统性地精化基准的选择与使用方式,让小规模实验更可靠。
  • 数据。我们引入 Dolma 3,一组支撑基座模型开发多个阶段的数据集合:
    • 预训练(§3.4)。我们在 Dolma 3 Mix 上训练,这是 5.9T token 的多样自然数据混合,来源包括网页、学术 PDF、代码仓库等。
    • 中训练(§3.5)。我们在 Dolma 3 Dolmino Mix 上训练,这是 1000 亿 token 的混合,把我们质量最高的预训练数据与大量数学、代码题目、通用知识 QA、指令遵循等任务数据结合起来。
    • 长上下文扩展(§3.6)。我们在 Dolma 3 Longmino Mix 上训练,这是 500 亿(Olmo 3 Base 7B)或 1000 亿(Olmo 3 Base 32B)token 的混合,把长文档与我们的中训练数据结合起来。

3.1 Olmo 3 Base 的主结果

表 2 和表 3 把 Olmo 3 Base 32B 和 7B 与领先的完全开放及开放权重基座模型做了对比,既验证了我们评测设计的有效性,也展示了 Olmo 3 Base 在广泛能力上的强表现。

Olmo 3 Base 是 32B 参数规模下最好的完全开放模型,优于 Stanford Marin 32B 和 Apertus 70B。在数学和代码的评测综合分上,它比其他完全开放的 32B 模型有两位数的提升,与强开放权重基线之间只差几分。在 MCQA 基准上,它的 STEM 和非 STEM 分数紧跟 Marin 32B 和 Olmo 2 32B,比顶尖开放权重模型落后几分;而在 GenQA 上,Olmo 3 Base 与 Marin 32B、Olmo 2 32B 一同构成完全开放模型的第一梯队,在开放权重基线中也仅略微落后于 Llama 3.1 70B。在 7B 规模上,Olmo 3 Base 取得了完全开放模型中最强的数学和代码表现,对 Marin 8B、Apertus 8B 和 Olmo 2 7B 都有可观的优势。与开放权重模型相比,它在数学和代码上只落后于 Qwen 和 Nemotron Nano 这类最强模型。在 MCQA 上,Olmo 3 Base 7B 的 STEM 和非 STEM 都与最强的完全开放模型持平。最后,在 GenQA 任务上,Olmo 3 Base 在所列完全开放模型中仅次于 Marin,在所列开放权重模型中仅次于规模更大的 Gemma 2 9B 和 Llama 3.1 8B。

表 2:Olmo 3 Base 32B 与其他基座模型在 OlmoBaseEval Main 套件上的对比结果(细节见 §3.3)。Olmo 3 在发布前没有在留出基准上做过评测。

指标 Olmo 3 32B Marin 32B Apertus 70B Gaperon 24B LLM 360 K2 V2 70B OLMo 2 32B Qwen 2.5 32B Gemma 3 27B Mistral 3.1 24B Seed 36B Gemma 2 27B Llama 3.1 70B
完全开放 完全开放 完全开放 完全开放 完全开放 完全开放 开放权重 开放权重 开放权重 开放权重 开放权重 开放权重
OlmoBaseEval Math 61.9 49.3 39.7 20.7 72.9 53.9 64.7 63.2 59.5 15.3 57.5 62.0
GSM8k 80.6 69.1 63.0 33.3 90.9 77.6 81.1 81.3 79.3 26.9 76.3 81.2
GSM Symbolic 61.2 42.0 38.6 14.5 77.7 53.1 56.2 61.2 59.1 10.3 57.3 64.6
MATH 43.8 36.8 17.4 14.2 50.2 31.0 56.7 47.0 40.1 8.7 38.8 40.2
OlmoBaseEval Code 39.7 30.8 23.3 19.4 38.4 20.5 48.3 41.6 42.4 54.9 41.0 36.3
BigCodeBench 43.7 34.5 24.0 17.0 42.9 22.2 48.1 44.0 46.4 50.7 43.4 43.4
HumanEval 65.8 52.3 32.5 31.2 61.1 29.4 65.6 62.1 65.5 71.3 57.5 57.4
DeepSeek LeetCode 2.0 1.3 1.2 0.0 3.1 0.8 8.0 5.8 0.1 13.0 4.7 0.2
DS 1000 29.4 26.3 17.8 11.0 28.0 20.4 43.3 34.3 36.3 44.0 29.7 29.5
MBPP 59.6 52.1 37.6 36.7 55.7 37.1 69.8 60.0 61.9 72.0 61.7 55.5
MultiPL HumanEval 36.0 18.5 18.4 13.0 36.3 10.5 49.7 37.7 39.0 69.2 40.3 32.2
MultiPL MBPPP 41.5 30.5 31.3 26.5 41.5 23.2 53.6 47.2 47.7 63.8 49.7 35.9
OlmoBaseEval MC-STEM 74.5 75.9 70.0 56.2 75.7 75.3 82.2 80.2 81.5 83.4 75.6 80.1
ARC MC 94.7 93.4 90.7 72.7 93.5 94.4 97.0 95.8 96.2 97.3 94.1 95.2
MMLU STEM 70.8 68.4 57.8 45.3 66.5 64.7 79.7 74.9 76.1 82.8 65.8 70.0
MedMCQA MC 57.6 61.8 55.9 42.6 62.5 60.2 68.8 64.7 68.8 69.6 61.8 67.8
MedQA MC 53.8 60.8 52.4 35.4 61.1 62.2 68.4 68.7 70.4 70.1 61.0 72.3
SciQ MC 95.5 95.1 93.3 84.9 94.8 95.1 97.1 96.8 96.3 97.1 95.1 95.4
OlmoBaseEval MC-NonSTEM 85.6 84.5 78.5 64.1 84.0 84.2 89.3 86.7 87.9 89.0 83.2 86.1
MMLU Humanities 78.3 78.9 74.1 56.7 78.4 79.7 85.0 80.5 82.7 85.7 79.3 83.4
MMLU Social Sci. 84.0 83.7 79.2 58.9 84.1 84.5 88.4 86.2 88.6 90.1 85.8 87.4
MMLU Other 75.1 75.4 70.1 55.4 77.1 75.6 81.2 80.2 81.9 82.4 76.9 79.4
CSQA MC 82.3 80.1 76.9 60.6 80.2 81.2 89.9 79.0 80.5 81.1 78.1 79.0
PiQA MC 85.6 90.5 79.0 72.0 87.5 87.7 93.3 90.3 91.0 92.5 89.0 91.5
SocialIQA MC 83.9 82.4 79.3 71.3 83.0 82.3 86.6 81.2 81.0 84.9 81.0 83.5
CoQA Gen2MC MC 96.4 93.9 87.5 67.3 92.2 94.4 96.8 95.8 94.9 96.9 94.3 95.1
DROP Gen2MC MC 87.2 71.0 56.5 48.0 67.6 68.6 86.6 84.6 86.5 90.1 66.6 70.3
Jeopardy Gen2MC MC 92.3 95.3 93.2 77.0 95.6 96.6 97.0 95.9 97.2 96.2 92.0 97.1
NaturalQs Gen2MC MC 78.0 81.0 71.9 47.5 80.5 78.6 79.9 82.0 84.6 81.4 74.5 82.4
SQuAD Gen2MC MC 98.2 97.6 95.7 90.0 97.4 97.4 97.9 97.7 97.9 98.1 97.5 97.7
OlmoBaseEval GenQA 79.8 80.3 75.0 65.3 75.6 79.1 68.5 73.5 78.0 76.0 72.9 81.6
HellaSwag RC 84.8 87.2 84.5 75.2 86.3 87.5 86.3 86.0 86.2 84.8 86.7 88.4
Winogrande RC 90.3 90.5 87.7 80.3 89.5 89.4 87.5 91.3 90.8 89.3 90.8 91.7
Lambada 75.7 76.7 74.8 58.3 75.3 77.0 76.2 77.5 79.3 76.1 76.9 79.6
Basic Skills 93.5 91.1 87.5 83.2 91.5 88.7 94.2 94.9 91.9 96.0 93.2 92.4
DROP 80.9 76.5 56.3 59.4 75.0 76.3 53.7 75.9 74.9 76.1 73.2 78.3
Jeopardy 75.3 80.5 77.2 58.9 77.6 79.1 74.0 82.1 80.3 77.4 80.7 84.0
NaturalQs 49.0 55.1 43.1 33.5 45.7 51.4 39.3 49.2 45.1 30.7 47.1 53.1
SQuAD 94.5 94.4 90.7 89.3 93.9 94.0 64.9 92.4 92.6 89.1 93.0 92.9
CoQA 74.1 70.7 72.8 49.8 45.6 68.7 40.4 12.4 61.1 64.4 14.9 73.9
OlmoBaseEval 留出集
LBPP 21.8 17.3 8.1 4.3 19.9 8.2 40.3 17.7 30.3 42.6 19.7 11.8
BBH 77.6 70.1 58.8 36.6 82.6 64.6 81.1 77.4 81.4 85.0 74.8 80.8
MMLU Pro MC 49.7 48.1 39.6 21.3 50.1 46.9 61.1 53.1 58.9 62.2 47.6 50.4
Deepmind Math 29.6 26.7 20.1 28.3 29.8 22.0 40.7 30.4 35.3 31.3 27.6 40.3

译注:K2 V2 的结果用的是 2026 年 1 月 22 日上传的预训练 checkpoint,该版本在 Olmo 3 之后才发布。原表用两级表头区分「完全开放」与「开放权重」,markdown 无法跨列合并,故用单独一行标注归属。加粗行是任务簇的宏平均,其下为该簇内的单项基准。

表 3:Olmo 3 Base 7B 与其他基座模型在 OlmoBaseEval Main 套件上的对比结果

指标 Olmo 3 7B Marin 8B Apertus 8B Gaperon 8B OLMo 2 7B Qwen3 8B Nemo. Nano 9B Gemma 2 9B Qwen 2.5 7B Llama 3.1 8B Granite 3.3 8B MiMo 7B
完全开放 完全开放 完全开放 完全开放 完全开放 开放权重 开放权重 开放权重 开放权重 开放权重 开放权重 开放权重
OlmoBaseEval Math 54.7 39.6 29.2 16.9 41.7 67.2 49.8 48.8 60.7 36.9 41.5 54.3
GSM8k 75.5 60.9 48.2 30.0 67.1 84.5 82.3 68.5 79.9 56.4 61.0 74.3
GSM Symbolic 48.6 33.6 26.3 12.5 38.8 65.4 62.7 45.1 56.2 35.1 35.5 53.3
MATH 40.0 24.3 13.1 8.2 19.1 51.6 4.5 32.9 45.9 19.2 27.9 35.2
OlmoBaseEval Code 30.7 21.4 19.0 16.1 10.4 46.1 43.1 30.2 41.0 21.2 18.0 35.7
BigCodeBench 34.1 21.5 20.9 13.0 8.8 42.5 43.2 30.9 39.7 30.7 0.4 38.3
HumanEval 49.1 31.6 21.6 24.5 16.3 71.7 71.7 40.0 66.1 40.4 0.0 57.0
DeepSeek LeetCode 1.4 0.5 0.6 0.0 0.2 8.3 6.8 1.9 5.1 0.1 0.0 1.2
DS 1000 20.2 16.5 11.8 9.1 10.1 33.1 30.3 23.4 35.2 22.2 22.6 28.1
MBPP 43.6 36.5 33.5 29.3 21.2 66.2 62.3 49.1 55.4 12.1 48.5 48.3
MultiPL HumanEval 28.7 15.6 15.5 12.1 4.2 52.3 40.0 27.9 40.3 14.5 22.3 34.5
MultiPL MBPPP 38.2 27.6 29.2 24.6 12.2 48.4 47.5 38.2 45.4 28.3 32.3 42.5
OlmoBaseEval MC-STEM 66.4 68.1 66.3 58.0 64.6 78.8 73.5 72.8 74.7 69.0 65.0 71.6
ARC MC 89.2 89.2 87.9 77.2 85.7 95.4 94.1 92.7 93.4 86.4 86.2 91.7
MMLU STEM 59.7 58.1 52.4 43.1 53.2 76.7 71.1 62.8 67.6 55.7 55.6 63.5
MedMCQA MC 48.3 52.7 51.7 44.5 49.2 63.5 54.5 58.9 60.3 56.5 49.6 56.2
MedQA MC 41.8 47.3 47.6 36.8 43.8 62.1 53.5 55.4 56.6 53.7 43.0 53.0
SciQ MC 92.8 93.2 91.9 88.4 90.9 96.1 94.3 94.4 95.4 92.7 90.8 93.5
OlmoBaseEval MC-NonSTEM 78.2 78.8 74.2 65.0 75.2 84.8 81.3 81.3 82.9 76.1 76.9 80.5
MMLU Humanities 68.9 71.4 67.8 59.5 67.9 78.6 78.0 74.5 76.2 70.1 67.6 73.6
MMLU Social Sci. 75.0 77.4 74.7 60.8 73.1 84.8 82.2 82.9 83.0 75.5 71.8 80.8
MMLU Other 66.9 68.3 66.1 57.2 65.2 76.8 73.8 74.2 74.4 69.1 64.5 72.7
CSQA MC 75.3 75.3 72.1 65.5 72.0 84.1 74.4 75.3 85.0 72.9 82.3 76.1
PiQA MC 80.2 85.7 80.5 71.6 80.1 89.9 86.0 85.7 88.5 78.3 81.5 87.2
SocialIQA MC 80.3 79.8 76.3 73.4 77.5 83.3 78.7 80.3 82.9 77.0 83.1 80.7
CoQA Gen2MC MC 92.5 86.2 82.8 59.7 85.0 93.7 92.2 92.7 93.5 89.9 87.6 91.4
DROP Gen2MC MC 67.3 63.7 47.5 44.8 55.6 78.3 70.0 65.8 69.1 53.3 55.0 64.1
Jeopardy Gen2MC MC 86.9 90.8 90.3 83.2 89.5 92.3 90.7 92.8 92.1 88.9 88.4 89.5
NaturalQs Gen2MC MC 69.4 71.5 66.7 51.3 66.3 74.1 71.1 72.5 70.5 68.0 69.2 72.2
SQuAD Gen2MC MC 96.9 96.5 91.3 87.7 95.3 97.5 97.4 97.3 96.4 94.4 94.5 96.7
OlmoBaseEval GenQA 72.5 75.9 69.0 63.3 72.4 71.1 71.8 75.6 67.5 73.1 67.8 71.4
HellaSwag RC 77.7 84.0 81.0 73.9 82.2 80.5 80.2 81.8 81.0 81.5 83.7 80.6
Winogrande RC 85.7 88.6 85.8 76.4 87.4 86.4 86.2 88.8 86.0 87.3 89.4 86.5
Lambada 68.9 73.9 70.9 67.0 70.5 73.0 67.9 76.3 70.3 75.5 76.0 73.1
Basic Skills 89.5 85.6 83.8 80.5 82.2 93.5 91.4 89.3 91.4 88.0 88.7 89.7
DROP 71.5 73.0 37.1 54.9 61.5 57.2 71.4 68.2 56.7 59.5 38.4 69.3
Jeopardy 60.4 72.7 70.1 55.5 70.8 65.1 64.9 75.1 63.0 70.9 69.7 65.6
NaturalQs 32.6 42.6 35.0 28.8 37.4 33.8 31.2 40.4 31.2 36.7 37.0 33.1
SQuAD 93.5 93.4 89.6 86.0 91.5 89.2 92.3 88.8 87.0 89.2 89.6 90.3
CoQA 72.8 69.5 67.4 46.7 68.3 61.6 60.4 71.5 40.5 69.0 37.8 54.4
OlmoBaseEval 留出集
LBPP 17.1 5.8 7.1 4.7 3.1 25.7 31.7 12.4 22.1 9.1 18.5 21.5
BBH 63.5 55.6 48.1 38.4 49.6 76.5 77.0 68.8 54.7 63.0 61.5 75.1
MMLU Pro MC 37.3 38.8 33.9 20.8 33.1 50.3 50.2 44.7 48.1 37.4 33.9 44.3
Deepmind Math 23.7 20.2 17.1 34.1 16.2 47.7 31.4 23.0 32.8 24.1 32.2 25.4

3.2 建模与架构

Olmo 3 的建模与训练在很大程度上沿用 Olmo 2。本节聚焦关键差异,更多细节参见原文附录。

架构。我们采用基于 Transformer26 的 decoder-only 架构。与 Olmo 2 相比:

  • 在预训练和中训练阶段,我们用 8192 token 的上下文窗口训练(Olmo 2 是 4096)。
  • 为支撑更长序列长度下的可扩展预训练、同时把推理成本控制在可接受范围,我们引入 滑动窗口注意力(SWA)27模式,每个 token 只能注意到窗口大小为 4096 的先前 token。我们在每四层中的三层上加 SWA,并确保最后一层始终使用全注意力。

图 3:Olmo 3 Base 7B 的学习率调度与损失曲线。
图 3:Olmo 3 Base 7B 的学习率调度与损失曲线。

图 3:Olmo 3 Base 7B 的学习率调度与损失曲线。学习率调度的前半段是跨 5T token 的余弦调度。我们把后半段拉长,使总长度达到一个 epoch(5.93T token)的目标。warm-up 为 2000 步,峰值学习率 $3 \times 10^{-4}$,最终学习率为峰值的 10%。

图 4:Olmo 3 Base 32B 的学习率调度与损失曲线。
图 4:Olmo 3 Base 32B 的学习率调度与损失曲线。

图 4:Olmo 3 Base 32B 的学习率调度与损失曲线。学习率调度是跨一个 epoch(5.93T token)的余弦调度,在 5.5T token 处截断。warm-up 为 2000 步,峰值学习率 $6 \times 10^{-4}$。调度的目标最终学习率是峰值的 10%,但由于截断,真实的最终学习率是 $6.210 \times 10^{-5}$。反直觉的是,32B 的学习率比 7B 更高,不过这在一定程度上被 32B 更大的批量所补偿(每批 800 万 token 对 400 万 token)。

训练。Olmo 3 Base 使用 OLMo-core5 代码库训练。在这套技术栈上,序列长度 8192、全程 bfloat16 精度的条件下,我们的 7B 模型达到每 GPU 每秒 7700 token、32B 模型达到每 GPU 每秒 1960 token,分别约对应 43% 和 41% 的 MFU。我们通过组合 PyTorch 内建的 torch.compile()、注意力28和语言模型头29的自定义 kernel、异步批量收集指标、异步 checkpoint 写入等多项优化达到这一性能。

OLMo-core 支持预训练、中训练、长上下文扩展和 SFT,以及在 Hugging Face Transformers 格式之间转换 checkpoint、融合模型 checkpoint 的辅助工具。DPO 和 RL 的支持在计划中,尚未完成。

分词器。我们对各阶段的数据使用与 Olmo 2 相同的分词器,它派生自 OpenAI 的 cl100k3031

3.3 实验设计与评测

模型开发需要做大量迭代式的数据和训练决策。然而基准并不是完美的决策工具:不同的评测只在特定的规模和能力区间内对开发决策敏感32。已知在小算力规模下训练的模型在数学、代码和多选题问答(MCQA)任务上会表现为随机猜测水平3334,而基准噪声会削弱我们信任细微分数差异的能力35。为解决这些问题,我们开发了 OlmoBaseEval,一组支撑基座模型开发决策的基准套件。OlmoBaseEval 有以下几点改进:

  • 我们在按所评估能力对基准分组的任务簇上聚合分数(§3.3.1);
  • 我们通过识别能力在训练中何时「涌现」,为评估小规模模型开发代理指标(§3.3.2);
  • 我们通过在噪声大的任务上评测更多样本、甚至干脆移除这些任务,来提升整体信噪比(§3.3.3)。

我们首先以能力的高覆盖度为目标,在选择基准时优先考虑科学知识、医学/实验室知识、数学和代码任务。由于我们的数据干预针对的是核心能力而非特定基准(比如「代码」而不是「DS-1000」),我们把任务分组成,并期望同一簇内的基准对特定数据变更表现出相似的行为。为处理小算力预算下训练出的模型的评测(例如我们最大的实验规模是 1B 参数、1000 亿 token),我们做缩放分析来确定哪些基准在小规模下有信号,并找出用于决策的代理指标。最后,我们分析每个基准的信噪比——选择能提升信噪比的基准指标,移除噪声过大以致无法用于决策的基准,如果某个基准的噪声主导了聚合分数就把它移出平均。

图 5:OlmoBaseEval 的任务聚类。
图 5:OlmoBaseEval 的任务聚类。

图 5:OlmoBaseEval 的任务聚类。基于 23K 条基准结果,聚类方法迭代地合并那些对模型排序相似的任务,直到到达停止条件。为得到 OlmoBaseEval,我们把格式相同的任务放进同一簇,并把多选题拆分为 STEM 和非 STEM 两类。

3.3.1 任务聚类

为处理数量众多的任务,我们把相似任务聚成宏平均。我们希望任务簇的粒度与我们做数据干预的粒度相匹配,且每个簇内的任务行为相似。我们的聚类过程需要一种判定两个评测相似度的方法——我们的做法是从 70 个外部开放权重模型收集了 23K 条基准分数。

利用这份评测结果数据集,我们假设:如果两个基准对模型的排序相似,它们就在评估相似的构念。我们使用 Ward 方差最小化法36做层次聚类,它迭代地合并评测分数以最小化簇内基准之间的分数方差。图 5 展示了聚类过程的结果,我们手工选定一个阈值来平衡簇的数量与粒度。重要的是,我们并不直接采用聚类过程的结果——我们手工移动了少数任务,以确保每个簇内任务的格式相同(例如所有需要执行代码的任务都落在同一簇)。最终得到的任务簇是:MC-STEMMC-NonSTEMGenQAMathCodeCode FIM

3.3.2 缩放分析

我们在 $10^{18}$ 到 $10^{25}$ 训练 FLOPs 的算力范围内评测开放权重模型,以确定特定指标和任务在哪个算力规模上对开发决策有用。在某些评测基准上,小规模训练时很难看到信号33;另一些基准则在接近基准标注误差处「饱和」37。然而,尽管许多任务看起来是涌现式的,已有工作表明在走出噪声地板之前,连续型代理指标是更好的决策工具383932。我们提出一个 Base Easy 任务套件,它在 Base Main 套件中那些有金标签或人工撰写答案的任务上测量每字节比特数(bits-per-byte, BPB),计算方式是答案的负对数似然除以答案字符串的 UTF-8 字节数40

我们在来自 41 的 25 个 Olmo 2 缩放律模型套件上评测以理解低算力区间的缩放行为,并在 70 个开放权重模型上评测以理解高算力区间的缩放行为。图 6 展示了我们最终 Base Main 基准的缩放行为。对每个任务族,Base Easy 任务套件在小规模数据消融时就显示出信号,而 Base Main 任务套件在大规模时尚未饱和,为中训练阶段的数据实验留出了空间。

图 6:OlmoBaseEval 数学套件上的缩放分析。
图 6:OlmoBaseEval 数学套件上的缩放分析。

图 6:OlmoBaseEval 数学套件上的缩放分析。我们用 Olmo 2 缩放模型41找出在小规模模型上就有信号的基准和指标(左、中)。然后用小规模的 OlmoBaseEval Easy 套件作为代理指标来做数据决策。

3.3.3 信噪比分析

在报告宏平均时,我们希望从每个簇中排除那些噪声过大、对开发无益的任务。我们按照 35 的方法计算每个基准的信噪比:评测 Olmo 2 13B 训练的最后 50 个 checkpoint,以及 10 个在大致相同算力规模($4\cdot10^{23}$ FLOPs)下训练的外部基座模型。根据我们的发现,我们在可能的情况下从使用 1K 样本子集转为使用完整评测集。我们把一些基准完全移出评测套件,特别是 BoolQ42 这类二分类基准,因为我们发现模型通常会在预测多数类和少数类之间反复摇摆。

我们对中训练重复同样的分析,这次改用 5 次预备预训练运行的中间 checkpoint。一个重要发现是把某些基准从宏平均中分离出来,比如 CruxEval43——它测量的是一项相关且独特的能力(代码输入/输出预测),但会给宏平均引入过多噪声。图 7 展示了中训练期间跨中间 checkpoint 的三个单项基准与 Base Main 任务平均的信噪比对比示例。

图 7:OlmoBaseEval 在代码多任务平均上的信噪比分析。
图 7:OlmoBaseEval 在代码多任务平均上的信噪比分析。

图 7:OlmoBaseEval 在代码多任务平均上的信噪比分析,使用中训练的中间 checkpoint。首先我们聚合成多任务平均并移除噪声高的任务,例如 CruxEval(左 → 中)。然后我们调整生成超参以提升信噪比,例如增大 pass@k 中的 $n$(中 → 右)。

3.3.4 OlmoBaseEval

最终得到的 OlmoBaseEval 由一个用于小算力预算(例如小于 1B 参数)开发决策的 Base Easy 套件,和一个用于最终预训练运行及中训练开发决策的 Base Main 套件组成。Chat 套件的细节我们放在 §4.1 讨论。OlmoBaseEval 包含 43 个任务,是 Olmo 2 的四倍多——包括在预训练阶段就跟踪数学和代码基准。为防止在开发套件上过拟合,我们纳入一个含 4 个基准的留出集——MMLU Pro、DeepMind Math、LBPP 和 BBH——每个基准对应我们在预训练期间瞄准的一项宽泛能力。

套件包含四个新基准:BasicSkills,一组 6 个任务,用于隔离预训练期间各项技能的发展(例如基础算术、推理和编码);Gen2MC,5 个短式生成任务的多选版本;MT MBPP,MBPP 在 17 种编程语言上的翻译 BPB 集合;以及 Masked Perplexity,一种施加 token 掩码、只在难以学习的 token 上计算困惑度的新评测方法。我们用 UltraChat 和 WildChat 做掩码困惑度评测,它们为预训练阶段提供了对真实用户交互的广泛覆盖。

3.4 阶段一:预训练

我们首先在 Dolma 3 Mix 上训练 Olmo 3 Base,这是我们 6T token 的预训练数据混合。虽然 Dolma 3 Mix 在很大程度上由其他开放预训练配方所用的同类数据源构成161715,我们仍展示了三项关键创新:

  • 用于万亿 token 规模上快速、可扩展全局去重的新工具;
  • 两种优化训练 token 选择的新方法:token 约束混合和质量感知上采样;
  • 一个新的学术 PDF 数据源——olmOCR 科学 PDF——用 olmOCR18 转换成线性化纯文本(§3.4.2)。

表 4 汇总了我们的数据源、数据池规模和最终训练混合。

表 4:Dolma 3 Mix 的构成,包括我们 9T 的数据池、用于最终模型训练的 6T 混合,以及用于实验的 1500 亿 token 混合。

来源 类型 9T 池 token 9T 池文档 6T 混合 token 6T 混合文档 150B 混合 token 150B 混合文档
Common Crawl 网页 8.14T 96.7 亿 4.51T (76.1%) 31.5 亿 1210 亿 (76.9%) 8450 万
olmOCR 科学 PDF 学术文档 9720 亿 1.01 亿 8050 亿 (13.6%) 8380 万 199 亿 (12.6%) 225 万
Stack-Edu(重平衡后) GitHub 代码 1370 亿 1.67 亿 4090 亿 (6.89%) 5.26 亿 111 亿 (7.06%) 1430 万
arXiv 带 LaTeX 的论文 214 亿 395 万 508 亿 (0.86%) 910 万 12.9 亿 (0.82%) 24.7 万
FineMath 3+ 数学网页 341 亿 2140 万 1520 亿 (2.56%) 9550 万 41.0 亿 (2.60%) 257 万
Wikipedia / Wikibooks 百科 36.9 亿 667 万 25.1 亿 (0.04%) 424 万 6460 万 (0.04%) 11.9 万
合计 9.31T 99.7 亿 5.93T (100%) 38.7 亿 1570 亿 (100%) 1.04 亿

由于开发基座模型是我们开发流程中最耗算力的部分——需要在万亿量级 token 上训练、消耗超过 90% 的总算力——我们遵循两条主要原则来指导数据策略:

  • 只有当一个数据源有潜力产出足够多的 token、能在预训练规模上影响模型能力时,我们才会考虑把它用于预训练。有价值但规模小的数据源在预训练中可能起不到作用,更适合留给中训练。
  • 虽然我们乐于探索用结构化的「任务」数据(例如 QA 对、对话实例)训练基座模型,但我们只在中训练(§3.5)和长上下文扩展(§3.6)这些较后的阶段使用它们。任务数据往往达不到影响预训练阶段所需的池规模——即便用合成生成也不行;而且任务数据往往对评测结果有超乎比例的影响,可能干扰对其他数据源的消融。

图 8 汇总了创建 Dolma 3 Mix 预训练数据的流水线步骤。

图 8:Dolma 3 Mix 中预训练数据源的数据整理流程。
图 8:Dolma 3 Mix 中预训练数据源的数据整理流程。

图 8:Dolma 3 Mix 中预训练数据源的数据整理流程

3.4.1 准备网页数据池

我们采取以下步骤从 CommonCrawl44 整理预训练数据,它构成了我们预训练语料的大部分。

文本抽取。我们从 CommonCrawl 语料的 104 个 dump 开始,截止日期为 2024 年 12 月 31 日。遵循 DCLM45,我们移除 HTML 痕迹,用 Resiliparse46 从 WARC 文件中抽取语义文本。在适用的情况下,我们直接复用 DCLM-pool 中经 Resiliparse 抽取的原始数据,对不在 DCLM-pool 中的 dump 则自行应用 Resiliparse 抽取。

启发式过滤。我们施加一条启发式过滤流水线,把初始的 2526 亿篇文档剪枝到适合预训练的规模。我们的流程紧跟 DCLM45,做了一些小修改以提升数据质量和计算效率。我们先做 URL 过滤,用一份扩充的黑名单移除垃圾内容和成人内容。然后移除过短或过长的文档,接着过滤掉含过多符号或字母字符不足的文档。之后我们移除含大量内部重复的文档,并施加过滤以移除常见垃圾短语,凡被这些启发式规则识别出的文档一律整篇移除。接着我们用一个 fastText 分类器识别每篇文档的语言,只保留含英文文本的文档。最后一步,我们施加 Madlad400 的句级启发式规则。总的来说,这一流程把数据池规模缩减了 84.6%,得到 388 亿篇文档的语料。

去重。我们从 CommonCrawl 收集的网页数据天然含有大量重复文档。这种重复源自对同一网站的反复爬取、同一文档的近似副本出现在多个网页上,以及高度重复的样板文本。我们的去重策略受先前工作的三个观察启发:1)去重通常带来更 token 高效的训练47;2)重复计数是数据质量的弱信号,重复次数越多质量往往越高48;3)把文档重复超过少数几次会迅速带来收益递减49

基于这些观察,我们设计的去重策略是为后续的基于质量的上采样步骤(§3.4.4)做准备。我们在多个粒度上激进去重,目标是移除完全副本、近似副本和重复的填充文本。虽然这必然丢弃了重复计数所携带的质量信号,但它产出一个干净的基础数据集,我们随后可以在其上有选择地为高质量文档重新引入重复。我们的目标是得到一个整体重复极少的最终数据集,而任何重复都集中在高质量数据上。我们的去重过程分三个阶段实现:

  1. 精确去重。我们基于文档文本哈希做全局去重以移除所有完全副本。这一步识别出池中 67% 的内容为重复,把数据集从 387 亿篇缩减到 128 亿篇文档。
  2. 模糊去重。我们施加基于 MinHash 的去重来识别并移除近乎相同的文档,例如跨多个域名复制、仅页眉页脚不同的文档。我们把数据集切成 32 个分片,在每个分片上跑 MinHash 去重,然后在每个识别出的簇内做穷举的两两 Jaccard 相似度检查。我们从每个簇中保留爬取日期最新的那篇文档。这一过程识别出池中 23% 为重复,得到 98 亿篇文档。
  3. 子串去重。前面的步骤移除的是整篇重复文档,但没有处理单篇文档内部的重复内容。许多文档含有大量样板文本或 HTML 痕迹(例如页眉页脚),训练价值有限。为移除这些重复子串,我们施加一种新的基于模糊后缀数组的去重过程。我们把数据集切成 57 个分片并对每片施加该过程,标记任何出现多次、长度在 500 字节以上的子串。与以往的后缀数组方法不同,我们在语料中为每个重复子串至少保留一次出现。然后我们合并标记重复子串的区间,把夹在较长重复片段之间的短子串一并移除。这一过程移除了 14% 的文本字节,得到 97 亿篇文档、合计 36.5T 字节的未压缩文本。

这套三阶段流程把网页语料从 387 亿篇缩减到 97 亿篇文档——文档数减少 75%。所得的激进去重数据集随后可以按主题和质量分区,并可控地上采样用于训练。为把去重策略规模化,我们开发了 Duplodocus 工具50,这是一个原生 Rust 工具包,用于大规模分布式执行基于哈希的精确去重和 MinHash 模糊去重。

主题与质量分类。我们用 WebOrganizer 工具51把去重后的语料划分成 24 个主题(例如「成人内容」「政治」或「科学与技术」)。为加速 Dolma 3 池的处理,我们把 51 的 Transformer 类模型蒸馏成一个更简单的 fastText 模型。我们只按主题分区,不按格式分区。我们还训练并应用了一个基于 fastText 的质量分类器给每篇文档打质量分。遵循 DCLM45,我们用 OpenHermes-2.552 和 ELI553 作为正训练样本,并补充 UltraChat-200k54 和 WildChat-1M55。负训练样本由从 DCLM-RefinedWeb 采样的 30GB 数据构成。

我们把主题分类器和质量分类器都应用到完整的去重语料上以分区数据集。文档先按主题分区,然后在每个主题分区内计算质量分位数,把文档细分成二十分位桶(5 个百分点的区间)。这种两级分区产生 480 个互不相交的子集(24 主题 × 20 质量层),使我们能对预训练混合的主题与质量分布做细粒度控制。

最终网页数据池。上述步骤产出一个 8T token 的带标注数据池,按主题和文本质量分桶。这个池是我们预训练混合的基础,不过要构造最终训练数据还需要额外处理。具体来说,我们施加基于质量的过滤和主题重加权,以生成一个平衡的高质量混合,详见 §3.4.4。

3.4.2 准备 olmOCR 科学 PDF 数据池

我们整理了一批新的学术 PDF 数据集,替换此前使用的 peS2o56。这些文档是「有礼貌地」爬取的:我们把爬虫标识为 AI2Bot,遵守 robots.txt,且不绕过付费墙。爬虫的种子聚焦于学术站点和论文仓库。我们用第一版 olmOCR18 处理所有 PDF。最终这次爬取产出 2.38 亿篇唯一 PDF 文档,截止日期为 2024 年 12 月。

olmOCR 文本抽取。为把 PDF 转换成训练器可用的格式,我们施加预过滤和文本抽取。如果文档含有原生数字文本,我们用 Lingua 语言检测器只保留英文文档,并移除垃圾或 SEO 优化关键词超过总词数 0.4% 的文档。然后我们用 olmOCR18(版本 0.1.49–0.1.53)抽取文本。如果 olmOCR 失败,我们退回到 Poppler 的 pdftotext;若某文档中需要该退路的页面超过 1/250,则把该文档排除出语料。这产出 1.6 亿篇 PDF 文档的数据集。

去重。接着我们用 MinHash 算法识别并移除模糊重复。这一步与 §3.4.1 对网页文本语料所做的 MinHash 步骤略有不同:我们采用 FineWeb57 的 MinHash 参数,目标是相似度至少 75% 的文档对;且我们省略了穷举的两两 Jaccard 相似度检查。这一去重步骤之后,我们剩下 1.56 亿篇文档,移除率 2.3%。

PII 过滤。接下来我们从 PDF 池中移除含个人可识别信息(PII)的文档。我们的目标是移除那些含敏感独立 PII 的文档(例如政府证件和登录信息),以及把传记、医疗、位置、雇佣或教育信息与特定个人关联起来的文档。通过迭代,我们确定 PII 检测必须感知文档类型才有效。例如一篇会议论文可能含有作者的姓名和工作单位;但既然研究文章本就意在公开发表,把它移除并无道理。与此同时,一份银行对账单可能含有同样的姓名和雇主信息,而这显然是语言模型不该拿去训练的文档。我们遵循的规则是:这类文档是否本就意在公开传播?我们请人工标注者迭代确定哪些文档类型不适合公开传播、以及我们应当考虑哪些 PII 属性。所得的分类体系被用作多阶段模型化 PII 过滤流水线的一部分。

我们首先用一个提示词让 Gemma 3 12B9 对每篇文档的首页做分类,判断它是否含有敏感的独立 PII,或是否把敏感信息与某个个人关联起来。接着我们用 Gemma 3 4B 处理每篇文档的前 5000 个字符,得出一组描述文档类型的标记。基于这些分类结果,我们制定一套规则来判定哪些含 PII 的文档类型应当公开可得、哪些应当被过滤。最终这移除了剩余池的 4.9%,得到 1.48 亿篇文档的数据池。

启发式过滤。PII 移除之后,我们再做一轮启发式过滤以进一步移除低质量文档。这一步施加的过滤器包括检查:Lingua 过滤器最初没捕捉到的非英文文档;表格占比超过 30% 的文档;以及数字占比超过 20% 的文档。接着我们做一些改造,把 markdown 表格转换成 HTML,并移除 URL 引用。这些过滤步骤组合起来产出 1.08 亿篇文档的语料。这份语料随后按 WebOrganizer 主题分类器51划分成 24 个主题桶,交给混合环节(§3.4.4)。

3.4.3 准备代码、数学及其他来源

代码。代码数据我们使用 Stack-Edu58,这是对 the-stack-v2 数据集59 中 GitHub 仓库的改进整理版本,额外针对教育性编程内容做了过滤。我们按编程语言保留数据的分区,供后续混合使用。

数学。与 Olmo 2 一样,我们纳入来自 Proof-Pile-2 数据集60 的 arXiv 文档,它们又来自 RedPajama 数据集61,截止日期为 2023 年 4 月。我们主要使用这个来源是因为它保留了原始的 LaTeX 记号,使模型既能学到数学内容,也能学会如何正确地格式化数学。

此外,我们用 FineMath58 替换了此前使用的 OpenWebMath62。FineMath 是 Common Crawl 中含数学教育内容的文档子集,经过重新处理以保留正确的数学记号。我们纳入所有按 FineMath 分类器质量分至少为 3(满分 4)的文档。这批数据的截止日期为 2024 年 9 月。

其他。最后,我们纳入 Dolma16 中的 Wikipedia 和 Wikibooks 来源作为百科知识的基础来源。这包括 Wikipedia 和 Wikibooks 的「English」和「Simple」两个版本,截止日期为 2023 年 3 月。这些来源用 WikiExtractor63 处理以移除标记格式,并过滤掉所有 25 词及以下的文档,以排除模板页或遇到 XML 解析错误的页面。

3.4.4 在数据池上采样与混合

上述数据源合计提供了超过 9 万亿 token 的多样文本数据。要把这批集合转化成训练数据集,需要一条混合与采样流水线,来规定每个来源在最终训练混合中占多少、以及对每个来源施加多少上采样(如果有的话)。我们采用的混合策略借鉴了「群集」(swarm)方法——训练并评测许多更小的代理模型,用这些结果来指导出一个最优混合。此外,我们还施加一种新的条件混合过程,以应对我们的数据源在整个开发周期中被不断精化和更新这一事实。

图 9:Olmo 3 受约束数据混合的示例与效果。
图 9:Olmo 3 受约束数据混合的示例与效果。

图 9b
图 9b

图 9c
图 9c

图 9d
图 9d

图 9:Olmo 3 受约束数据混合的示例与效果。左侧是 Dolma 3 池中数据源的自然分布与我们学到的 Dolma 3 Mix 数据混合之对比(上:DCLM Baseline 按主题划分;下:Stack-Edu 按编程语言划分)。右侧是在我们的数据混合上训练相对于自然分布在下游评测上取得的提升

受约束数据混合。我们在所有预训练来源之间做数据混合,也在网页数据和 PDF 来源内部的 WebOrganizer 主题之间、以及 Stack-Edu 的编程语言之间做混合。我们的混合过程64由两个组件构成:一个在固定领域集合上构造高质量混合的基础过程,以及一个称为条件混合的元过程,用于在领域发生变化时高效更新已有混合。两者结合让我们能够迭代地构建最优混合,并在数据精化或新增时无需从头开始。

基础过程遵循一种受 RegMix65、Data Mixing Laws66 和 CLIMB67 启发的群集方法,由三个阶段组成:

  1. 群集构造。我们通过训练许多小型代理模型来采样可能混合的空间,每个模型用不同的混合比例。具体来说,我们按 Olmo 3 架构训练 3000 万参数的模型、跑 30 亿 token(5 倍 Chinchilla),每个混合从一个以自然分布(不做混合)为中心的 Dirichlet 分布中采样。经验法则是,我们启动的群集规模是领域数量的 5 倍。然后我们在 Base Easy 套件上评测每个代理模型。
  2. 逐任务回归。每个代理模型为每个任务提供一个从混合权重到任务表现(以 BPB 度量)的数据点。我们为每个任务拟合一个独立的广义线性模型,从而能够预测任何候选混合的表现。
  3. 混合优化。我们寻找使各任务 BPB 平均值最小的混合(由逐任务回归模型预测)。由于我们最终追求的是 6T token 预算的语料,且我们避免把任何领域重复超过大约 4–7 次,这自然基于各领域可用的 token 数对某些领域施加了最大比例约束。我们用一个从先验分布或自然分布出发的引导搜索来求解这个约束优化问题。

基础过程假定领域是固定的,但真实的预处理工作流会持续演化——我们会精化过滤器、增加领域,或发现并缓解质量问题。与其在领域每次变化时重算整个群集,我们引入一个称为条件混合的新过程,让基础方法能够高效适应不断演化的数据格局。核心想法是把已有的优化混合当作一个混合比例被冻结的单一虚拟领域,然后在这个虚拟领域加上任何新增或修改过的领域之上重跑基础过程。这实际上把基础混合过程限制在混合权重空间的一个低维子空间内,从而缩小群集规模、降低计算开销。

为构造 Dolma 3 Mix 的权重,我们执行三轮条件混合过程,每一阶段都在前一阶段冻结的混合之上增量构建。我们首先在 DCLM Baseline 混合内的 24 个 WebOrganizer 类别上、以及来源级混合上获得优化的混合权重。之所以以网页文本为起点,是因为它构成最大的数据池,也因为我们用它来开发基础混合方法论。由于 §3.4.1 描述的定制网页数据池的最终确定与这几轮初始混合是并行进行的,我们在第一轮混合时用的是 DCLM-Baseline,期望学到的偏好能迁移到我们最终的网页数据上。

在网页文本的 WebOrganizer 类别混合被冻结之后,我们转向 Stack-Edu 的编程语言混合。这里与条件混合过程略有偏离:我们把网页文本比例固定为池的 75%,强制 Stack-Edu 数据占 25%,只优化这 25% 内部的编程语言构成。最后,我们再做一轮条件混合,把 PDF 数据的 24 个 WebOrganizer 类别整合进来,条件是已确定的 DCLM、Stack-Edu 和来源级混合。这种增量式的混合方法至关重要:例如 PDF 的整理比其他来源晚完成很多,条件混合使我们能够纳入迟到的数据,同时复用先前的优化结果,而不必重启开销巨大的群集式基础过程。

图 9 展示了混合结果及其相对于自然数据分布的表现。对网页文本(上方两图),优化后的混合大幅上调 STEM 领域的权重(例如「科学、数学与技术」和「软件开发」)。在按 5 倍 Chinchilla 训练的 10 亿参数模型上,这个混合取得平均 0.056、最大 0.209 的 BPB 提升,54 个任务中只有 13 个出现退化,且没有一个退化超过 0.035。对 Stack-Edu 的编程语言重平衡(下方两图),优化后的混合更偏好 Python 而非 Java 和 Markdown,在除两个编码基准之外的所有基准上都带来适度提升。

图 10:质量感知上采样曲线示例。
图 10:质量感知上采样曲线示例。

图 10:质量感知上采样曲线示例,与平坦上采样曲线对比。横轴表示以百分位计的数据质量,纵轴表示数据被重复的次数。在这个例子中,最低的 40% 数据被丢弃,最高的 5% 数据被重采样 7 次。

质量感知上采样。上一节描述的数据混合过程确定了跨不同数据源和主题的最优比例,但没有考虑每个主题内部的质量差异。对 CommonCrawl 这类网页文本来源,我们最初从 DCLM 沿用其比例,而 DCLM 只施加基于质量分类器分数的平坦过滤。然而在另一组独立实验中,我们发现质量感知上采样在数据受限的场景下能提升表现。举例来说,当要从 1T token 的池中构造 2500 亿 token 的混合时,平坦的质量过滤(如 DCLM 所做)就是简单地选取最高的四分位。我们通过对最高质量数据做上采样取得了更好的结果:把最高 5% 的数据放入多份副本、其余数据各放一份,以凑够目标 token 数。

我们用上采样曲线把这个方法形式化,如图 10 所示。横轴表示以百分位计的数据质量,纵轴表示上采样倍数。平坦过滤对应图上的一个阶跃函数,而基于质量的上采样则对应一条单调递增的曲线。为生成训练数据语料,我们为网页文本池中 24 个 WebOrganizer 定义的主题各生成一条独立的上采样曲线。每条曲线的积分决定了从该主题抽取的总 token 数:例如积分为 2.0 表示平均上采样率为 2 倍,也就是从该数据桶产出两倍的 token 数。

为每个网页文本主题桶定义上采样曲线时,我们利用三个约束:1)由混合实验确定的最优主题比例;2)以 token 计的期望训练总时长;3)经验确定的最大上采样倍数 7。前两个约束控制每个主题桶的目标积分(平均上采样率),第三个约束规定了上采样曲线的上界。给定这些约束,我们可以在曲线空间中搜索一条满足约束的参数化曲线,它就成为该主题桶的上采样曲线。实践中我们的数据被组织成划分质量百分位区间的离散质量桶。对每个质量桶,我们在对应的百分位区间上对上采样曲线做积分、再除以区间宽度,从而算出它的上采样率。

预训练期间的评测。在预训练运行的中途很难获得对模型表现的可靠估计,因为一次运行的质量高度受学习率影响(见 15 第 4.1 节)。对 7B 模型,我们可以在训练过程中定期把学习率退火到零来评估进展,但这对 32B 模型开销过大。为在训练过程中监控 32B 模型的表现,我们采用 68 的技术,把定期选取的、相隔 1000 步的四个 checkpoint 的权重做平均。

3.5 阶段二:中训练

图 11:中训练数据整理流程。
图 11:中训练数据整理流程。

图 11:中训练数据整理流程。我们采用一套由轻量反馈回路构成的分布式系统,为跨能力的定向提升探索数据集,并把它们与集中式集成测试和 SFT 训练结合起来,以评估候选混合的质量(讨论见 §3.5.1)。最后我们纳入一套新开发的去污染方法,确保混合没有被评测数据污染(讨论见 §3.5.3)。

预训练之后,Olmo 3 Base 会被进一步训练以提升关键的基础能力。在这个中训练阶段,我们使用从本工作新引入的数据池 Dolma 3 Dolmino Mix 中采样的 1000 亿高质量 token。这份中训练数据显著扩展并改进了我们为上一代模型 Olmo 2 整理的 Dolmino。改进来自两个关键要素:

  • 一套新的两段式方法论框架,把 1)针对单个数据源的轻量分布式反馈回路,与 2)用于评估候选混合在基座模型质量和可后训练性上表现的集中式集成测试结合起来。
  • 扩展到跨代码、数学和通用知识 QA 领域的定向数据整理工作(从 Dolmino 以数学为主的努力拓宽而来)。
  • 更有意识地纳入指令数据和思考轨迹这两类数据,为支撑 Olmo 3 Think、Olmo 3 Instruct 和 Olmo 3 RL-Zero 的后训练打好基础

所得的中训练数据是一个多样的混合,把新颖的合成来源与预训练阶段的数据结合起来,但后者经过了质量过滤和改写,以更好地适配我们在这个阶段瞄准的能力。通过中训练,我们在目标能力领域全面取得改进,后续 SFT 训练的表现也得到提升。

表 5:中训练数据(Dolma 3 Dolmino Mix)的构成。标记含义:◆ 全新引入的合成数据集;◇ 对已有数据的重新生成(多因许可证限制);● 复用此前引入的数据;○ 对外部已有数据的过滤或轻度改造。

类型 来源 2T 池 token 2T 池文档 100B 混合 token 100B 混合文档
数学(合成) TinyMATH Mind ◆ 8.99 亿 142 万 8.98 亿 (0.9%) 152 万
数学(合成) TinyMATH PoT ◆ 2.41 亿 72.9 万 2.41 亿 (0.24%) 75.8 万
数学(合成) CraneMath ◇ 56.2 亿 655 万 56.2 亿 (5.63%) 724 万
数学(合成) MegaMatt ◇ 38.8 亿 679 万 17.3 亿 (1.73%) 323 万
数学(合成) Dolmino Math ● 107 亿 2100 万 107 亿 (10.7%) 2230 万
代码 StackEdu (FIM) ○ 214 亿 3200 万 100 亿 (10.0%) 1620 万
Python(合成) CraneCode ◇ 188 亿 1970 万 100 亿 (10.0%) 1170 万
QA(合成) Reddit To Flashcards ◆ 216 亿 3.70 亿 59.0 亿 (5.9%) 1.01 亿
QA(合成) Wiki To RCQA ◆ 42.2 亿 2230 万 30.0 亿 (3.0%) 1630 万
QA(合成) Nemotron Synth QA ○ 4870 亿 9.72 亿 50.0 亿 (5.0%) 1060 万
思考(合成) Math Meta-Reasoning ◆ 10.5 亿 98.4 万 3.81 亿 (0.38%) 40.1 万
思考(合成) Code Meta-Reasoning ◆ 12.7 亿 91.0 万 4.59 亿 (0.46%) 39.8 万
思考(合成) Program-Verifiable ◆ 4.38 亿 38.4 万 1.59 亿 (0.16%) 15.8 万
思考(合成) OMR Rewrite FullThoughts ○ 8.50 亿 29.1 万 8.50 亿 (0.85%) 39.4 万
思考(合成) QWQ Reasoning Traces ○ 47.7 亿 43.8 万 18.7 亿 (1.87%) 40.1 万
思考(合成) General Reasoning Mix ○ 24.8 亿 66.8 万 18.7 亿 (1.87%) 73.2 万
思考(合成) Gemini Reasoning Traces ○ 2.46 亿 5.52 万 2.46 亿 (0.25%) 8.51 万
思考(合成) Llama Nemotron Reasoning Traces ○ 209 亿 391 万 12.5 亿 (1.25%) 36.8 万
思考(合成) OpenThoughts2 Reasoning Traces ○ 56 亿 111 万 12.5 亿 (1.25%) 40.2 万
指令(合成) Tulu 3 SFT ● 16.1 亿 195 万 11.0 亿 (1.1%) 145 万
指令(合成) Dolmino 1 Flan ● 168 亿 5690 万 50.0 亿 (5.0%) 1480 万
PDF olmOCR 科学 PDF(高质量子集)○ 2400 亿 2870 万 49.9 亿 (5.0%) 120 万
网页 STEM-Heavy Crawl ○ 52.1 亿 516 万 49.9 亿 (5.0%) 553 万
网页 Common Crawl(高质量子集)○ 1.32T 9.65 亿 224 亿 (22.5%) 1830 万
合计 2.19T 25.2 亿 999.5 亿 (100%) 2.36 亿

3.5.1 方法论框架

定向能力提升。在中训练阶段,我们的目标是对跨越广泛领域的能力做定向改进:优先追求代码和数学上的显著增益,同时也力求在 QA 和通用知识获取能力上取得聚焦的改进,并为后训练阶段的指令与思考能力打好基础。这需要一套轻量的分布式数据集测试框架,让我们能够高效并行地考察许多领域的数据集(图 11)。

轻量测试我们采用 Olmo 2 引入的微退火(microanneal)方法论,并做了进一步修改以支持更系统的基线对照。标准微退火的设定如下:1)选定一个目标数据集,2)采样 50 亿 token,3)用 50 亿网页 token 与之配对,4)在所得的 100 亿混合上退火。然后我们把所得 checkpoint 的表现与一个纯网页 100 亿数据的基线微退火做对比,从而廉价高效地评估该数据集对基座模型表现的影响——这个影响是在「继续用网页数据训练」之上的净增量。

这套方法论让我们能够对候选进入中训练混合的数据集做快速定向的质量评估,并在许多数据领域上并行迭代。我们的工作流程是:对每一项我们希望改进的能力(分为数学、代码、QA、指令和思考几类),我们生成或收集新数据集作为提升该能力的候选;通过微退火评估每一个——若结果有希望,新数据集就可以被纳入接下来描述的更大规模集成测试。

集成测试。与微退火过程并行,我们对 1000 亿 token 中训练混合的候选做完整退火运行的集成测试。这些集成测试评估候选数据源组合在一起时的表现;此外我们还能评估更长的 1000 亿 token 中训练运行的效果(相对于微退火所用的 50–100 亿 token 短程运行)。

最后,集成运行的 checkpoint 可以被快速指令微调并在后训练评测套件上评测;我们用这一额外步骤来验证我们在中训练观察到的增益能够超越基座模型能力本身、延续到后训练。

每当新候选数据源的微退火结果积累到临界量时,我们就周期性地跑一次这些集成测试。每次集成测试中,在微退火里表现有希望的新来源会被纳入更新后的 1000 亿混合,同时保留此前迭代中的强来源。

我们总共执行五轮主要的集成测试;本文报告其中三轮:第 1 轮、第 3 轮和第 5 轮。第 5 轮纳入了新开发的去污染流程(§3.5.3)。对每个混合,我们在 OlmoBaseEval Main 评测套件上评测所得的中训练模型,并额外让中训练模型走一遍 SFT 以做后训练评估。

3.5.2 面向最终数据混合的能力改进

在 Dolma 3 Dolmino Mix 中,我们瞄准中训练期间的五项核心能力:改进数学和编码、通过 QA 更好地激发知识,以及在后训练阶段之前引导出指令遵循和推理能力。为保持与预训练的连续性,我们保留第一阶段的网页和 PDF 数据,但会过滤出更高质量的文档;这种做法避免训练数据分布发生过度偏移。表 5 列出了最终混合的构成,它把新引入的合成数据与已有数据的精化版本结合起来。

数学能力。数学能力方面,我们在 Dolmino 的工作基础上做扩展。我们总共考察 25 个数据源,评估了超过 80 次微退火运行。最终我们敲定 5 个顶尖的数学专用来源的组合,其中 4 个是新合成的。对于表现好但许可证不宽松的已有数据集,我们参照它们合成新数据。

  • Dolmino-1 math。我们纳入全部 107 亿 token 的 Dolmino Math 子集。我们使用的版本与原版的唯一差别是额外做了去污染过滤。如 Olmo 215 所述,这个集合是为提升通用数学能力而生成的,以 GSM8K 测试集上的改进来衡量。用其中 100 亿可用 token 里的 50 亿单独做一次 100 亿微退火,在 MATH 上提升 10.4 分、在 GSM8K 基准上提升 38.2 分。
  • TinyMATH。对 MATH 训练集中的 7500 个样例,我们各生成 100 道新的相似题目。然后为每道新题创建 Python 代码解法(TinyMATH-PoT),以及两种讨论这些解法的英文对话(TinyMATH-MIND)。总的来说这产出 11.4 亿 token 的新合成数据,专门瞄准 MATH 基准的表现。把这些新 token 全部按 50/50 比例与网页数据混合做微退火,在 MATH 基准上带来 13.2 分、在 GSM8K 上带来 13.9 分的提升。
  • CraneMath。近期发布的 SwallowMath 数据集69 展示了改写已被精细整理过的自然数学网页数据的潜力——这里改写的是 FineMath4+58。我们通过一次 SwallowMath 微退火印证了这一强表现:仅用 36 亿高质量 token 就在 MATH 上提升 16.0 分、在 GSM8K 上提升 24.5 分。由于 SwallowMath 带有额外的许可证限制(它是用 Llama 系列模型生成的),我们用 SwallowMath 的提示词改写 FineMath4+、以 Qwen37 做生成,独立复现了一份。我们把这个新混合称为 CraneMath,产出 56 亿 token 的高质量数学数据。微退火显示它在 MATH 上提升 18.5 分、在 GSM8K 上提升 27.4 分。
  • MegaMatt。与 SwallowMath 类似,Megamath-Web-Pro-Max70 也对自然出现的数学网页文本施加 Llama 改写——这次改写的是 MegaMath-Web71 的一个过滤版本。我们的微退火过程表明 MegaMath-Web-Pro-Max 仅用 50 亿高质量 token 就能把 MATH 提升 7.0 分、GSM8K 提升 13.3 分。然而为了能使用这个数据集,我们用开源模型重新生成了它。具体来说,我们收集 2023 年 6 月之后的 Megamath-Web-Pro 数据,按 Megamath-Web-Pro-Max 的方式过滤,再用 Qwen37 改写。这产出 38.8 亿 token 的高质量数据,我们称之为 MegaMatt。微退火中它带来 MATH 8.0 分、GSM8K 13.0 分的提升。

代码能力。我们改进代码能力的努力包含两条主线:1)整理更高质量的通用代码数据,2)引入中间填充(fill-in-the-middle, FIM)代码能力。进入最终混合的顶尖数据集如下:

  • Stack-Edu (FIM)。我们纳入一个改造版的 Stack-Edu,其中 50% 的文档经过 StarCoder259 的填充过程做了 FIM 变换。这种变换把代码文档切成前缀、中段和后缀三部分,用于训练对被遮盖中段的预测。为进一步提升这批代码数据的质量,我们施加质量过滤:按教育价值分做蓄水池采样和分桶,然后对每个语言子集从最高的 20% 桶中做加权随机采样。微退火验证了这种质量过滤加采样过程的组合优于 Stack-Edu 的自然分布,也优于「按分类器分数取每种语言的最高文档」这类更朴素的采样过程。
  • CraneCode。与数学数据集一样,我们发现 SwallowCode 数据集表现很强,于是生成了一份许可证宽松的复现版用于中训练。与 69 一样,我们从 the-stack-v2-smol 的 Python 子集取数据,然后过滤语法错误、并基于 linter 输出做过滤。接着我们施加 SwallowCode 的两阶段改写流水线,一个阶段改进风格、另一个阶段优化代码本身。这产出 188 亿 token 的高质量 Python 代码。在用 50 亿高质量 token 的微退火中,CraneCode 相对退火前基线在 HumanEval 上带来 5.0 分的提升,而 SwallowCode 是 10.3 分。当用 125 亿 token 的 CraneCode 做更大规模微退火时,HumanEval 的提升上升到 13.5 分。

QA 与知识获取能力。我们通过合成两个聚焦特定 QA 能力的新数据集、以及纳入高质量的已有 QA 数据,来定向改进问答与通用知识获取能力。最终纳入的数据集如下:

  • Reddit-to-Flashcards。我们合成这个数据集是为了应对多选 QA 任务中处理多样内容类别和问题结构的需求。我们先识别出一批与学术相关的 subreddit,然后用 GPT 4o-mini 把这些 subreddit 中的「投稿—评论」对改写成多选 QA 对。我们使用七种任务格式以增加多样性。微退火显示,在 100 亿 token 的微退火中纳入 50 亿 token 的这类数据,相对纯网页 100 亿基线微退火在 MC-NonSTEM 任务簇上带来超过 2 分的提升,其中 MMLU 提升 3 分。
  • Wiki-to-RCQA。我们合成这个数据集是为了应对基于篇章的阅读理解 QA 的改进需求。我们收集 Wikipedia 篇章并提示 Qwen2.5 32B Instruct 基于这些篇章生成 QA 对,满足一系列受阅读理解 QA 数据集标注指南启发的约束。微退火显示,在 100 亿微退火中放入 42 亿 token 这类数据,相对纯网页 100 亿基线在 GenQA 任务簇上带来近 2 分的提升,改进主要集中在 DROP、SQuAD 和 CoQA 这几个阅读理解 QA 基准上。
  • Nemotron。我们纳入 Nemotron CC 数据集72 的「diverse QA pairs」合成子集,因为在微退火中它把 GenQA 任务提升 1.5 分、MC-NonSTEM 提升 1.9 分,且 MC-STEM 表现与最高质量桶(5%)网页文档的微退火运行持平。Nemotron 的所有其他合成子集(「distill」「extract knowledge」「knowledge list」和「wrap medium」)表现都不如自然数据,所以我们没有采用。

跨能力指令数据。为给后训练打好基础,我们纳入跨领域的指令数据集,为指令微调预热模型。

  • Tulu 3 SFT 数据。我们从 Tülu 3 的 SFT 集合中采样指令数据。相对 73 发布的数据集,我们做了如下轻度处理:1)我们使用一个扩充的样例集合,这些样例曾被创建但随后在最终 Tülu 数据中被过滤掉;2)我们不依赖 <|im_start|><|im_end|> 这类后训练语法,而是用双换行来拼接消息。我们在微退火实验对比后选择这种格式而非使用特殊 token,更多细节见 §3.5.4 关于特殊 token 的讨论。
  • Flan。通过微退火,我们还发现 Flan 数据集7475 能改进 QA 任务的表现,因此在最终混合中纳入了 Flan 的一个子集。我们使用与 Olmo 215 相同的子集和预处理。

跨能力思考轨迹。我们还整理了一批跨多个领域的多样思考轨迹,为 Olmo 3 Think 和 Olmo 3 RL-Zero 打基础。这包括两个新的合成数据集,以及已有思考轨迹数据集的改写和过滤版本。

  • 元推理(Meta-reasoning)。这是本工作引入的两个新数据集之一;我们创建它是为了瞄准 76 提出的七项核心认知能力,它们是数学与编程专长的基础:自我意识7778、评估79、目标管理8081、层次化组织82、反向链接83、回溯84 和概念推理85。这些类别的灵感来自一些研究,它们提示基座模型中的元推理能力可能与更优的强化学习轨迹相关联7686。我们把这些能力表达成需要运用元推理的任务,例如从一个答案反推回原始数学题、或调试一个程序。为给每项任务生成元推理数据,我们对已有的数学8788 和代码899091 题目做合成增强,加上「题目分类」「难度分析」「解题思路」「常见陷阱」「验证方法」这类详细标注,仿照 Pandalla-Math 数据集的做法。以这些标注为基础,我们提示 GPT-4.1o4-mini 为每项能力导向的任务生成思考轨迹。微退火显示纳入这批数据对数学和编码任务有实质改进,相对一个强的数学/代码基线微退火,在 Minerva Math 上提升约 14 分,在 Codex HumanEval 和 MBPP 基准上分别提升 14 分和 20 分。
  • 程序可验证数据。我们的第二个新合成推理数据集由程序可验证任务92 构成,对这类任务我们可以用一段 Python 程序确定性地验证答案是否正确。求解这类问题天然需要一系列广泛的元推理策略,非常适合在中训练阶段学习。我们 1)以程序化方式生成这些题目,2)从 GPT-4.1o4-mini 蒸馏思考轨迹,3)最后用一个输出验证器(Python 程序)过滤正确性。微退火显示,在 50 亿微退火中纳入约 2.5 亿 token 的可验证数据,相对数学/代码微退火基线在数学和代码任务(含 GSM8K 和 MBPP)上带来 1–2 分的提升。
  • OMR 完整思考改写。我们还考察了 OpenMathReasoning 数据集88 的 9 种不同改写版本,发现我们称为 Full-Thoughts 的改写表现最好。这是对 OpenMathReasoning 数据集的一次轻度改写,指示 GPT-4.1 在保留原文全部推理、解释和思考的前提下,为清晰度、行文流畅度和格式(例如转换成 LaTeX)做编辑。在微退火中,用全部 8.5 亿 OMR Full-Thoughts token 加等量网页文本训练,我们看到 MATH 基准提升 5.5 分、GSM8K 提升 8.4 分。
  • 已有思考轨迹。我们还借助多种已有的合成思考轨迹数据集,对它们施加一系列过滤步骤以降噪提质。这些来源覆盖广泛领域,包括数学、代码、自然科学、社会科学、人文和谜题。微退火显示纳入这些数据集在数学和代码领域带来的改进尤为明显,GSM8K 最高提升 8 分,HumanEval 和 MBPP 相对数学/代码微退火基线提升约 2 分。

高质量网页与 PDF 数据。最后,我们纳入三类网页/预训练数据,以避免过度偏离预训练分布。

  • 阶段一网页数据。我们从最高的两个质量桶(质量最高的 10%)中采样文档。我们按自然分布采样,而不用预训练阶段的最优比例。测试中,预训练阶段的最优比例相对自然分布没有带来改进;既然它还会引入额外的实现复杂度,我们在中训练阶段放弃了它。
  • 阶段一 olmOCR 科学 PDF。我们从 PDF 文档(§3.4.2)中创建了一个进一步过滤的版本,同时用于中训练和长上下文扩展。细节见 §3.6.1。
  • STEM 密集爬取。我们还创建了一批独立的高质量网页集合,用自研爬虫在 2024 年 9 月 12 日至 2025 年 6 月 3 日之间爬取。爬虫基于人工整理的高价值网站清单所提供的域名级种子,抓取科学、教育和通用领域。我们采用与 olmOCR 科学 PDF(§3.4.2)相同的爬取策略。通过微退火实验,我们选择用 §3.4.1 引入的质量分类器过滤这个集合;具体来说我们用 0.6 的阈值分数,它对应我们所爬数据的最高 2.83%,若放到 Dolma 3 池的网页数据中则属于最高的 0.79%。相对纯网页基线,我们爬取的数据在 OlmoBaseEval 的 MC-NonSTEM、MC-STEM 和 Math 子集上各带来约 2 分的提升。

3.5.3 去污染

早先的 Olmo 模型已经促成了对基座模型训练中基准污染的研究,例如困惑度评测的去污染93、或测量质量过滤器对评测泄漏的影响94。在 Olmo 3 的中训练中,我们使用一个去污染工具来确保与评测数据集的污染降到最低。我们把去污染工作聚焦在中训练阶段(以及从同一批数据池取材的长上下文扩展),依据是已有结果表明记忆在训练末期发生得最强烈9596

方法与工具。去污染时,我们搜索并移除评测工具链中任何基准数据集任何 split 的匹配项——因为对某些基准我们会通过在训练 split 上评测来增大样本量。我们开发了一个新的 decon97 来检测并移除中训练数据与基准文档之间的污染。简单来说,decon 分两个阶段运行:

  1. 检测阶段。对每篇中训练文档,decon 按固定步长采样 n-gram,检查当前 n-gram 是否与评测套件中任何基准的已知 n-gram 匹配。
  2. 簇扩展阶段。若找到匹配,就把匹配文本向两侧扩展,统计同样被污染的相邻 n-gram 数量;若该值超过指定阈值,该文档就被判定为污染并移除。

两阶段的做法是效率的关键:检测阶段按不重叠的间隔检查以加速处理,而簇扩展阶段则做彻底的匹配检查以计算准确的污染分数。我们基于大量定性审查来调整污染分数,以平衡精确率和召回率。

我们迭代式地精化去污染协议。例如第一版因为一个预处理问题而未能对 SQuAD v2 去污染;DROP 也因其「关于一段篇章的短问题」格式而被错误处理。我们通过分别评估问题、答案和篇章三个部分来解决这些问题——主要按问题匹配,但把答案/篇章的匹配作为较短或经过编辑的问题的辅助信息。我们还通过匹配完整答案而非仅匹配 A/B/C/D 标签,提升了多选评测的精确率。decon 仓库包含可复现早期方法和最终方法的配置文件。

3.5.4 关键发现

我们的两段式中训练评估方法论框架让我们能够密切跟踪候选混合的质量、以及单个数据源在与其他数据源交互时的行为。下面我们详述这一过程中的几项关键发现。

候选混合质量随时间提升。集成测试让我们能够验证候选中训练混合随时间的渐进改进:表 6 展示了三个候选混合样本上的这一改进,勾勒出开发轨迹。(由于中训练开发与预训练是并行推进的,我们是在较早的预训练 checkpoint 上开发混合的——因此这里的对比意在说明数据整理的进展,不应与最终的中训练数字混为一谈。)

表 6:1000 亿 token 中训练候选混合的表现,在 OlmoBaseEval Main 套件上,以及后续 SFT 之后的评测。我们展示五个候选混合中的三个,以给出改进轨迹的代表性示例。可以看到我们的数据整理框架从第一个候选混合到最后一个带来了全面的改进。

混合 OlmoBaseEval Avg MC-STEM MC-NonSTEM GenQA Math Code FIM SFT 实验 Avg
第 1 轮 49.7 64.3 75.2 68.3 47.4 23.4 28.4 35.2
第 3 轮 50.7 64.9 75.7 68.1 48.7 24.4 31.9 35.3
第 5 轮 53.1 65.3 76.1 70.8 57.1 27.7 29.4 37.3

从表 6 可以看到,在所有基座模型指标上、以及后续 SFT 训练的评测中,更新的候选混合都持续提升表现。值得注意的是,在第 3 轮和第 5 轮之间我们还引入了去污染流程,这意味着第 5 轮相对第 1 轮和第 3 轮的增益在这张表里很可能被低估了,因为只有第 5 轮反映的是去污染后的数据。

表现呈现显著的领域权衡。在中心的集成测试之外,我们还做了一些向特定领域重度倾斜的 1000 亿探索性退火,以更好地理解领域权衡。我们把代码/数学/思考能力视为一个领域组,把生成式/QA 能力视为另一个领域组,构造出各自偏向其中一组、同时略去另一组的修改混合。我们的 Gen-QA 混合提高网页、QA 和指令数据的比例,略去数学、代码和思考;我们的「数学-代码-思考」混合提高数学、代码和思考数据的比例,略去 QA 和指令数据(但保留网页,以避免过度偏离预训练分布)。

表 7:领域倾斜混合的权衡演示,使用 OlmoBaseEval Main 套件。提高混合中数学和代码领域的权重会改进这些领域的表现——但会给 MCQA 和 GenQA 表现带来显著代价。反过来,提高 GenQA 领域的权重对 MCQA 和 GenQA 任务的改进甚微,却损害数学和代码表现。

混合 MC-STEM MC-NonSTEM GenQA Math Code FIM
Gen-QA 混合 66.3 78.1 72.5 27.5 11.9 0.1
数学-代码-思考混合 62.5 69.6 65.9 60.8 35.6 37.7
第 5 轮(最终混合) 66.4 77.4 73.1 57.3 31.2 31.7

表 7 展示了这些运行的结果,与我们最终的第 5 轮中训练混合做对比。我们看到,在 Gen-QA 混合上训练会让数学和代码表现大幅下降,而在 MC-STEM、MC-NonSTEM 和 GenQA 上大致与最终混合持平。相比之下,在「数学-代码-思考」混合中,数学和代码表现大幅超过最终混合——但 MC-STEM、MC-NonSTEM 和 GenQA 表现明显受损。

这些结果表明,在中训练期间偏向某些领域确实存在真实的权衡。我们特别看到,通过提高数学和代码在混合中的权重,明显还有进一步改进这两项表现的空间——但这会给我们的 MCQA 和 GenQA 表现带来显著代价。另一方面,提高 Gen-QA 领域的权重对 QA 任务的改进甚微,却会如预期般损害数学和代码表现。总的来说,这些结果表明我们最终的中训练混合在这些领域之间取得了健康的平衡,避免了过重的领域倾斜,从而在各项指标上都能有强的最终表现。

我们在单个数据源的层面上也观察到这些领域权衡,从微退火结果中可以看到。表 8 展示了 Reddit-to-Flashcards 数据集的微退火对比:相对纯网页基线,它在多选任务上带来改进、在某些代码任务上也有提升,但在数学和 GenQA 任务上导致一些表现下降。反过来,表 9 显示我们新的合成推理数据——元推理和程序可验证推理——在数学和代码任务上带来显著改进,但在某些 GenQA 和 MCQA 任务上导致一定的表现下降。

表 8:微退火层面的领域权衡:Reddit-to-Flashcards(100 亿微退火,纯网页基线)。我们在单个数据源的层面上也看到领域权衡:Reddit-to-Flashcards 数据集在 MCQA 任务和部分代码任务上带来强提升,但降低了数学和 GenQA 任务的表现。

混合 MMLU ARC GenQA BasicSkills GSM8K Minerva MultiPL-E MBPP HumanEval
纯网页 55.6 78.1 53.4 80.4 22.4 6.1 9.6 16.0
Reddit 58.8 80.7 52.5 79.9 21.2 4.5 11.2 14.5

表 9:微退火层面的领域权衡:元推理与程序可验证推理(50 亿微退火,纯网页基线)。推理数据集同样存在领域权衡:加入元推理和程序可验证数据在数学和代码任务上带来显著改进,但在生成式和 MCQA 任务上有一定表现下降。

混合 MMLU ARC GenQA BasicSkills GSM8K Minerva MBPP HumanEval
纯网页 55.2 77.6 53.7 80.9 18.4 6.3 6.2 7.9
推理 53.7 77.7 52.9 82.9 26.8 13.6 12.6 19.5

思考/指令数据有益于基座表现。我们还通过 1000 亿 token 的集成测试考察了纳入后训练导向数据——指令和思考轨迹数据——的整体影响:在我们某个中间中训练混合上做了含与不含这些数据子集的对比(保持混合总 token 数不变)。表 10 展示了这两次训练运行后的基座评测表现——我们看到,包含这些后训练要素的混合在每一项基座评测指标上都更好。这表明,尽管单个来源和领域会呈现表现权衡,但把这几类跨领域的后训练数据类型合起来纳入是持续有益的,而且这种益处在后训练开始之前就已显现。

表 10:思考轨迹与指令数据对 OlmoBaseEval 的影响。「完整混合」即表 6 中的「第 3 轮」。包含指令和思考数据的混合在各项基座评测指标上都更好,说明纳入这些数据类型在后训练之前就已有益。

模型 Avg MC-STEM MC-NonSTEM GenQA Math Code FIM
无思考轨迹/指令 48.8 63.6 74.0 66.7 43.1 23.3 29.2
完整混合 50.7 64.9 75.7 68.1 48.7 24.4 31.9

特殊 token 留给 SFT 阶段。为确定指令数据集的格式化方式,我们还考察了在中训练数据中包含或省略 <|im_start|><|im_end|> 这类特殊对话 token 的影响。我们通过在 Tulu3-SFT 数据上做微退火来测试,对比含与不含这些 token 的版本。实验显示,当训练数据含有对话模板和特殊 token 时,模型在推理时会持续输出这些特殊 token,导致评测分数急剧下降(例如 GSM8K 从 49.43 掉到 0,CruxEval 从 32.89 掉到 18.91)。进一步分析表明,仅仅包含一个对话模板、但用普通文本代替特殊 token,并不会产生同样的表现下降(GSM8K 46.02,CruxEval 29.65),说明这种模型行为的紊乱不是由包含对话模板本身导致的,而是特别源于把此前在预训练中从未见过的特殊 token 引入了嵌入词表。

尽管模型评测分数的退化主要可归因于答案解析被打乱,这些结果仍然凸显了一个更宽泛的问题:在中训练时纳入这些 token 会导致基座模型在推理时吐出这些 token。既然这是不受欢迎的行为,我们最终从指令数据中同时移除了对话模板和特殊 token,回退到简单的基于换行的格式。

图 12:中训练中受污染最严重的 10 个数据源里基准实例的出现情况。
图 12:中训练中受污染最严重的 10 个数据源里基准实例的出现情况。

图 12:中训练中受污染最严重的 10 个数据源里基准实例的出现情况。我们对所有基准的所有 split 做去污染,因为其中一些(右)在评测时会纳入训练数据以降低噪声。部分(但非全部)受污染的基准在污染与去污染两次运行之间显示出明显的 Perf Δ

去污染的程度与影响因基准而异。图 12 展示了含基准污染出现次数最多的十个中训练数据源。我们发现大量污染出现在 Flan 和 Nemotron 这类已有数据集中。并非所有污染都是隐蔽的——我们发现了许多模板化的污染实例,其中基准的各字段被精确匹配、字段之间插入了模板化内容。而且这些往往不是孤立个案,而是完整的验证集或测试集。举例来说,Flan 就是用基准数据上的模板构造出来的,而且可能包含那些因测试集不公开而被用于模型开发决策的验证数据(例如 DROP)。

表现有时会因污染而虚高,但并非总是如此。我们通过把最终的去污染 1000 亿退火与一次使用未去污染数据版本的匹配 1000 亿退火做对比来考察这一点。图 12 同时展示了移除污染后中训练之后基准表现的下降幅度(Perf Δ)。有些差异相当可观——例如 DROP、Minerva、SQuAD 的验证或测试表现变化。注意我们移除的是所有基准所有 split 的污染,比如对 DROP 就从 Flan 之类的来源中移除了超过 6 万条训练样例。所以表现差异既可能说明去污染阻止了记忆,也可能说明它同时移除了同分布的训练样例。我们之所以移除所有 split,是因为我们的一些开发基准会通过在训练和留出 split 上评测来增大样本量(图 12 右),而其中若干基准在任何被评测 split 被污染时都会显示出表现高估。不过,另一些基准尽管被污染却没有表现出虚高:我们看到 DeepSeek LeetCode 的表现无论有无污染都接近 0,而 SQuAD 在较容易的 MC 指标下两种情况都已饱和。最后,与 Marin 32B12 的报告类似,我们发现尽管去污染流程检测到 GSM8K 在我们数据中完全泄漏,这并没有导致污染数据下表现更好。反而我们看到去污染数据下的表现更好——Marin 的作者解释这一现象是因为被污染的格式与被评测的格式不匹配。

模型汤能改进中训练表现。对 Olmo 3 Base 32B,我们观察到融合两次不同随机种子的独立中训练运行会带来可观的表现提升。相对各自单独的中训练运行,融合后的模型在 MC-STEM 任务簇上提升近一整分,在 GenQA 任务簇上提升 0.4 分,在 Math 任务簇上相对第一次和第二次中训练运行分别提升 2.9 分和 1.6 分。其他值得一提的改进包括 MMLU 约 1 分的提升,以及 GSM Symbolic 相对两次运行分别 5 分和 2 分的提升。因此我们选择融合后的模型作为最终的 32B 中训练 checkpoint。

译注:7B 的初步实验没有从模型融合中看到类似增益,所以 7B 的中训练 checkpoint 是单次运行的结果。

3.6 阶段三:长上下文扩展

现代语言模型的一项关键能力是在长序列上工作的能力。许多真实世界任务需要处理长输入,这项能力是必需的。此外,生成长序列的中间 token 也是实现测试时扩展的常用手段98。本节概述我们把 Olmo 3 的上下文窗口从 8,192 扩展到 65,536 token 所用的方法论。我们同时介绍 Dolma 3 Longmino Mix,一个由自然出现的长文本和合成增强长文本共同构成的高质量数据集。Dolma 3 Longmino Mix 包含超过 6000 亿 token,统计见表 11。

表 11:Dolma 3 Longmino Mix 的构成。Olmo 3 32B 使用的 1000 亿混合与这里的 500 亿混合保持相同比例。长度分桶按 Dolma 3 token 计。

来源 长度桶 6000 亿池 token 6000 亿池文档 500 亿混合 token 500 亿混合文档
olmOCR PDF 8K–16K 1440 亿 (22.5%) 1270 万 22.7 亿 (4.55%) 23.5 万
olmOCR PDF 16K–32K 1150 亿 (18.0%) 506 万 18.5 亿 (3.70%) 11.0 万
olmOCR PDF 32K–64K 1060 亿 (16.6%) 230 万 48.1 亿 (9.63%) 17.7 万
olmOCR PDF 64K–128K 960 亿 (15.0%) 105 万
olmOCR PDF 128K–256K 608 亿 (9.5%) 34.2 万
olmOCR PDF 256K–512K 351 亿 (5.49%) 9.71 万
olmOCR PDF 512K–1M 215 亿 (3.36%) 3.02 万
olmOCR PDF 1M+ 269 亿 (4.21%) 1.22 万
olmOCR PDF + 合成 CWE 32K–64K 87.7 亿 (1.37%) 18.9 万 19.4 亿 (3.88%) 7.13 万
olmOCR PDF + 合成 REX 32K–64K 241 亿 (3.77%) 49.2 万 60.8 亿 (12.2%) 21.7 万
中训练数据混合 可变 330 亿 (66.1%) 7920 万
合计 6390 亿 2230 万 500 亿 (100%) 8000 万

长上下文扩展策略。因为用长序列长度训练在计算上代价高昂,大多数语言模型都用较短序列做预训练,只在模型开发的后期阶段做扩展。在扩展阶段,模型在更长的文档上训练,位置编码的超参数通常也会调整以缓解位置泛化的难度。

开源模型配方的方差很大。执行这种长上下文扩展的配方在不同模型之间差异极大。许多语言模型的上下文扩展阶段从数千亿 token(SmolLM3:1000 亿17;GLM 4.5:1000 亿99;DeepSeek V3:1230 亿25;Apertus:2250 亿13)一直到接近一万亿 token(Kimi K2:4000 亿100;Llama 3.1:8000 亿11;DeepSeek V3.1:8400 亿101)。但也有异常值:AFM102 和 Nemotron Nano 2103 分别只用不到 200 亿 token 就扩展到 64K 和 128K。还有一些独立的扩展配方被提出,其中不少强调 token 效率。例如 ProLong104 使用取自书籍和代码的 200 亿 token,而 LongAttn105 用已有语言模型的自注意力分数挑选表现出长程依赖的文档,构造出一个 50 亿 token 的语料。

各模型家族之间另一个关键分歧点是扩展在开发流水线中的时机:Llama 3.1 系列在中训练之前做长上下文扩展,Qwen 2.5 和 3 在中训练之后做,而 GLM 4.5 只在监督微调之后才做扩展。

Olmo 3 的长上下文配方。为扩展 Olmo 3 的上下文,我们使用来自 olmOCR PDF 池(§3.6.1)的长文档,并施加额外过滤和合成数据增强(§3.6.2)。我们把这个集合称为 Dolma 3 Longmino Pool。我们把 34% 的长上下文数据与 66% 从 Dolma 3 Dolmino Mix 采样的高质量短上下文数据混合,用这个混合为 Olmo 3 7B 额外训练 500 亿 token、为 Olmo 3 32B 额外训练 1000 亿 token,如 §3.6.3 所述。长上下文扩展期间,我们只对全注意力层施加 YaRN 106,不调整滑动窗口注意力层的位置编码;我们使用文档打包和文档间掩码(§3.6.3)。配方的关键方面总结在图 13 中。在开发这套配方的过程中,我们仔细分析并隔离了对长上下文表现有深远影响的架构设计决策;这项研究呈现在 107

图 13a:只对全注意力层施加 YaRN 效果最好。
图 13a:只对全注意力层施加 YaRN 效果最好。

图 13b:olmOCR 科学 PDF 比其他配方更有效。
图 13b:olmOCR 科学 PDF 比其他配方更有效。

图 13c:合成数据增强相对纯自然文档改进表现。
图 13c:合成数据增强相对纯自然文档改进表现。

图 13d:文档打包在更长上下文长度上提升表现。
图 13d:文档打包在更长上下文长度上提升表现。

图 13e:更长的扩展改进 RULER 分数,长序列上尤其明显。
图 13e:更长的扩展改进 RULER 分数,长序列上尤其明显。

图 13:Olmo 3 长上下文扩展配方的五个关键组成,在 RULER 基准上测量。(a)只对全注意力层施加 YaRN 给出最好结果;(b)olmOCR 科学 PDF 比其他配方更有效;(c)合成数据增强相对纯自然文档改进表现;(d)文档打包在更长上下文长度上提升表现;(e)更长的扩展改进 RULER 分数,长序列上尤其明显。

总体结果。我们在两个流行的长上下文基准上评测扩展后的模型。RULER108 是一个合成长上下文任务的基准,包含大海捞针任务的高难变体109 和需要在输入上做计数的简单聚合任务;我们把 RULER 作为主要指标来指导长上下文配方开发。HELMET110 是一套覆盖多样任务类型的长上下文基准,包括检索、上下文学习和摘要任务,我们用它来代表更通用的长上下文能力。我们把 HELMET 留作未见评测套件,只在最终 checkpoint 上测试。111 结果报告在表 12。

表 12:Olmo 3 与可比规模的其他开源基座模型的表现对比。Olmo 3 开发期间我们把 RULER108 作为开发套件;HELMET110 作为未见评测套件留出。表中为各模型的基座变体;按各自发布日期排序。Qwen 3 8B Base7 和小米 MiMo 7B112 只支持最长 32,768 token 的上下文。我们排除了任何不支持至少 32,768 token 的基座模型。

模型 RULER 4K RULER 8K RULER 16K RULER 32K RULER 65K HELMET 8K HELMET 16K HELMET 32K HELMET 65K
7B 规模
Llama 3.1 8B 95.56 92.76 93.13 91.43 86.88 45.00 43.48 42.44 40.18
Qwen 2.5 7B 94.63 90.87 88.68 87.26 67.30 49.26 46.25 42.99 30.47
IBM Granite 3.3 8B 91.98 85.69 82.70 78.13 67.62 43.19 41.63 39.31 35.74
Qwen 3 8B 95.58 94.10 93.78 90.29 51.62 49.90 47.71
小米 MiMo 7B 94.33 93.45 92.53 89.28 50.57 49.68 46.01
Nemotron Nano 9B 95.31 93.09 91.58 89.01 85.13 41.78 42.90 41.82 41.48
Apertus 8B 90.47 82.48 74.43 69.05 59.89 46.09 43.71 41.26 35.12
Olmo 3 7B 94.89 91.21 84.14 78.79 67.96 45.66 43.62 41.15 36.80
32B 规模
Qwen 2.5 32B 96.03 94.52 95.07 92.67 80.73 57.61 56.06 54.01 41.73
Gemma 3 27B 84.48 84.20 85.36 87.06 84.59 49.37 49.92 50.31 48.60
Mistral Small 3.1 24B 96.05 95.06 93.77 92.42 88.80 49.41 49.71 47.46 43.34
Apertus 70B 91.52 84.26 80.54 76.82 60.33 44.72 44.60 41.07 35.67
Olmo 3 32B 96.10 94.57 90.42 86.22 79.70 52.11 49.36 48.60 43.15

译注:这是全篇少数几个 Olmo 3 未能领先的维度。7B 在 16K 以上明显落后于 Qwen 3 8B 和 Nemotron Nano 9B,32B 在 32K/65K 上也不敌 Mistral Small 3.1 24B。作者对此没有回避,把长上下文列为已知短板。

3.6.1 长上下文数据来源

olmOCR PDF。我们长上下文数据池的骨干是从网络抓取、经 olmOCR 处理的科学 PDF。113 图 14 描述了表 11 中各长度桶内按主题的分布。

数据过滤。我们用 gzip 可压缩性作为指标来过滤这批数据。gzip 曾被用于文本分类114,也被当作细粒度扩展律的特征115。我们把 gzip 用于数据过滤的方式是排除两端极值:移除最可压缩的 20% 文本和最不可压缩的 20% 文本。

我们还考虑过施加基于 LongPpl116 的过滤器——它通过测量在提供额外前文时每个 token 在已有长上下文模型下的困惑度变化,来识别最依赖长程依赖的 token。我们用 Gemma 3 4B9 作为参考模型,在 Dolma 3 Longmino Mix 的 100 亿 token 上计算 LongPpl,对比 4K 与 128K 上下文窗口下的语境化差异。我们采用与 116 相同的阈值来判定一个 token 是否是需要长上下文依赖的「关键」token。

我们对每篇文档计算两个统计量:被标记为关键 token 的比例,以及关键 token 在文档中的分散度(用关键 token 位置相对文档长度的标准差来计算)。在一轮实验扫描中,我们考虑排除关键 token 最少或分散度最低的后 20% 文档,以及把首尾 20% 都当作离群值排除;这些可能性没有一个胜过 gzip 过滤器,所以最终运行没有采用。

图 14:olmOCR 科学 PDF 中按长度划分的 WebOrganizer 主题 token 数分布。
图 14:olmOCR 科学 PDF 中按长度划分的 WebOrganizer 主题 token 数分布。

图 14:olmOCR 科学 PDF 中按 WebOrganizer51 主题的 token 数分布,按长度划分。

3.6.2 合成增强实验

扩展上下文语言模型的一个常见用例是在长输入上做信息抽取与综合117118。然而大多数长文档并不为这类任务提供监督信号。直接受 CLIPPER119 启发,我们对科学 PDF 池的一部分做改造,在随机采样的间隔处注入合成生成的聚合任务。我们的做法也与 Qwen 2.5 1M120 有相似之处。

生成流水线。为长上下文理解生成合成数据的主要挑战是自举问题:在没有能处理长上下文的模型可用的前提下,我们如何创建有效的数据?我们的流水线用文档统计量识别最重要的词项,然后抽取包含这些词项的片段。这些片段随后被提供给一个语言模型,用来创建聚合任务。具体来说:

  1. 对给定的长度为 $n$ token 的文档,我们把它切分为 $m$ 个长度 8K 到 32K token 的段。我们尽量把切分点放在文档流的自然断点附近,比如新章节之前;
  2. 对每一段,我们对文本做规范化和分词,抽取一词和两词的名词短语,用 tf-idf 识别最显著的名词短语;
  3. 对每个名词短语,我们按 tf-idf 排序从该段中选出 $k=8$ 个文本片段;
  4. 我们把名词短语、(可选的)片段,以及一条或多条描述聚合任务的提示词一起传给语言模型。

对 Olmo 3,我们使用 $32{,}768 \leq n < 65{,}536$ token 的文档,每篇文档得到 2 到 8 个段。虽然我们试过若干闭源和开源语言模型,最终所有生成都用 OLMo 2 Instruct 32B 完成。

合成聚合任务。我们考虑两类聚合任务;确切使用的提示词请参见代码实现。121

  • CWE(Common Word Extraction,常见词抽取)。我们给 OLMo 2 Instruct 提供该段中 5 个高频出现的单词名词短语,要求模型生成多样的 QA 对,其答案必须是每个 unigram 在该段中出现的确切次数
  • REX(Rewriting EXpressions,表达改写)。对每个名词短语及其对应片段,我们提示 OLMo 2 Instruct 生成一项聚合任务,匹配以下 12 种情景之一来讨论该名词短语:一段简短摘要、一段教授与学生的对话、一段面向高中生的简单段落、一组抽认卡、一场学校测验、一档游戏节目、一场晚宴、一场辩论、一组真假判断陈述、一个电影场景、一段百科式描述,或一篇 r/explainlikeimfive subreddit 风格的科普讲解。

3.6.3 选择数据混合与 token 预算

长短上下文数据交织。我们没有只在长上下文数据上训练,而是混入来自中训练(阶段二)的高质量短上下文数据,以确保短上下文任务的表现不被显著损害。在 100 亿 token 扩展上的早期实验显示,长上下文 / 短上下文 66% / 34% 的混合会让 OlmoBaseEval 一个子集上的表现下降 2.5 分;相比之下,34% 长上下文、66% 短上下文的混合只下降 0.8 分。

更长的扩展有帮助。图 13e 显示,给长上下文扩展阶段分配更多 token 能改进长上下文任务表现,在更长序列长度上尤其明显。我们通过 500 亿 token 的阶段三训练扩展 Olmo 3 7B 的上下文;对 Olmo 3 32B,为获得更好的长上下文能力,我们扩展 1000 亿 token。

3.6.4 为扩展整理训练配方

RoPE 扩展。Olmo 3 使用 RoPE122 在 Transformer 架构内编码位置信息。我们试验了若干把 RoPE 扩展到超出原始预训练上下文长度的方法,包括调整基频缩放123124、位置插值125 和 YaRN106。每种方法要么施加到所有 RoPE 实例,要么限制在全注意力层所用的 RoPE 上。我们发现只对全注意力层施加 YaRN 给出最好的总体表现。

文档打包。预训练和中训练期间,我们遵循标准做法,把文档拼接后切成定长的训练序列。然而在扩展上下文长度时,这个策略产生的训练实例平均短于底层文档长度分布。为解决这个问题,我们采用最优拟合 文档打包126,它减少被切分文档的数量,同时只增加可忽略的填充量。相比朴素的「拼接后切分」做法,最优拟合打包在长上下文基准上带来大幅改进的表现。

文档内掩码。长上下文扩展期间,我们施加文档内掩码,确保每个训练序列只注意到源自同一底层文档的 token12711。这防止模型被跨文档信号干扰——后者可能引入虚假的注意力模式并损害长程表现。

长上下文训练基础设施。为把模型扩展到 65K token 的上下文窗口,我们采用 8 路 上下文并行(context parallelism, CP),使每个设备处理每个训练实例中的 8K token。我们采用 11 引入的基于 all-gather 的 CP 注意力策略,它使支持不规则注意力掩码(包括滑动窗口和文档内掩码)变得直接。并行配置、基础设施细节和吞吐测量见附录表。

模型汤。在 Olmo 3 Base 32B 融合中训练运行带来表现提升之后,我们也试验了对长上下文 checkpoint 做平均。这次不是用不同种子多跑几次长上下文扩展,而是融合扩展运行末尾的最后三个 checkpoint(步 10,000、11,000 和 11,921),得到最终的长上下文 Olmo 3 Base 32B。

3.7 基座模型结果

表 13:Olmo 3 与开源基座模型在预训练、中训练和长上下文各阶段的结果对比。撰稿时,Marin 已经历学习率冷却(Mantis),但尚未做长上下文(LC)扩展阶段。Apertus 也有两段式冷却(Phase 4 和 5),并通过在 Phase 5 训练中混入数据来执行长上下文扩展。Token 计数按「累计训练 token」呈现,因此每一行表示该模型在训练中截至该点所见的 token 数。对 OLMo 2 和 Olmo 3 模型,阶段一是标准预训练阶段,阶段二是中训练,阶段三是 LC 扩展。

模型 Token 数 Math Code MC-STEM MC-NonSTEM GenQA Minerva GenXL MMLU BCB
7B 规模
OLMo 2 7B 阶段一 4T 12.7 7.1 61.0 70.6 68.6 5.6 15.8 59.8 81.6
OLMo 2 7B 阶段二 配方 1 4.05T 40.4 10.4 64.1 74.6 72.1 18.9 21.3 63.1 85.1
OLMo 2 7B 阶段二 配方 2 4.05T 41.4 10.4 64.3 74.9 71.8 18.7 21.0 63.8 85.8
OLMo 2 7B 阶段二 配方 3 4.05T 40.8 10.1 64.0 74.9 72.1 19.1 21.9 63.8 85.6
OLMo 2 7B 阶段二 模型汤 4.15T 41.7 10.4 64.6 75.2 72.4 19.1 21.2 63.7 85.7
Apertus 8B Phase 3 12T 19.2 9.9 61.1 68.4 68.3 7.3 19.0 58.3 81.4
Apertus 8B Phase 4 13.5T 26.0 16.2 65.1 73.8 69.7 10.8 30.5 63.3 86.8
Apertus 8B Phase 5 15T 29.3 19.0 66.7 75.0 70.1 12.9 31.0 65.0 88.6
Marin 8B Phoenix 11.1T 11.2 8.0 60.9 71.1 68.7 4.7 15.0 58.5 83.1
Marin 8B Starling 12.4T 40.5 20.8 68.3 78.7 75.7 23.2 36.2 67.8 89.1
Marin 8B Deeper Starling 12.7T 39.4 21.3 68.1 78.8 75.9 23.9 37.0 67.7 89.2
Olmo 3 7B 阶段一 5.9T 23.5 19.8 64.0 71.9 68.5 12.2 34.7 62.3 84.8
Olmo 3 7B 阶段二 6T 59.8 31.9 67.2 78.2 71.3 41.4 49.1 66.9 89.7
Olmo 3 7B 阶段三 6.05T 54.4 30.6 66.4 78.2 72.5 39.8 43.6 66.9 89.2
32B 规模
OLMo 2 32B 阶段一 6.5T 33.2 16.0 73.0 81.7 75.8 13.6 29.2 72.3 93.5
OLMo 2 32B 阶段二 配方 1 6.6T 51.6 19.9 75.1 84.5 78.5 30.3 36.8 75.5 94.8
OLMo 2 32B 阶段二 配方 2 6.6T 51.9 20.0 74.1 83.8 79.1 30.7 35.2 74.0 94.1
OLMo 2 32B 阶段二 配方 3 6.6T 51.5 19.6 74.4 83.6 79.0 29.2 35.7 74.3 93.8
OLMo 2 32B 阶段二 配方 4 6.8T 51.9 19.2 74.6 83.3 78.3 31.0 37.1 74.3 94.0
OLMo 2 32B 阶段二 模型汤 7.1T 53.9 20.5 75.3 84.2 79.1 31.0 37.1 75.0 94.4
Apertus 70B Phase 3 12T 34.2 17.8 68.6 78.2 74.6 13.4 31.9 67.3 88.8
Apertus 70B Phase 4 13.5T 39.8 21.5 70.5 79.5 75.8 16.3 34.8 69.5 91.0
Apertus 70B Phase 5 15T 40.6 23.0 70.5 79.4 75.5 17.5 37.7 69.3 91.4
K2 V2 70B Pretrain 12.3T 46.1 35.4 75.6 83.5 77.1 27.2 54.5 75.2 93.0
K2 V2 70B 阶段一 14.0T 60.1 37.4 74.9 84.2 69.4 38.6 56.3 74.9 93.1
K2 V2 70B 阶段二 14.6T 60.9 36.6 75.0 84.1 71.8 38.6 55.9 74.7 92.9
K2 V2 70B 阶段三 14.8T 69.5 38.0 76.1 84.1 75.3 47.9 58.5 75.5 93.3
K2 V2 70B 阶段四 15T 72.8 38.3 75.7 84.0 75.6 50.0 55.7 75.6 93.5
Marin 32B Phase 3 5.4T 25.8 13.9 70.4 80.2 75.1 9.7 19.6 69.5 90.8
Marin 32B Mantis 6.5T 49.3 30.8 75.9 84.5 80.3 36.8 52.1 75.7 93.4
Olmo 3 32B 阶段一 5.5T 48.4 29.8 72.3 80.6 76.1 26.7 47.8 71.7 92.6
Olmo 3 32B 阶段二 配方 1 5.6T 66.8 38.4 74.6 85.6 78.9 46.5 59.6 75.9 94.7
Olmo 3 32B 阶段二 配方 2 5.6T 65.4 39.3 74.8 85.0 78.9 44.1 60.0 76.3 94.3
Olmo 3 32B 阶段二 模型汤 5.7T 69.7 39.7 75.6 85.7 79.4 46.9 59.7 76.9 95.0
Olmo 3 32B 阶段三 6.2T 61.4 39.7 74.3 85.6 79.7 42.9 59.4 76.2 94.8

译注:加粗为各规模档内的最优值;左侧五列是 OlmoBaseEval 的聚合分数,右侧四列是选出的单项基准。表中「Olmo 3 32B 阶段二 模型汤」这一行不是最终发布的基座——最终发布的是在其上继续做长上下文扩展的「阶段三」。

表 13 中我们勾勒出 Olmo 3 Base 在预训练、中训练和长上下文扩展各阶段之后的结果,并与其他开源基座模型对比。相比 OLMo 2,Olmo 3 模型在科学、数学和代码类评测指标上呈现明显改进——我们主要将其归因于预训练和中训练阶段对 STEM 相关数据的侧重与上采样。另一方面,也正因为这种对 STEM 的侧重,我们在通用知识基准上看到轻微退化。

译注:一个值得注意的现象是长上下文扩展的回退代价。7B 从阶段二到阶段三,Math 从 59.8 掉到 54.4、GenXL 从 49.1 掉到 43.6;32B 的 Math 从 69.7 掉到 61.4。换句话说,65K 上下文这项能力是用数学和长文生成能力换来的。论文正文没有专门讨论这一点,但阶段二/阶段三两行并排放着,数字本身说得很清楚。

4 Olmo 3 Think

我们训练 Olmo 3 Think 的方式是让它先生成延展的思考序列、再产出最终答案(图 2)。为此我们整理高质量推理数据(Dolci-Think),运用三阶段训练配方(SFT、DPO 和 RLVR),并引入 OlmoRL 方法——它把我们新的算法与工程进展,与一个强有力的可验证奖励强化学习社区研究平台融合在一起。

通过这些数据、训练和算法创新,Olmo 3 Think 在数学、编码、推理和通用对话上取得强表现。在 32B 规模上,它是最好的完全开放思考模型,超过 Qwen 2.5 32B、Gemma 2 和 3 27B,并在 FLOPs 更少的前提下缩小了与 Qwen 3 32B 这类顶尖开源权重系统的差距(表 14)。

  1. 数据:Dolci-Think。在已有开源数据集12873129 等工作的基础上,我们引入 Dolci-Think-SFTDolci-Think-DPODolci-Think-RL——一批面向数学、编码、指令遵循和通用对话等广泛关键能力的前沿后训练数据集。数据集包含用于监督微调的带长思考轨迹的合成样例、用于通过偏好优化做对比学习的高对比配对数据,以及跨多样领域的高难度强化学习提示词。数据整理流水线见图 15。
  2. 三阶段训练配方。我们采用由 监督微调(SFT)、经由 DPO 的偏好微调、再到可验证奖励强化学习(RLVR)构成的三阶段后训练过程。我们在这三个阶段上都观察到一致的增益,展示了细致数据整理、算法精化和基础设施开发的影响力。这与近期大多数开源思考模型的工作形成对比——后者通常只采用这几个训练阶段中的一部分。130 举例来说,我们发现我们的 RL 框架在 DPO 对比学习之后施加,比直接跟在 SFT 之后带来更大的改进(图 19)。
  3. OlmoRL。我们提出 OlmoRL,我们的 RL 训练方法,它建立在 GRPO 之上、并用近期工作的改进加以扩展。此外我们把可验证推理扩展到多个领域,超出以往工作通常探索的数学和代码设定。OlmoRL 使跨多样领域的更长、更稳定的 RL 运行成为可能,并提升训练周期的整体效率(§4.3)。

4.1 Olmo 3 Think 主结果

4.1.1 评测细节

我们建立一套基准,用于在数学、推理、编码、精确指令遵循、问答、知识回忆和通用对话上评测 Olmo 3 后训练模型。我们在 OLMo 215 的评测套件基础上扩展,加入新的更高难度基准,并移除已饱和或噪声大的基准。我们的评测基准及其任务配置与指标见表 16。

我们在所有基线模型(含思考模型和指令模型)之间建立统一的标准评测配置以简化对比。具体来说,我们遵循 1311327 使用 32K 最大上下文长度、采样温度 0.6、top-p 0.95。注意有些模型在更高的推理预算下可能表现更好,例如 K2 V214 使用 128K 序列长度。

用推理模型做评测既计算昂贵又常常方差很大。在我们于 7B 模型的各个版本上开发配方的过程中——也就是最终模型的超参扫描之前——我们发现评测消耗了计算预算的 10% 到 20%。汇编结果时,我们对套件中每一项评测都测量方差,做法是取 14 个模型(包括基线和我们的最终模型)各 3 次运行的标准差的均值。通过先取每个模型的方差、再取每项评测的平均方差,我们可以按方差给评测分桶:

  • 高方差:GPQA 1.4798,AlpacaEval 3 1.2406,IFEval 0.8835。
  • 稳定:ZebraLogic 0.5638,Omega 0.5579,AIME 24(Avg@32)0.5437,HumanEvalPlus 0.4615,AgiEval 0.4339,BigBenchHard 0.3866。
  • 非常稳定:LiveCodeBench(Avg@10)0.2852,MBPPPlus 0.2749,MATH 0.2522,MMLU 0.2219,PopQA 0.1554。

译注:表 16(Olmo 3 对话评测套件的任务细节)是配置说明表,逐项列出各基准的任务格式、采样次数和指标定义。按本文范围只保留表题,不做转换。

4.1.2 主结果

表 14:旗舰模型 Olmo 3 Think 32B 在后训练评测套件上的结果。Olmo 3.1 Think 32B 是 32B 规模最好的完全开放模型。

技能 / 基准 SFT DPO Think 3.0 终版 Think 3.1 终版 Qwen 3 32B Qwen 3 VL 32B Think DS-R1 32B K2-V2 70B Instruct
数学
MATH 95.6 95.9 96.1 96.2 95.4 96.7 92.6 94.5
AIME 2024 73.5 76.0 76.8 80.6 80.8 86.3 70.3 78.4
AIME 2025 66.2 70.7 72.5 78.1 70.9 78.8 56.3 70.3
OMEGA 43.1 45.2 50.6 53.4 47.7 50.8 38.9 46.1
推理
BigBenchHard 88.8 89.1 89.8 88.6 90.6 91.1 89.7 87.6
ZebraLogic 70.5 74.5 76.0 80.1 88.3 96.1 69.4 79.2
AGI Eval English 85.9 87.8 88.2 88.8 90.0 92.2 88.1 89.6
编码
HumanEvalPlus 90.0 91.6 91.4 91.5 91.2 90.6 92.3 88.0
MBPP+ 66.7 67.2 68.0 68.3 70.6 66.2 70.1 66.0
LiveCodeBench v3 75.8 81.9 83.5 83.3 90.2 84.8 79.5 78.4
指令遵循
IFEval 83.9 80.6 89.0 93.8 86.5 85.5 78.7 68.7
IFBench 37.0 34.4 47.6 68.1 37.3 55.1 23.8 46.3
知识与 QA
MMLU 85.3 85.2 85.4 86.4 88.8 90.1 88.0 88.4
PopQA 33.1 37.0 31.9 30.9 30.7 32.2 26.7 32.2
GPQA 55.7 57.6 58.1 56.7 67.3 67.4 61.8 64.0
对话
AlpacaEval 2 LC 69.1 78.6 74.2 69.1 75.6 80.9 26.2
安全 64.8 65.3 68.8 83.6 69.0 82.7 63.6 88.5

表 15:Olmo 3 Think 7B 在后训练评测套件上的结果概览。所有数字均由我们自行运行获得。

技能 / 基准 SFT DPO Think 终版 OpenThinker3 7B Nemotron Nano 9B v2 DS-R1 Qwen 7B Qwen 3 8B Qwen 3 VL 8B Think OR Nemotron 7B
数学
MATH 94.4 92.4 95.1 94.5 94.4 87.9 95.1 95.2 94.6
AIME 2024 69.6 74.6 71.6 67.7 72.1 54.9 74.0 70.9 77.0
AIME 2025 57.6 62.7 64.6 57.2 58.9 40.2 67.8 61.5 73.1
OMEGA 37.8 40.5 45.0 38.4 42.4 28.5 43.4 38.1 43.2
推理
BigBenchHard 84.1 83.7 86.6 77.1 86.2 73.5 84.4 86.8 81.3
ZebraLogic 57.9 60.6 66.5 34.9 60.8 26.1 85.2 91.2 22.4
AGI Eval English 77.2 79.1 81.5 78.6 83.1 69.5 87.0 90.1 81.4
编码
HumanEvalPlus 88.2 91.4 89.9 87.4 89.7 83.0 80.2 83.7 89.7
MBPP+ 63.2 63.0 64.7 61.4 66.1 63.5 69.1 63.0 61.2
LiveCodeBench v3 67.8 75.1 75.2 68.0 83.4 58.8 86.2 85.5 82.3
指令遵循
IFEval 77.9 75.9 88.2 51.7 86.0 59.6 87.4 85.5 42.5
IFBench 30.0 28.3 41.6 23.0 34.6 16.7 37.1 40.4 23.4
知识与 QA
MMLU 74.9 74.8 77.8 77.4 84.3 67.9 85.4 86.5 80.7
PopQA 20.8 24.7 23.7 18.0 17.9 12.8 24.3 29.3 14.5
GPQA 45.8 48.6 46.2 47.6 56.2 54.4 57.7 61.5 56.6
对话
AlpacaEval 2 LC 43.9 50.6 52.1 24.0 58.0 7.7 60.5 73.5 8.6
安全 65.8 67.7 70.7 31.6 72.1 54.0 68.3 82.9 30.3

表 14 和表 15 展示 Olmo 3 Think 在不同训练阶段的表现,并与我们基准上相近规模的其他基线做对比。133 如前所述,Olmo 3 Think 32B 是 32B 规模最好的完全开放模型,超过包括 Gemma 2 27B、Gemma 3 27B 和 Qwen 2.5 32B-Instruct 在内的其他模型。它在训练 token 少 6 倍的前提下,缩小了与该规模最好的开源权重模型 Qwen 3 和 Qwen 3VL 的差距。类似地,Olmo 3 Think 7B 超过 OpenReasoning Nemotron 7B、DeepSeek-R1-Distill-Qwen-7B 和 OpenThinker-7B 这几个最好的开源权重思考模型。此外,尽管尺寸更小,它的表现与 Nemotron-Nano-9B-v2 相当。在 7B 规模上,它在知识类任务上落后于 Qwen 3 系列——我们认为这主要是因为 Qwen 3 模型是通过从 Qwen 最大模型蒸馏训练出来的。

值得一提的是,我们引入 Olmo 3.1 Think 32B 来说明:通过在 Dolci-Think-RL 数据集上跑更多轮次,延长 OlmoRL 训练能带来表现提升。134 我们在数学、推理和指令遵循基准上观察到实质改进,包括 AIME 上 4 分以上、ZebraLogic 上 4 分、IFEval 上 4 分、IFBench 上 20 分的增益,说明额外的 RL 训练改进了模型的推理能力。大多数其他基准基本保持不变,例外是 AlpacaEval——我们在那里观察到 5 分的下降。

4.2 用 Dolci-Think-SFT 做监督微调

这一阶段我们构造 Dolci-Think-SFT,一份用于微调基座模型、使其产出支撑准确回答的显式思考轨迹的资源。这个监督微调步骤对较小模型尤其有影响力,为获取强推理能力提供了一种高效机制。下面我们详述 Dolci-Think-SFT 的数据整理流水线(图 15)。

图 15:Olmo 3 全部后训练阶段的数据流水线。
图 15:Olmo 3 全部后训练阶段的数据流水线。

图 15:Olmo 3 全部后训练阶段的数据流水线。我们在 SFT、DPO 和 RL 之间共用大部分步骤,以确保质量一致。

4.2.1 Dolci-Think-SFT:数据整理

为整理 Dolci-Think-SFT,我们从其他开源工作(例如 128129)汇编一批覆盖多样技能的大规模提示词集合,做大幅过滤,然后为其补全合成生成推理轨迹。Dolci-Think-SFT 数据混合的概览见表 17,具体描述如下。

表 17:Olmo 3 Think SFT 提示词来源。带 ^ 号的表示我们把已有提示词数据集与新数据结合、或对已有提示词生成了新回复。

类别 提示词数据集 7B 条数 32B 条数 出处
对话与精确指令遵循 WildChat 83,054 76,209 55
OpenAssistant 6,800 6,647 135
Dolci Think Persona Precise IF 223,123 220,530
Dolci Think Precise IF 135,792 135,722
数学 Dolci Think OpenThoughts 3+ Math ^ 752,997 752,997 128
Dolci Think OpenThoughts 3+ STEM ^ 99,269 99,268 128
SYNTHETIC-2-SFT-Verified 104,569 104,548 129
编码 Nemotron Post-Training Code 113,777 113,777 136
Dolci Think OpenThoughts 3+ Code ^ 88,900 88,899 128
Dolci Think Python Algorithms ^ 466,677 466,676
安全 CoCoNot 10,227 9,549 137
WildGuardMix 38,315 36,673 138
WildJailbreak 41,100 40,002 139
多语 Aya 98,597 97,156 140
其他 TableGPT 4,981 4,973 141
Olmo Identity Prompts 290 290
合计 2,268,468 2,253,916

第 1 步:获取提示词并生成推理轨迹

  • 数学。我们从 OpenThoughts3128 和 SYNTHETIC-2129 的数学子集获取提示词。对 OpenThoughts3 提示词,我们使用全部可用的数学提示词(保留原始的 16 倍重复)和带完整解法的可用推理轨迹。对不完整的轨迹,我们用 QwQ-32B(原始补全所用的模型)和与 OpenThoughts3 相同的生成设置重新生成完整推理链和解法,只是把上限从原来的 16K 提到 32K token。重新生成后仍不完整的样例一律丢弃。对 SYNTHETIC-2,我们直接取已验证子集的补全。
  • 代码。我们从不同来源收集代码提示词并为它们生成补全。为创建 Dolci-Think Python Algorithms,我们从 AceCoder142、The Algorithms 的 Python 子集143、Llama Nemotron Post-training144 和 OpenCodeReasoning91 获取提示词,然后用 QwQ-32B 为每条提示词生成至多 16 条回复,再用 GPT-4.1 合成生成的测试用例过滤正确性。对 OpenThoughts 3 的代码提示词,我们把每条提示词下采样到至多 16 次,并为所有不完整样例重新生成完整回复。我们把 Dolci-Think Python Algorithms 与 OpenThoughts3 的代码提示词合并,下采样到 16 次重复,并为不完整的重新生成补全。
  • 对话与安全。我们从 Tülu 373 的 WildChat55 子集、以及 Tülu 3 未使用的 WildChat 提示词、还有 Tülu 3 的 OpenAssistant135 子集获取对话提示词。安全方面我们复用 Tülu 3 使用的安全提示词。然后我们用 DeepSeek R1131 生成推理轨迹和补全。
  • 精确指令遵循。我们从整体 Tülu 3 混合中获取精确 IF 提示词,并加入来自 145 的额外可验证约束。我们也像 Tülu 3 那样重新生成 Persona IF 提示词,但人设取自 146。然后我们用 QwQ-32B 为每条提示词生成回复,并用与每项约束关联的验证器验证回复,只保留正确的。
  • 科学与其他。我们从 OpenThoughts3 的科学子集获取科学提示词。其他数据来源方面,我们纳入 Tülu 3 中用于数据转换的 TableGPT141 子集,以及用于对话和基础多语能力的 Aya140。我们像对数学和代码子集那样重新生成 OpenThoughts3 中不完整的回复,并用 DeepSeek R1 为其他数据集生成带推理链的回复。

第 2 步:过滤

我们对收集和生成的数据施加广泛的过滤。

  • 启发式过滤。我们过滤掉具有以下特征的样例:(1)非商业或许可证不明;(2)推理链不完整;(3)领域特定的不准确(即验证指令遵循数据的约束遵从性、或对代码补全执行测试用例);(4)提及其他模型开发方和日期截止点;(5)过度重复;(6)推理链中出现过量汉字或中国政治价值观表述。
  • 主题过滤。我们用 OpenAI 的查询分类法147 按主题对数据集分类,发现从 WildChat 中过滤掉并下采样与我们模型无关的主题(例如生成图像的请求、过多的基础寒暄)能定性地改进模型行为。148

第 3 步:数据混合。数据混合方面,我们遵循与中训练一节(§3.5)所述类似的方法论做并行数据收集,遵守共享的数据混合标准并执行多轮集成测试。更具体地说,我们用一个小的「基线」混合做细致实验,它由取自我们扩展版 OpenThoughts 3 数据集的 10 万条样例构成。我们发现这个基线混合在关键推理基准上已经足够有性能、可以作为强基线,同时相比在完整混合上训练节省了大量计算。然后我们在「基线混合 + 每个类别至多 10 万条训练样例(不做上采样)」上分别训练模型,观察对评测套件的影响。如表 18 所示,我们总体发现每个数据集至少在一项评测上有帮助,因此最终混合包含我们测试过的每个数据集的至少一部分。

第 4 步:去污染。我们遵循 Tülu 3 去污染程序与工具包73 的推荐设置,过滤掉全部后训练数据(全部三个阶段)中与评测集匹配的部分。我们用 8-gram 匹配、重叠阈值 0.5(即测试实例中至少 50% 的 n-gram 与某个训练实例匹配)做过滤。我们开发了额外的启发式规则来缓解误报:(1)忽略任务无关文本块(例如常见通用短语)的匹配,无关性按任务基于人工检查判定;(2)尤其在数学数据集中,忽略那些大部分 token 长度为 1(通常是数学符号)的 n-gram 匹配。

表 18:思考 SFT 混合消融的结果,在一个内部 OLMo 2 长上下文基座模型之上进行。CHE = Codex HumanEval,AE = AlpacaEval 2 LC。

名称 均值 MMLU BBH GPQA Zebra MATH CHE MBPP AE IFEval
基线混合 39.2 52.4 48.7 31.0 21.0 74.6 35.4 34.7 19.0 35.7
基线 + Aya 41.9 54.4 55.7 33.9 22.7 74.0 30.5 36.0 30.2 39.6
基线 + WildChat 和 OAsst 44.2 58.3 53.3 31.7 25.8 74.0 28.7 38.4 38.5 48.8
基线 + Persona IF 45.9 64.1 55.1 31.3 25.1 74.5 25.0 33.9 34.2 70.4
基线 + Safety 40.9 53.8 49.7 30.1 22.0 74.2 31.7 33.1 33.0 40.9
基线 + Synthetic 2 47.3 66.5 54.0 35.5 27.8 82.0 39.6 39.7 26.9 53.4
基线代码换成 Nemotron Code 34.5 48.6 43.4 33.0 19.3 74.4 22.6 26.2 16.6 26.6
基线代码换成 Dolci Python Algorithms 36.9 48.0 47.2 33.0 15.9 72.1 30.5 37.8 18.1 29.4

4.2.2 训练

监督微调方面,我们从 open-instruct 切换到 OLMo-core,训练吞吐提高了 8 倍。我们把所有模型训练两个 epoch 以避免过拟合,并做学习率扫描以基于评测套件挑出最佳候选 checkpoint。然后我们用一组定性的「体感测试」问题测试每个候选 checkpoint,作为最终 checkpoint 选择的依据。最后我们探索模型汤149150,我们最终的思考 SFT checkpoint 是两个不同学习率训练出的 checkpoint 的线性加权融合,用 mergekit151 完成。

4.3 用 Delta Learning 做偏好微调

通用后训练的既往工作主要把偏好微调定位为改进与人类价值观和偏好对齐的手段73152。因此近期构建能力导向思考模型的努力12891 大多没有纳入偏好微调(一个例外是 SmolLM317)。我们把偏好微调重新设想为一个对比学习阶段,它驱动的能力增益超出 SFT 单独所能提供的范围。我们引入 Dolci-Think-DPO,一份包含具有清晰能力差(delta)的补全配对的偏好数据集。我们利用这些相对对比,通过偏好优化增强模型的推理能力,把 Delta Learning20 的思想加以延展。

具体来说,我们发现在 Qwen3 32B(少数几个开源思考模型之一)生成的思考轨迹上做进一步监督微调,会直接损害 Olmo 3 Think SFT 的表现——说明我们在模仿学习上正在接近饱和。为从这些如今已失效的补全中提取出有用的训练信号,我们运用 Delta Learning 的原则,把这些补全与更差的回复配对20;最小化被拒绝补全的质量(从而增大质量差)能为偏好微调产出有用的对比信号。

带着这些洞见,我们构造 Dolci-Think-DPO,用它在广泛的基准上改进模型表现。我们用 直接偏好优化(DPO)153 在成对数据上训练。

Delta Learning。delta learning 背后的直觉是:偏好数据的质量主要取决于被选中回复与被拒绝回复之间差值的质量,而不是任一回复自身的质量。通过构造展现能力相关对比、且满足 $y_c \succ y_r$ 的偏好三元组 $(x, y_c, y_r)$,即便在 $y_c$ 上做监督微调没有帮助甚至主动有害,调优使模型偏好 $y_c$ 胜过 $y_r$ 仍能改进模型20154155

4.3.1 Dolci-Think-DPO:偏好数据创建

为构造 Dolci-Think-DPO,我们汇编一大批覆盖广泛数据集和技能的提示词池(见表 19),并合成展现能力差的被选中回复和被拒绝回复。遵循 delta learning 的启发式20,对每条提示词 $x$,我们直接从一个模型(Qwen 3 32B,思考模式)解码出被选中补全 $y_c$、从一个整体更弱的模型(Qwen 3 0.6B,思考模式)解码出被拒绝补全 $y_r$,以构造一致的对比。156

表 19:Olmo 3 Think DPO 提示词来源

类别 提示词数据集 DPO 使用的提示词数 出处
对话与精确指令遵循 WildChat 40,701 55
Dolci Instruct Precise IF 19,365
Persona IF 3,486 73
OpenAssistant 1,762 135
数学 Persona MATH 10,657 73
Persona Algebra 1,417 73
Persona GSM 3,681 73
OpenMathInstruct 2 3,615 157
编码 Dolci Instruct Python Algorithms 13,236
Persona Python 2,514 158
Evol CodeAlpaca 7,634 159
安全 CoCoNot 927 137
WildGuardMix 5,338 138
WildJailbreak 5,616 139
科学 SciRiff 2,253 160
OpenThoughts3 Science 19,023 128
多语 Aya 4,078 140
其他 TableGPT 1,170 141
FLAN 19,660 74
未在 SFT 中使用 DaringAnteater 1,089 161
UltraFeedback 32,778 162
合计 200,000

第 1 步:获取提示词与对比补全。Olmo 3 Think 聚焦推理能力;因此我们通过配对推理能力不同的模型的补全,构造在推理质量上有 delta 的配对2017163。我们的提示词池派生自 Dolci-Instruct-SFT 数据集,并补充了 OLMo 2 7B 偏好数据集中的 DaringAnteater161 和 UltraFeedback162 子集。

第 2 步:过滤。我们对所有被选中回复施加与 SFT 阶段(§4.2.1)所述相同的主题过滤和启发式模型身份过滤。我们不过滤被拒绝回复,直觉是一个错误的被拒绝回复可能引出有用的对比。我们进一步对所有提示词做针对评测套件的去污染。

第 3 步:混合。用长推理轨迹做实验比用非思考补全昂贵得多。为得到 Dolci-Think-DPO 的最终提示词混合,我们借用在非思考补全提示词上做的混合实验(细节见 §5)。具体来说,我们从 Olmo 3 Instruct 实验中选出表现最好的三个提示词分布,用 Qwen 模型的思考版本为这些提示词生成被选中和被拒绝回复,以引出推理质量上的 delta。我们选择实验中经验表现最好的混合作为最终 DPO 数据池。

4.3.2 训练

我们遵循既往工作73 把所有模型训练一个 epoch,扫描学习率和数据集大小以基于评测套件识别最佳候选 checkpoint。数据集大小是一个重要超参,因为我们观察到早停对高性能的偏好微调很重要;相关的动机性结果见我们在 Instruct 模型上的数据混合实验(§5.3.2)。除评测套件之外,我们还用与 SFT 训练相同的「体感测试」检查每个 checkpoint,以定性评估模型行为。

4.4 用 OlmoRL 做强化学习:锦上添花的一笔

后训练的第三阶段是强化学习,跨多样领域混合使用可验证奖励和 LM 评判奖励。我们引入 OlmoRL,它包含我们的算法以及与之紧密交织的工程基础设施,用于应对长推理轨迹下强化学习的挑战,并把 RLVR 扩展到覆盖更广泛的可验证任务。我们同时发布 Dolci-Think-RL——一个横跨数学、编码、指令遵循和通用对话四个领域、约 10 万条提示词的大规模多样数据集——以支撑在多样推理任务上稳健的强化学习,同时维持通用效用。

图 16:可验证与不可验证任务的验证器与奖励设计。
图 16:可验证与不可验证任务的验证器与奖励设计。

图 16:面向可验证与不可验证任务的验证器与奖励设计

4.4.1 OlmoRL 算法细节

我们的强化学习阶段由 OlmoRL 驱动,这套方法建立在 群组相对策略优化(GRPO)164 之上,并整合了若干近期算法进展。特别地,我们采纳了 DAPO165 和 Dr GRPO24 等工作166167 的改进。RLVR 的核心目标是最大化模型在给定提示词 $x$ 下生成回复 $y$ 的期望奖励,其中由一个验证器检查回复 $y$ 是否与 $x$ 关联的真值答案相符。

我们在原版 GRPO 之上做了以下改进:168

  • 零梯度信号过滤。我们移除那些奖励全部相同的实例组(即优势标准差为零的批次),以避免在提供零梯度的样本上训练,做法类似 DAPO165
  • 主动采样(active sampling)。我们用一个新颖、更高效的动态采样165 版本,在零梯度过滤的前提下维持一致的批大小,细节见 §4.4.3。
  • token 级损失。我们使用 token 级损失,按整个批次的 token 总数(而非按样本)归一化损失165,以避免长度偏置。
  • 不用 KL 损失。我们按常见做法9916524 移除 KL 损失,因为这允许限制更少的策略更新,而移除它不会导致过优化或训练失稳。
  • Clip higher。我们把损失中的上界裁剪项设成略高于下界的值,以允许 token 上的更大更新,做法源自 165
  • 截断重要性采样。为校正推理引擎与训练引擎之间的 对数概率差异,我们把损失乘以截断重要性采样比,遵循 166
  • 不做标准差归一化。计算优势时我们不按组的标准差归一化,遵循 24。这消除了一种难度偏置——奖励标准差低的问题(例如太难或太易)会因为归一化项而使其优势被显著放大。

OlmoRL 目标函数。我们最终的目标函数包含 $\textcolor{#115257}{\text{token 级损失}}$、$\textcolor{#f0529c}{\text{截断重要性采样}}$、$\textcolor{#0fcb8c}{\text{clip-higher}}$,以及$\textcolor{#b11be8}{\text{优势计算中不含标准差}}$:

$$ \begin{aligned} \mathcal{J}(\theta) &= \textcolor{#115257}{\frac{1}{\sum_{i=1}^{G} |y_i|} \sum_{i=1}^{G} \sum_{t=1}^{|y_i|}} \textcolor{#f0529c}{\min\!\Big( \frac{\pi\!\left(y_{i,t}\mid x, y_{i,其中 $r_{i,t}=\frac{\pi\left(y_{i,t} \mid x, y_{i,166,回复 $y_i$ 中第 $t$ 个 token 的优势 $A_{i,t}$ 在组 $G$ 内基于组内各输出的相对奖励计算:

$$ \textcolor{#b11be8}{A_{i,t}=\left(r\left(x, y_i\right)-\operatorname{mean}\left(\left\{r\left(x, y_i\right)\right\}_{i=1}^G\right)\right)} $$

$r\left(x, y_i\right)$ 是对应验证器返回的奖励分数。

译注:公式中的配色沿用原文:深青为 token 级损失的归一化项,粉色为截断重要性采样因子,紫色为去掉标准差的优势,绿色为放宽的上界裁剪参数。这四处正是 OlmoRL 相对原版 GRPO 的全部形式差异,其余部分与 GRPO 一致。

验证器。我们把可验证奖励从 OLMo 2 的数学领域扩展到通用领域。每个领域我们使用不同的定制验证器(见图 16):

  • 数学。我们用基于规则的验证器,做基本规范化后用 SymPy 与参考答案对比以判定答案正确性。若判定答案与参考答案相同则返回 1,否则返回 0。
  • 代码。我们用基于测试用例的验证器,对回复运行一组测试用例。我们试验了两种做法:(a)用通过的测试用例百分比作为奖励;(b)回复通过全部测试用例时返回 1,否则返回 0。169
  • 指令遵循。我们把回复送入一组函数,检查其对提示词中一系列约束的遵从。全部约束满足则赋予奖励 1,否则为 0。
  • 对话——有参考。对有真值回复的任务,我们把回复送给一个 LM 评判者,让它把模型回复与提供的参考答案对比,并基于回复质量给出 [0, 1] 区间的分数。
  • 对话——开放式。我们把回复送给一个 LM 评判者,让它在没有任何参考答案的情况下基于回复质量给出 [0, 1] 区间的分数。170

4.4.2 Dolci-Think-RL:整理一个前沿 RLVR 数据集

我们整理一个横跨数学、编码、指令遵循和通用对话四个领域、约 10 万条样本的大规模多样数据集,以支撑在多样推理任务上稳健的 RL,同时维持通用效用。每个领域关联一种可验证或不可验证的奖励信号(连续或二值),确保每条实例都能被自动检查正确性或总体质量(见图 16)。对所有领域,我们都特别注意来源的出处与许可。

表 20:Dolci-Think-RL 中用于 RL 训练的数据集拆分

类别 提示词数据集 Think RL 使用条数 Instruct RL 使用条数 出处
精确指令遵循 IF-RLVR 30,186 38,000 145
数学 Open-Reasoner-Zero 3,000 14,000 171
DAPO-Math 2,584 7,000 165
AceReason-Math 6,602 172
Polaris-Dataset 14,000 173
KlearReasoner-MathSub 3,000 9,000 174
OMEGA-train 15,000 20,000 175
编码 AceCoder 9,767 20,000 142
KlearReasoner-Code 8,040 174
Nemotron Post-training Code 2,303 136
SYNTHETIC-2 3,000 129
通用对话 Tulu 3 SFT 7,129 18,955 73
Wildchat-4.8M 7,129 18,761
Multi-Subject RLVR 7,129 12,234 176
合计 104,869 171,950

第 1 步:获取提示词

  • 数学。我们合并社区整理的数学题目,包括 Open-Reasoner-Zero171、DAPO-Math165、AceReason-Math172、DeepScaler177、KlearReasoner-MathSub174 和 OMEGA175,覆盖代数、组合、数论和几何等广泛数学领域。
  • 编码。为构造代码的 RL 数据,我们需要(题目,测试用例)配对。我们整理一批多样的编码题提示词,包括 AceCoder142、Klear-Reasoner Code174、Nemotron Post-training Code136、SYNTHETIC-2 code129 和 Open-Code Reasoner91。Klear-Reasoner 和 SYNTHETIC-2 的测试用例直接使用。对其他数据集,我们把提示词过一遍如下合成数据流水线:(1)题目改写,(2)解法生成,(3)测试用例生成。生成这些三元组(题目、解法、测试用例)之后,我们对相应解法执行所有模型生成或改写的测试用例,保留解法通过率超过 80% 的样例,同时移除失败的测试用例。所得的过滤数据集提供了适合训练和实验代码 RL 方法的高质量(题目,测试用例)配对。AceCoder 提示词我们用函数补全格式,其他数据集都用 stdio 格式。
  • 指令遵循。我们使用 IF-RLVR145 中约束不超过 5 条的提示词,它们采样自 IFEval178 和 IFBench-Train145
  • 通用对话。我们从三个来源采样通用对话实例:(a)Tülu SFT73;(b)新的 WildChat-4.8M 数据179,包含用户与聊天机器人在模糊请求、语码转换、话题切换、政治辩论等场景下的广泛交互;(c)Multi-subject-RLVR 数据集176,由领域专家为考试目的撰写的大学水平英文题目和客观答案构成。对 WildChat,我们只从英文且不需要推理(如数学和代码)的实例中采样。对 Tülu,我们先用 GPT-4.1 改写样本以提升清晰度,并从 SFT 集中抽取参考答案。然后我们用一个在 OpenThoughts 2 上微调过的 Qwen 2.5 7B 模型对每条提示词生成 8 个样本,计算参考答案与每条回复之间的 F1 分数。我们移除所有平均 F1 分数 $<0.1$ 和 $>0.8$ 的样本,这同时剔除了噪声样本和过难样本。WildChat 尤其充斥大量角色扮演和其他角色类数据;为平衡数据,我们把任何单个角色的提及过滤到至多 10 条实例。180 最后我们做了一些事后人工过滤,移除以代码和数学为中心的提示词。

第 2 步:离线难度过滤。如前所述,为提升我们推理模型 RL 的样本效率,我们从待训练模型的初始 checkpoint 出发,为每条提示词生成 8 条 rollout(例如若从 DPO 训练的模型开始,就从 DPO checkpoint 生成)。然后我们移除所有模型能轻易解出的样本(即通过率大于 62.5% 的)。我们以温度 1.0、top-p 1.0 采样,与 RL 训练期间的采样方式一致。我们对 7B 的 Olmo 3 Think 使用离线过滤,滤掉对我们模型训练来说太容易的 RL 题目。对 32B,我们依赖主动采样——它只用非零 GRPO 组梯度的样本填充 RL 批次——并因计算和时间约束复用 7B DPO 过滤后的数据作为该模型的起点。

第 3 步:数据混合。开发数据混合和整体配方时,我们发现 RL 实验既耗时又计算昂贵,无法消融数据集与算法选择的完整空间。于是我们建立了这样一条流水线:(a)在中间 SFT checkpoint 上做数据集专项运行,观察前 500–1000 个 RL 步的下游评测趋势;(b)测试新算法改动时聚焦数学领域训练;(c)周期性跑整体混合实验以确保混合是稳定的。设置最终运行时,我们取最有希望的数据集,做离线过滤,并仔细混合以确保更高质量的数据集被上调权重、且每个领域使用的数据量大致相等(对数学和指令遵循略有侧重,因为在单数据集运行中训练这些领域似乎最有效)。此外,我们基于离线过滤结果,下采样 OMEGA 中模型格外吃力的某些子任务。181

我们用这条流水线为 7B 模型开发 RL 混合,然后因计算和时间约束把同一份数据混合用于 32B 模型。

对 Olmo 3 Think 7B 的训练运行,我们使用的是尚未加入 pipelineRL 和截断重要性采样的早期版本基础设施,耗时约 15 天。后来我们用更新的基础设施复现了同一次运行,仅用 6 天训练就达到相似表现。

4.4.3 open-instruct 中的 OlmoRL 基础设施

我们对强化学习基础设施做了实质改进,以处理更长序列并提升整体吞吐。在大语言模型的 RL 中,微调生成长序列的模型的关键技术挑战是管理推理——也叫 rollout。对最终模型,我们生成的 rollout 最大长度为 32K token,平均超过 10K token(推理模型)。推理主导了我们的计算开销:32B OlmoRL 推理模型用 8 个 H100 节点做训练、20 个节点做推理。鉴于自回归推理的成本,我们的 learner 有 75% 的时间在等数据,所以就 GPU 利用率而言,我们用于推理的算力大约是训练的 5 倍。事实上我们采用的是能把 learner 装进显存的最小分片配置,完全不优先考虑速度——这与监督学习设定截然不同。对 7B 推理模型,learner 的显存压力更小,情况更极端:我们用 7 个节点做推理、只有 2 个做 learner。鉴于 learner 同样很低的利用率,我们用于推理的算力大约是训练的 14 倍。我们怀疑 32B learner 的分片配置是次优的,预期未来工作能做得更好。

全异步训练。如图 17a 所示,我们采用一套 离策略 异步 RL设定182,特点是一个通过 DeepSpeed183 跨多节点分布的中心化 learner,加上一大池 actor,每个 actor 跑一个独立的 vLLM184 实例。learner 产出提示词,排队后分发给 actor;actor 执行提示词、与环境交互,并通过一个结果队列返回结果,learner 用它来更新模型参数。185 由于补全长度的方差,单个 RLVR 批次内各补全之间可能出现很长的时间差。缓解这个问题的指导原则是:高效利用资源(避免空转),以及让流程异步化。186

图 17a:分布式强化学习架构。
图 17a:分布式强化学习架构。

图 17b:静态批处理。
图 17b:静态批处理。

图 17c:连续批处理。
图 17c:连续批处理。

图 17:OlmoRL 基础设施概览。(a)分布式强化学习架构。(b)(c) 静态批处理 vs 连续批处理。当生成的序列长度可变时,静态批处理(b)浪费算力。粉色格子是预填充 token,绿色格子是解码 token,深绿代表 EOS。灰色表示该序列什么也没做,因此连续批处理(c)会立即回填已完成的行,从而没有算力浪费。

连续批处理。我们采用 连续批处理,在每条生成完成时不断入队新的生成,以消除长生成带来的算力浪费(见图 17)。这与静态批处理形成对比:后者把一批提示词切分到 $N$ 个 actor 上,每个 actor 生成整批187,把生成的回复返回给 learner,然后接收新一批数据。静态批处理是低效的,因为当一条生成完成时,该批次的那个「槽位」会一直空着直到我们拿到新一批。确切的算力浪费可以算作「(最大序列长度 − 平均序列长度)/ 最大序列长度」。在 Olmo 3 上,32K 生成长度下我们看到平均生成长度 14,628、最大 32K,这意味着用静态批处理会浪费掉高达 54% 的算力。

主动采样。为补偿被过滤掉的实例,我们的全异步框架支持持续从 actor 拉取补全、并把提示词重新采样进队列。我们主动采样并过滤,直到达到期望的非零梯度补全批大小。此前 165 的动态采样会超采样,生成三倍于每个训练批次所用提示词的数量,以合理保证批次中有足够多标准差非零的补全。相比之下,我们的主动采样更高效地利用了基础设施。如 §6 所示,我们发现这显著稳定了训练,并防止批大小在训练过程中缩水(原版 GRPO 的常见问题)。

Inflight 更新。大模型 RL 训练的一个共同目标是最小化 actor 策略与 learner 策略之间的差异程度,也就是尽量少地离策略188。这可以通过每个训练步之后同步权重来实现:每个 actor 完成所有进行中的生成,清空 KV 缓存,更新自己那份权重。然而这会导致 GPU 空转、损害训练效率。取而代之,我们遵循 167 立即更新权重而不暂停引擎,依赖生成框架的线程安全性继续生成,且不使 KV 缓存失效。这带来吞吐的显著提升:同等资源下最多快 4 倍,且不损害精度。

更好的线程与工程。这些改动主要围绕处理每个训练步之后的权重同步,让 actor 更高效。我们的新设定解耦了各 actor,允许每个 actor 自行启停,无需等待其余 actor 也完成同步。类似地,我们做了大量非机器学习特有的优化,重心在高效利用 CPU。举例来说,我们最初实现的连续批处理其实比静态批处理还慢——直到给 actor 加上一个不断填满推理队列的预取线程,才看到吞吐改进。

我们最终的 RL 运行是把各领域仔细过滤后的数据大致等量混合,并在 DPO checkpoint 之上运行。

4.5 关键发现

表 21:被选中与被拒绝回复之间的差值是关键的。直接在被选中回复上做监督微调会损害模型,而把同样这些回复用作偏好对中的被选中一方则带来实质增益。

名称 均值 MMLU BBH GPQA Zebra AGI AIME25 AIME24 CHE LCB IFEval
Qwen3 32B(被选中) 83.2 88.8 90.6 64.7 78.2 90.2 71.0 80.3 90.9 89.6 87.4
Qwen3 0.6B(被拒绝) 35.1 55.8 41.5 27.2 29.8 59.2 15.2 11.2 14.8 34.4 62.3
开发用 7B SFT checkpoint 70.3 76.1 83.9 45.1 56.5 76.4 58.8 71.0 88.1 67.0 79.7
在被选中回复上继续 SFT 64.5 72.6 80.2 40.2 49.8 73.9 52.8 61.0 83.4 55.1 76.0
Delta learning 72.9 75.5 82.8 48.4 60.9 79.7 66.3 75.7 91.5 72.6 75.2

表 22:Delta learning 为后续 RLVR 提供了比单靠 SFT 更强的初始化

名称 均值 MMLU BBH GPQA Zebra AGI AIME25 AIME24 CHE LCB IFEval
SFT 70.1 74.9 84.1 45.8 57.9 77.2 57.6 69.6 88.2 67.8 77.9
SFT + DPO 72.7 74.8 83.7 48.6 60.6 79.1 62.7 74.6 91.4 75.1 75.9
SFT + RLVR 71.9 77.4 83.2 42.7 63.1 78.5 62.4 70.0 87.9 70.7 82.8
SFT + DPO + RLVR 74.1 77.9 86.8 50.2 62.9 80.1 64.2 73.2 89.9 73.4 82.3

表 23:OlmoRL 核心基础设施改进的效果。我们从原始的 OLMo 2 RL 基础设施出发,依次加入每个组件并测量训练速度(token/秒)和利用率指标,以消融各组件的效果。加入 inflight 更新的改进最为剧烈。

配置 总 token 数(百万) token/秒 MFU (%) MBU (%)
OLMo 2 6.34 881 0.30 12.90
+ 连续批处理 7.02 975 0.33 14.29
+ 更好的线程 9.77 1358 0.46 19.89
+ inflight 更新(Olmo 3) 21.23 2949 1.01 43.21

图 18:Olmo 3 Think 7B 训练期间的奖励曲线。
图 18:Olmo 3 Think 7B 训练期间的奖励曲线。

图 18:Olmo 3 Think 7B 训练期间的奖励曲线。Olmo 3 Think 最终 RLVR 训练运行中,RL 训练全程的平均奖励、数学奖励、代码奖励和 IF 奖励。奖励在各领域上稳步增长,说明训练平顺。

图 19:用 DPO 作为 RLVR 的起点效果最好。
图 19:用 DPO 作为 RLVR 的起点效果最好。

图 19:用 DPO 作为 RLVR 的起点效果最好。从 Olmo 3 7B SFT 或 DPO 出发、用经 DPO 模型过滤的数据(w/ DPO data)或经 SFT 模型过滤的数据(w/ SFT data)训练时,RLVR 训练全程的 AlpacaEval、Omega-500 和 AIME 2025 表现。从 DPO 还是 SFT 出发的重要性取决于具体评测,但总体上从 DPO 出发更可取。

图 20a:在混合数据上训练防止过拟合。
图 20a:在混合数据上训练防止过拟合。

图 20b:带 delta learning 的 DPO 显示出比 SFT 更高的 pass@K 表现。
图 20b:带 delta learning 的 DPO 显示出比 SFT 更高的 pass@K 表现。

图 20:混合与 DPO 对下游指标的影响。(左)在混合数据上训练防止过拟合。我们绘制在 Olmo 3 Think SFT 7B 上仅用 IFEval 数据或用混合数据做 RL 训练时,全程的 IFEval 与 AlpacaEval 表现。在混合数据上训练达到相近的 IFEval 表现,同时维持高 AlpacaEval 表现。(右)带 delta learning 的 DPO 显示出比 SFT 更高的 pass@K 表现。我们绘制 SFT 与 DPO 思考模型在 AIME 2024 和 2025 上直到 K=32 的 pass@K。DPO 持续改进表现,即便在更高的 K 上也是如此。

图 21:单领域训练产出更高的训练奖励。
图 21:单领域训练产出更高的训练奖励。

图 21(续):IF 领域的训练奖励曲线。
图 21(续):IF 领域的训练奖励曲线。

图 21(续):数学领域的训练奖励曲线。
图 21(续):数学领域的训练奖励曲线。

图 21:单领域训练产出更高的训练奖励。我们绘制单领域与整体混合(即最终)训练运行在 RL 训练全程的训练奖励。每张图中,我们用只来自通用、IF、数学子集的数据对一个中间 SFT 模型做 RLVR 训练,并与在整体混合上训练做对比。虽然领域专项运行取得更高的训练奖励,但图 20 表明这未必带来更好的下游表现。

在同样的数据上,SFT 做不到的增益 DPO 能做到。直接在 Dolci-Think-DPO 的被选中回复上继续做监督微调会彻底损害初始 SFT 模型(表 21),所有评测任务全线下滑。我们推测这是因为这些被选中回复(由 Qwen3 32B Thinking 生成)相对模型在 Dolci-Think-SFT 中已经见过的数据更弱,因此不再是有用的模仿目标。然而,把这些被选中回复与一个更弱模型生成的被拒绝回复配对,我们就构造出了有用的对比,使偏好微调能够驱动超出初始 SFT 模型的强劲增益(表 21)。令人鼓舞的是,这些增益并非仅仅把 pass@k 转化为 pass@1,而是扩展了模型的推理边界(例如 AIME 评测上 pass@k 的改进,见图 20)。这些发现凸显了「带偏好微调的对比学习」即便在模仿已经饱和时也是一个改进能力的有用阶段。

DPO 和 SFT 都受益于 RL,但 DPO 仍是更好的起点。表 22 显示,把最终 RL 混合跑在 DPO 模型上,持续产出比跑在 SFT 模型上更好的表现。我们发现三处主要差异(图 19):对于 RL 无法改进的评测,DPO 模型往往表现更好,且在 RL 训练期间保持这一优势(例如 AlpacaEval);对于 RL 明确瞄准的评测(例如 Omega),DPO 和 SFT 模型达到相近的最终表现;对于 RL 瞄准但从 DPO 出发难以再改进的评测(例如 AIME 2025),SFT 模型会改进到接近 DPO 的水平。没有任何一种情形下 SFT 模型在 RL 之后超过 DPO 模型,因此我们选择在 DPO 模型之上施加 RL。

耐人寻味的是,我们发现 SFT 模型无论用 SFT 模型还是 DPO 模型离线过滤出的数据训练,表现都相似——这说明被 DPO 模型额外过滤掉(即已解出)的样本,并未为改进 SFT 模型提供额外信号。进一步探究后我们发现,虽然 DPO 模型确实呈现更低的熵,但它在 AIME 评测上的 pass@K 表现其实更高(图 20)。这说明相对 SFT 模型,DPO 模型仍是 RL 的强起点——既往工作189164 表明 RLVR 在特定条件下有助于把 pass@K 的改进转化为 pass@1 的增益。

RL 期间所有领域的奖励都稳步上升。图 18 绘制了逐验证器的奖励曲线以及平均输出长度。我们发现奖励在所有领域上稳步上升,尽管速率不同(指令遵循数据上升最稳,代码奖励上升最慢)。有趣的是,我们发现序列长度先略微下探、然后随时间缓慢增长。这大概是因为推理 SFT 和 DPO 已经把模型训练成产出长达 32K token 上限的长推理轨迹了。

混合来自多样领域的 RL 数据能防止过优化。图 20(左)表明,在特定领域上训练会导致过优化——该领域之外的评测表现下滑——而在混合上训练能在不同领域上产出稳步改进。举例来说,我们观察到只在 IFEval 上做 OlmoRL 时存在权衡:更高的 IFEval 分数与更低的 AlpacaEval 分数相关。然而做最终的混合训练时,我们能在不牺牲 IFEval 表现的前提下维持高 AlpacaEval 分数——因为 LM 评判奖励确保模型继续产出格式良好的对话回复。

混合数据产出更低的训练奖励,但下游表现并不更低。虽然图 20 表明我们最终的混合运行取得与单领域 RL 训练运行相当或更好的下游表现,我们却发现在混合数据上训练时,每个领域的训练奖励都更低(图 21)。这说明混合数据实际上可能降低模型在训练期间过优化的倾向,防止了一定程度的奖励作弊,从而更好地泛化到下游评测。这或许能解释为什么在更宽泛数据混合上的 RL 训练能胜过领域专用混合190

连续批处理和 inflight 更新对训练速度至关重要。用推理 SFT 或 DPO 作为起点会把 RL 训练推到极限,因为模型一开始就带着极长的平均生成长度。表 23 展示了连续批处理和 inflight 更新对训练速度何等关键——它让我们在一半的 GPU 上实现两倍快的训练,使实验和长 RL 运行更可行。191 为仔细基准测试这一点,我们消融了 OLMo 2 与 Olmo 3 之间 RL 基础设施的各项改动。每项消融我们用 2 个 8×A100 节点跑 2 小时的基准实验,一个节点训练、一个节点推理。由于推理是瓶颈,我们仅基于用于推理的那个节点报告模型 FLOPs 利用率(MFU)和模型带宽利用率(MBU)。典型的全规模实验会用多得多的推理节点,通常推理节点与训练节点的比例是 8:1 或更高。该基准实验每个训练步生成一批 128 条补全,用 64 条提示词、每条采样两次,最大输出长度 32000、最大输入长度 2048。

OlmoRL 在精确指令遵循上带来显著改进。精确指令遵循的表现在各后训练阶段持续上升,其中最终的 RL 训练阶段带来 Olmo 3 精确指令遵循能力上最大的改进——在开发用(IFEval)和未见(IFBench)两类评测上都是如此,见表 24。

表 24:IFEval 和 IFBench 上精确指令遵循结果汇总,覆盖 Olmo 3 Think 和 Olmo 3 Instruct 模型(7B 和 32B 两种尺寸)在后训练流水线各阶段的表现。

Think SFT Think DPO Think RL Instruct SFT Instruct DPO Instruct RL
7B 规模
IFEval 77.9 75.9 88.2 81.7 82.0 85.8
IFBench 30.0 28.3 41.6 27.4 29.3 32.3
32B 规模
IFEval 83.7 82.3 89.0(3.0)、93.8(3.1) 87.7 87.3 88.8
IFBench 37.0 34.4 47.6(3.0)、68.1(3.1) 29.7 36.3 39.7

5 Olmo 3 Instruct

近期研究表明,真实世界的语言模型使用主要集中在寻求建议和信息回忆这类通用任务上147,它们未必需要广泛的推理。日常对话场景往往不需要 Olmo 3 Think 那样的推理时扩展。因此我们开发 Olmo 3 Instruct,一个面向这些真实用例设计的非推理模型。Olmo 3 Instruct 能快速且有帮助地回应常见用户查询。

这种不同的模型类型需要不同的数据来支撑。我们通过引入多轮 DPO 数据、并在 delta learning 偏好微调流水线中推动简洁回复,来聚焦改进模型的交互性。此外,Olmo 3 Instruct 为函数调用做了训练,我们为此发布新的 SFT 数据集。总体上,我们的配方产出的 Olmo 3 Instruct 模型能有效利用工具、高效回应用户查询。

5.1 Olmo 3 Instruct 主结果

表 25:Olmo 3.1 32B Instruct 在后训练评测套件上的结果

技能 / 基准 SFT DPO Instruct 3.1 终版 Apertus 70B Qwen 3 32B(无思考) Qwen 3 VL 32B Instruct Qwen 2.5 32B Gemma 3 27B Gemma 2 27B OLMo 2 32B
数学
MATH 74.4 86.6 93.4 36.2 84.3 95.1 80.2 87.4 51.5 49.2
AIME 2024 12.7 35.2 67.8 0.31 27.9 75.4 15.7 28.9 4.7 4.6
AIME 2025 8.2 23.3 57.9 0.1 21.3 64.2 13.4 22.9 0.9 0.9
OMEGA 15.5 33.3 42.2 5.6 23.4 44.0 19.2 24.0 9.1 9.8
推理
BigBenchHard 69.0 82.1 84.0 57.0 80.4 89.0 80.9 82.4 66.0 65.6
ZebraLogic 30.6 51.1 61.7 9.0 28.4 86.7 24.1 24.8 17.2 13.3
AGI Eval English 71.7 79.4 79.5 61.6 82.4 89.4 78.9 76.9 70.9 68.4
编码
HumanEvalPlus 80.8 85.7 86.7 42.9 83.9 89.3 82.6 79.2 67.5 44.4
MBPP+ 61.5 63.6 65.1 45.8 67.9 69.0 66.6 65.7 61.2 49.0
LiveCodeBench v3 35.4 49.6 54.7 9.7 57.5 70.2 49.9 39.0 28.7 10.6
指令遵循
IFEval 87.7 87.3 88.8 70.4 87.5 88.1 81.9 85.4 62.1 85.8
IFBench 29.7 36.3 39.7 26.0 31.3 37.2 36.7 31.3 27.8 36.4
知识与 QA
MMLU 79.0 81.9 80.9 70.2 85.8 88.7 84.6 74.6 76.1 77.1
PopQA 23.7 28.5 25.0 33.5 25.9 25.7 28.0 30.2 30.4 37.2
GPQA 41.3 47.9 48.6 27.9 54.4 61.4 44.6 45.0 39.9 36.4
对话
AlpacaEval 2 LC 42.2 69.7 59.8 19.9 67.9 84.3 81.9 65.5 39.8 38.0
工具使用
SimpleQA 82.3 85.3 84.7 86.7 91.5 90.0
LitQA2 47.6 53.3 55.6 46.7 32.0 26.2
BFCL 57.0 58.6 58.8 63.1 66.3 62.8
安全 92.1 88.9 89.5 77.1 81.6 85.8 82.2 68.8 74.4 84.2

表 26:Olmo 3 Instruct 7B 在 Olmo 3 后训练评测套件上的结果概览

技能 / 基准 SFT DPO Instruct 终版 Qwen 3 8B Qwen 3 VL 8B Inst Qwen 2.5 7B OLMo 2 7B Inst Apertus 8B Inst Granite 3.3 8B Inst
数学
MATH 65.1 79.6 87.3 82.3 91.6 71.0 30.1 21.9 67.3
AIME 2024 6.7 23.5 44.3 26.2 55.1 11.3 1.3 0.5 7.3
AIME 2025 7.2 20.4 32.5 21.7 43.3 6.3 0.4 0.2 6.3
OMEGA 14.4 22.8 28.9 20.5 32.3 13.7 5.2 5.0 10.7
推理
BigBenchHard 51.0 69.3 71.2 73.7 85.6 68.8 43.8 42.2 61.2
ZebraLogic 18.0 28.4 32.9 25.4 64.3 10.7 5.3 5.3 17.6
AGI Eval English 59.2 64.0 64.4 76.0 84.5 69.8 56.1 50.8 64.0
编码
HumanEvalPlus 69.8 72.9 77.2 79.8 82.9 74.9 25.8 34.4 64.0
MBPP+ 56.5 55.9 60.2 64.4 66.3 62.6 40.7 42.1 54.0
LiveCodeBench v3 20.0 18.8 29.5 53.2 55.9 34.5 7.2 7.8 11.5
指令遵循
IFEval 81.7 82.0 85.6 86.3 87.8 73.4 72.2 71.4 77.5
IFBench 27.4 29.3 32.3 29.3 34.0 28.4 26.7 22.1 22.3
知识与 QA
MMLU 67.1 69.1 69.1 80.4 83.6 77.2 61.6 62.7 63.5
PopQA 16.5 20.7 14.1 20.4 26.5 21.5 25.5 25.5 28.9
GPQA 30.0 37.9 40.4 44.6 51.1 35.6 31.3 28.8 33.0
对话
AlpacaEval 2 LC 21.8 43.3 40.9 49.8 73.5 23.0 18.3 8.1 28.6
工具使用
SimpleQA 74.2 79.8 79.3 79.0 90.3 78.0
LitQA2 38.0 43.3 38.2 39.6 30.7 29.8
BFCL 48.9 49.6 49.8 60.2 66.2 55.8
安全 89.5 89.9 87.6 78.4 77.7 73.4 91.1 71.1 74.3

表 26 和表 25 分别展示 Olmo 3 Instruct 7B 和 32B 在我们评测套件上的结果。192 除 Olmo 3 Think 使用的评测(§4.1)之外,我们增加了函数调用基准。193 Olmo 3 Instruct 7B 超过 Qwen 2.5-7B Instruct、OLMo 2 Instruct 7B 和 Apertus 8B Instruct。类似地,Olmo 3.1 Instruct 32B 超过大多数同规模开源模型,包括 Qwen 2.5 32B、Qwen 3 32B(无思考)、Gemma 3 27B 和 Apertus 70B。值得注意的是,Olmo 3.1 Instruct 32B 在 IFBench 上取得 39.7,超过 32B 规模的 Qwen 3 和 Qwen 3 VL。此外,Olmo 3.1 Instruct 32B 在 AIME 2025 上取得 57.9,比 Qwen 3 32B(无思考)高出 36.6 分,并缩小了与 Qwen 3 VL 32B-Instruct 的差距。

5.2 用 Dolci-Instruct-SFT 做监督微调

我们在 OLMo 2 Instruct 的混合基础上构造 Dolci-Instruct-SFT,做出显著改进以推进通用对话、推理和函数调用能力。

5.2.1 函数调用训练数据

表 27:函数调用数据集细节。「多轮」指每条轨迹有多个用户回合;「多步」指每次用户请求有多次助手与环境的交互。

数据集 环境交互 轨迹数 唯一函数数 多轮占比 多步占比
Science QA 真实(MCP) 2.26 万 8 42.3%
Web Search QA 真实(MCP) 6,600 3 76.1%
SimFC 模拟 20 万 4.26 万 42.3% 23.8%

为 Olmo 3 Instruct 整理工具使用训练数据,我们的目标是给模型打下基础函数调用的坚实基础,并让模型接触到「有效使用真实环境(即 MCP 服务器)执行任务」的轨迹。据此我们收集两类用 LLM 合成的轨迹。

带真实交互的轨迹。我们收集展示智能体使用 MCP 服务器回答查询的轨迹。所有轨迹都是单个用户回合加多次智能体—环境交互。我们聚焦以下领域:

  • Science QA 数据集包含两大类需要在学术内容上做检索与推理的查询:1)基于论文内容的查询,聚焦论文摘要或全文中存在的信息;2)基于引文图的查询,涉及作者、会议、引用等元数据。这些查询关联的轨迹由一个基于 GPT-4.1-mini、配备 ASTA Scientific Corpus(ASC)MCP 服务器194 的智能体获得,该服务器提供对 Semantic Scholar 上元数据和论文内容的结构化访问。
  • Web Search QA 数据集改编自 DR Tulu195。它由一条多阶段流水线构成,把基准衍生查询与真实世界查询结合起来。查询取自开放获取基准:HotpotQA196、TaskCraft197 和 WebWalkerQA(silver)198,以及来自 SearchArena199 和 OpenScholar200 的、经用户同意公开发布的提示词。我们用 GPT-5 过滤这批查询,只保留那些既需要搜索、又有长篇可验证回复的。这些查询的轨迹由一个配备 Serper API201 的 GPT-5 智能体获得,该 API 提供 Google 搜索工具和按 URL 抓取网页的工具。

带模拟交互的轨迹。在带可执行环境的轨迹上训练,预期能教会模型有效应对真实环境输出、处理意外错误;但这类轨迹难以规模化整理,可能限制模型在推理时对未见工具的泛化。为填补这一空缺,我们还创建了一个带 LLM 模拟环境的合成轨迹数据集,它规模化容易得多。我们称之为 SimFC。我们从已有数据集(例如 xLAM202、ToolACE203)和公开可用的 MCP 服务器中取出一大池工具集或 API,然后提示 LLM(GPT-4o、GPT-4.1 和 GPT-5)生成完整轨迹,包括模拟的用户查询、环境回复和助手消息。我们设计提示词以确保数据集包含多样的交互模式,包括多轮、多步,以及因信息或工具不足而拒答。

在函数多样性与交互复杂度之间取得平衡。如表 27 的统计所示,两类轨迹有关键差异。SimFC 有大量轨迹且函数集合多样。我们发现,合成带多个用户回合的轨迹(多轮轨迹)相对容易,而合成每次用户请求带多次助手—环境交互的轨迹(多步轨迹)较难;然而后者通常对应更复杂的任务。另一方面,带真实交互的数据集虽然规模较小,但在多步交互层面天然更复杂。

统一数据格式。所有工具使用数据我们都采用一致的工具定义与工具调用格式。我们发现统一格式对稳定、高质量的工具使用行为至关重要。具体来说,我们对所有工具定义使用 OpenAPI 规范204,并把所有函数调用表示为 Python 式代码块。我们在系统提示词中提供工具规格,在 assistant 角色内用 XML 标签封装工具调用,并在一个特殊的 environment 角色内向模型呈现环境输出。我们还用对应这些标签的专用特殊 token 扩展了分词器词表。与 Olmo 3 Think 不同,初步结果表明这种做法在工具使用训练上比把 <functions></functions><function_calls> 这些标签编码为普通文本更有效。

译注:这与 §3.5.4 的发现并不矛盾。那里的结论是中训练阶段不应引入预训练从未见过的特殊 token;这里是后训练阶段,扩展词表并配套训练是可行的。

函数调用评测。我们用不同基准从内在函数调用准确率和外在任务完成准确率两个角度评测 Olmo 3 Instruct 的函数调用能力。我们用 Berkeley 函数调用排行榜(BFCLv3)205 评测内在函数调用准确率,该基准聚焦模型在需要与模拟用户和环境做一次或多次交互的设定下,选择相关函数及其参数正确取值以完成给定任务的能力。我们评测 Olmo 3 Instruct 在作为智能体部署、能访问经 MCP 服务器提供的工具时的任务完成准确率,并与相似模型对比。具体来说,我们使用提供八个访问科学文献函数的 Asta Scientific Corpus(ASC)工具206,以及提供 Google 搜索工具和网页浏览功能的 Serper API。为评测模型对 ASC 工具的使用,我们遵循 206 使用 LitQA2207 中 75 道题的子集——这些题关联的论文能在 ASC 的索引中找到。我们用 SimpleQA208 的一个子集评测模型对搜索和浏览工具的使用。

BFCLv3 评测我们用官方 Gorilla 仓库。对 LitQA2 和 SimpleQA,我们用 OpenAI 的 Agent SDK 实现了一个基础函数调用智能体。这个智能体使用相关 MCP 服务器提供的工具,通过迭代地发起函数调用并处理执行输出来与环境交互,以解决给定任务。对 LitQA2 和 SimpleQA,我们还测量模型在无工具设定下部署时的表现——此时不给智能体任何工具,它们需要完全靠模型的参数化知识解题。所有这些基准我们都用零样本评测。我们以温度 0 从模型采样,对 LitQA2 和 SimpleQA 允许智能体最多 10 轮完成每项任务。每项评测跑三次,报告平均准确率。

5.2.2 整理 Dolci-Instruct-SFT

第 1 步:获取提示词和补全。我们的提示词集合包括全部新的函数调用数据(§5.2.1)、用于指令遵循(见 §4.2.1)和科学的新提示词,以及更多来自 WildChat55 的对话提示词。对原本含推理轨迹的样例(例如 §4.2.1 描述的 OpenThoughts3 科学子集),我们移除推理轨迹和特殊 token。我们还把 GPT-3.5、GPT-4 这类较老模型的补全更新为 GPT-4.1 的补全。指令 SFT 混合的汇总见表 30。

第 2 步:过滤与混合。我们遵循 §4.2.1 详述的相同过滤与混合流程。对 Olmo 3 Instruct,我们的基线混合是取自一个基于 OLMo 2 SFT 混合更新而来的中间混合的 10 万条样例。我们在 OLMo 2 上做的数据混合实验结果见表 28。

表 28:指令 SFT 混合消融的结果,在 OLMo 2 之上进行。

名称 均值 MMLU BBH GPQA MATH GSM8K CHE AE IFEval
基线混合 29.0 50.0 29.5 25.2 6.6 30.1 23.2 5.8 61.7
基线混合 + Aya 29.1 51.9 28.2 28.1 6.9 31.4 21.3 4.9 60.3
基线混合 + Code 28.7 51.1 28.8 25.0 6.9 28.2 26.8 5.8 57.3
基线混合 + Flan 30.3 51.9 35.0 26.8 6.6 34.7 21.3 5.8 60.3
基线混合 + IF 30.7 51.4 24.7 25.5 7.9 42.2 14.6 5.5 74.1
基线混合 + Math 29.3 49.9 23.9 29.2 14.2 39.7 18.3 5.4 54.0
基线混合 + Safety 27.0 51.7 28.3 24.8 6.5 28.2 14.0 6.8 56.0
基线混合 + Science 29.4 53.4 25.3 28.1 8.3 34.9 20.7 6.8 57.3
基线混合 + Wildchat 30.9 51.9 30.7 23.7 6.9 32.2 23.2 19.2 59.7

从 Olmo 3 Think SFT 出发。我们从 Olmo 3 Think SFT 模型出发训练 Olmo 3 Instruct 的 SFT 阶段(见图 2),给它一个「热启动」。我们发现这显著改进了 Instruct 模型的表现,见表 29 的结果。

表 29:先做与不做思考 SFT 训练一个中间 Olmo 3 Instruct 7B checkpoint 的结果对比

名称 均值 BBH GPQA MATH GSM8K OMEGA CHE MBPP LCB AE IFEval
不做思考 SFT 44.5 46.5 29.7 60.3 87.6 8.6 63.8 54.1 13.0 27.0 81.0
先做思考 SFT 47.8 46.6 34.4 65.9 91.1 12.2 68.7 57.1 17.1 27.1 84.7
先做思考 SFT 的增益 +3.3 +0.1 +4.7 +5.6 +3.5 +3.6 +4.9 +3.0 +4.0 +0.1 +3.7

5.3 用 Dolci-Instruct-DPO 做偏好微调

我们通过在 delta learning 启发式偏好(§4.3)这一强基础之上,扩展更多经整理的偏好信号来创建 Dolci-Instruct-DPO,以增强模型在通用使用场景下的行为。我们用一条改进的 GPT 评判流水线产出的对比配对,来丰富启发式数据以做通用对齐。此外,用户与语言模型的交互通常需要多轮对话能力,因此我们向偏好数据中引入合成的多轮对话。我们还观察到偏好数据流水线往往助长过度冗长的回复;我们引入反向干预,通过缓解偏好数据中的长度偏置来促进模型回复的简洁。

表 30:Olmo 3 Instruct 用于 SFT 和 DPO 的提示词来源

类别 提示词数据集 SFT 使用条数 DPO 使用条数 出处
对话与精确指令遵循 WildChat 302,406 30,248 55
Dolci Instruct Precise IF 136,833 35,057
Dolci Instruct Persona Precise IF 6,667 73
OpenAssistant 7,132 493 135
数学 Persona MATH 149,958 14,728 73
Persona Algebra 19,999 2,025 73
Persona GSM 49,980 5,011 73
OpenMathInstruct 2 50,000 5,325 157
编码 Dolci Instruct Python Algorithms 186,345 24,096
Persona Python 34,999 4,598 73
Evol CodeAlpaca 107,270 12,953 159
安全 CoCoNot 10,957 2,203 137
WildGuardMix 49,373 12,037 138
WildJailbreak 49,965 12,431 139
科学 SciRiff 4,557 8,874 160
Dolci Instruct OpenThought3+ Science 99,268 26,134 128
多语 Aya 99,987 6,523 140
其他 TableGPT 5,000 1,218 141
FLAN 89,981 16,120 74
Logic Puzzles 159,882
Verifiable Reasoning 310,572
Dolci Instruct Hardcoded 69
Dolci Instruct Tool Use 227,579
多轮 Dolci Instruct Self-Talk 5,000
Dolci Instruct Synthetic Context 5,000
未在 SFT 中使用 DaringAnteater 878 161
UltraFeedback 22,303 162
合计 2,152,112 259,922

5.3.1 偏好信号

Dolci-Instruct-DPO 由若干偏好信号复合构成,以促进模型能力和通用可用性。

Delta learning 启发式配对。与 Dolci-Think-DPO 类似,我们遵循 20 用一个大模型(Qwen3 32B)生成被选中回复、用一个小模型(Qwen3 0.6B)生成被拒绝回复,构造启发式对比配对。注意我们关闭了思考模式,因为这里不需要内部思考轨迹。

Delta 感知的 GPT 评判配对。我们额外生成 GPT 评判的偏好配对,作为又一路偏好信号来源。我们最初尝试通过提升 LLM 评判者质量(GPT-4o → GPT-4.1)并更新数据生成模型池,来现代化 OLMo 2 和 Tülu 的 UltraFeedback 流水线——结果不但没有增益,相对 OLMo 2 偏好数据集基线甚至损害了模型表现。我们推测这一失败是因为我们的数据生成器绝大多数是高质量、能力很强的模型;因此平均而言,所得的被选中与被拒绝配对之间没有多少有意义的对比

为缓解这一点,我们显式引入 delta 感知干预,设计上就是要拉低被拒绝回复的质量。我们 1)确保较弱模型的回复始终出现在为每条提示词评判的回复集合中,2)选取最差的回复作为被拒绝补全,以最大化所得的 delta。我们发现这些「delta 最大化」干预对偏好配对数据的质量至关重要。

多轮偏好。为确保 Olmo 3 在真实多轮对话中的可用性,我们进一步加入一个多轮偏好数据集,其提示词由 Tülu-DPO 数据集合成扩展而来。偏好配对只在对话的最后一轮有差异,以避免同一对话不同回合之间质量排序的歧义。合成对话用两种方法生成:1)self-talk,用 LLM 生成的后续请求把原始提示词扩展成多轮对话;2)synthetic-context,生成与初始提示词相关的独立问题或改述,用作前面的用户回合及其对应补全。这两种生成方法的结合确保了生成对话的多样性。最后一轮用 delta learning 启发式20 生成;被选中/被拒绝补全配对分别由 GPT-4o 与 GPT-3.5、或 Qwen 3 32B 与 Qwen 3 0.6B(均为无思考模式)生成。

控制长度偏置。偏好数据常有长度偏置:被选中回复显著长于被拒绝回复。这源自合成回复配对的获取方式——历史上 LLM 评判者和偏好启发式都倾向于把更多信息视为更有帮助。也就是说,像我们流水线中的 GPT 评判者这类 LLM 评判者倾向于偏好更长的回复。类似地,我们经验上观察到用 delta learning 启发式做出的偏好配对同样呈现长度偏置——更大的模型生成更长的回复(图 23)。

于是模型在偏好微调期间往往除了学到预期的有用质量信号之外,还学到了这种长度偏置,此后它每条提示词的生成长度显著增加。虽然这种长度增加在推理任务上经验有用,但过度冗长在常见真实使用场景下并不受欢迎(例见图 22)。我们力求取得平衡,做法是过滤偏好数据的对话和多轮子集,把被选中与被拒绝回复之间的长度差限制在 100 token 以内。

图 22a:未做长度控制的偏好微调模型的回复。
图 22a:未做长度控制的偏好微调模型的回复。

图 22b:Olmo 3 Instruct-DPO(带长度控制)对同一提示词的回复。
图 22b:Olmo 3 Instruct-DPO(带长度控制)对同一提示词的回复。

图 22:长度控制促进简洁、可用的回复。左边是一个未做长度控制的偏好微调开发模型的回复;右边是 Olmo 3 Instruct-DPO(带长度控制)对同一提示词的回复。促进模型回复的简洁使回复更易读、更易懂。

5.3.2 提示词混合

我们用于 GPT 评判和 delta learning 启发式配对的提示词池(见表 30)派生自 Dolci-Instruct-SFT 数据集,并补充了 OLMo 2 7B 偏好数据集中的 DaringAnteater 和 UltraFeedback 子集。因为 DPO 表现并不随数据增多而单调上升(见图 23),我们把提示词分布优化为固定数据预算内的比例,并在训练时把数据集大小当作一个超参数处理。

为确定最终的偏好微调提示词分布,我们从近似均匀随机采样的 10 万条样例出发,作为经验上很强的基线提示词混合。209 然后我们对提示词领域子集做消融,以确定各领域子集的偏好配对带来的影响。此外,我们做了「基线混合 5 万条样本 + 某个领域 5 万条样本」的实验,以理解上采样每个提示词领域的效果。

值得注意的是,提示词领域分布与回复配对中体现的对比度并不总是一致,因而与相应下游评测领域的改进也不总是一致。举例来说,上采样代码提示词导致了反直觉的效果——代码基准表现下降。为确定最终混合,我们基于消融中获得的专家直觉创建九个候选混合,把这些手工打造的混合与均匀采样基线做对比。我们的最终混合是经验确定的;我们发现手工混合胜过随机采样。

5.3.3 训练

我们遵循与 Olmo 3 Think 相同的训练设置,扫描同样的超参数,即学习率和数据集大小。我们进一步扫描不同的长度控制干预,做法是创建长度过滤 token 截断值不同的数据集。我们选出每种长度预算下表现最好的 checkpoint,然后基于定性体感测试和「表现—长度」分析选定最终的 Olmo 3 Instruct-DPO checkpoint。

5.4 用 Dolci-Instruct-RL 做强化学习

RL 训练阶段我们对 Dolci-Think-RL(§4.4.2)的提示词池做了修改:1)在数学和代码领域使用难度较低的数据集,2)跳过离线难度过滤——因为我们的指令模型更侧重通用指令遵循而非复杂推理。

5.4.1 训练

遵循 Olmo 3 Think 的配方,我们在通用对话、数学和代码数据的混合上训练 Olmo 3 Instruct。210 我们同样用 OlmoRL 训练,7B 的最大回复长度为 8K token、32B 为 16K token。211 由于我们对 Olmo 3 Instruct 的目标是避免生成过长输出、保持通用可用性,我们在两个 DPO 候选之上施加 RL:一个是取得最佳平均表现的,另一个表现略低但定性「体感测试」更好。然后我们基于最终平均表现、长度分析和体感测试选定最终 RL checkpoint。具体来说,我们先按平均分给 checkpoint 排序;遇到并列时,我们更看重那些不随测试时算力扩展的数据集(例如 MATH 和 AIME 的表现会随回复长度上升),以避免选择偏向回复过长的模型。最后我们施加体感测试,识别可能落在评测套件覆盖范围之外的回退或不良行为。

5.5 关键发现

下面我们汇总 Olmo 3 Instruct 训练全部三个阶段的关键发现。

从 Olmo 3 Think SFT 出发是有帮助的。我们发现在 Olmo 3 Think SFT 之上训练 Olmo 3 Instruct 能提升模型在基准上的表现(表 29)。重要的是,模型平均回复长度受这一策略的影响极小:Olmo 3 Instruct SFT 的 checkpoint 产出简洁答案,没有残留的思考轨迹。

偏好配对中的高对比驱动 DPO 改进。我们观察到补全之间的高对比对 DPO 训练期间取得改进至关重要(表 32)。使用 LLM 评判流水线需要仔细考虑如何最大化被选中与被拒绝回复之间的 delta。我们最初尝试通过改进用于生成回复的模型来现代化 OLMo 2 偏好数据流水线,结果未能取得超过 OLMo 2 数据基线的任何改进(表 32)。这很可能是因为用于合成补全的模型普遍太好了:被选中和被拒绝回复之间不再有有意义的对比。延展既往关于「高对比配对对表现至关重要」的发现20154,我们引入干预以显式降低被拒绝回复的质量,从而增大偏好配对中质量 delta 的幅度。所得的这些 delta 感知 GPT 配对显著胜过 OLMo 2 偏好数据。

结合不同的偏好信号改进整体表现。我们把 delta learning 启发式数据与 GPT 评判偏好配对结合起来,取得「两全其美」。经验上,用 delta learning 配对或 GPT 评判配对调优会产出不同分布的增益;我们发现这些增益是互补的。结合两路偏好信号来源胜过单用其中任一路(表 32)。

表 32:不同偏好信号来源的对比。用 delta learning 启发式创建的偏好配对与 GPT 评判配对是互补的。

名称 均值 MMLU BBH GPQA AGI MATH CHE LCB IFEval AE2
开发用 7B SFT checkpoint 51.9 67.6 47.7 30.2 62.0 65.5 69.3 17.9 83.2 23.8
OLMo 2 偏好数据 55.5 69.4 55.6 33.7 63.6 71.3 73.7 12.7 84.5 35.2
更新后的 GPT UltraF 流水线 55.4 67.6 51.2 31.5 61.8 72.2 71.5 14.7 80.8 47.5
+ 采样弱模型 56.3 68.4 50.4 33.9 63.8 71.6 74.3 18.2 81.9 44.4
+ 取最低分作为被拒绝 57.4 68.5 53.6 34.4 64.2 72.6 75.2 19.1 82.3 47.0
仅 delta learning 57.6 68.7 49.5 35.5 64.6 79.1 73.9 22.0 78.6 46.1
delta learning + GPT 60.4 69.4 66.9 34.6 64.3 80.0 74.1 21.1 83.0 49.8

偏好数据的理想用量取决于下游任务。偏好微调后的模型表现,在不同下游任务领域上于不同的训练量处达到峰值。我们在图 23 中绘制了不同数量 delta learning 启发式配对下若干示例任务的偏好微调表现。212 超出这些最优点继续优化会损害下游表现,这与「早停对偏好微调很重要」的理论结果21320 一致。实践上这指导了我们的训练方法:我们扫描学习率和数据集大小来控制总优化量,并通过开发评测集挑选表现最好的设置。

图 23a:理想的偏好数据集大小取决于下游任务。
图 23a:理想的偏好数据集大小取决于下游任务。

图 23b:未过滤的偏好数据呈现长度偏置。
图 23b:未过滤的偏好数据呈现长度偏置。

图 23:数据集大小与过滤对偏好数据的影响。(左)理想的偏好数据集大小取决于下游任务。AlpacaEval 和 ZebraLogic 的表现都上升到大约 7.5 万–10 万条样本,超出这个范围继续扩数据会有害或无益。相比之下,AIME2024 在 AlpacaEval 和 ZebraLogic 开始下滑的那个点之前尚未饱和。因此,为在所有下游任务之间取得理想平衡,我们在训练时把数据集大小作为超参数扫描。(右)未过滤的偏好数据呈现长度偏置。数据分布中有相当一部分的被选中补全长于被拒绝补全。例如 GPT 评判数据的 token 差值第 80 百分位是 538 token,delta learning 启发式配对是 564 token。

偏好微调产出的简洁可用输出能提升 RL 表现。在 DPO 期间施加长度控制大幅降低了模型的平均生成长度,让我们能用一些表现换取更好的简洁性和整体可用性。虽然这种长度缩减伴随着长度敏感评测上更低的分数——尤其是 AIME 和 MATH 这类数学基准——但我们内部的定性评估(「体感测试」)几乎一致偏好更短、更直接的模型。我们有意识地决定优先考虑可用性。

关键在于,尽管 DPO 阶段的基准表现更低,长度控制最终在 RL 之后产出了更强的模型。在 7B 规模上,我们推测这源于 RL 训练的上下文窗口:在固定的上下文窗口(8K)下,更短的模型可能「每 token 更聪明」,让它在优化期间能更有效地利用可用预算。于是最初看起来像是可用性与表现之间权衡的东西,最终在两方面都产出了改进。此外我们发现,从长度受控的 DPO 策略初始化时,RL 训练推进得更可靠。在大多数基准上,相比从分数更高但未做长度校正的 DPO checkpoint 出发的 RL 运行,表现改进得更稳——后者往往更早显现出不稳定或退化的迹象。这进一步支持了「简洁的偏好微调模型是 RL 的有利起点」这一角色定位。

对工具的需求。我们评估 Olmo 3 Instruct 在 LitQA2 和 SimpleQA 上的表现有多少可归因于工具使用,做法是测量模型在「仅凭参数化记忆回答」(无工具设定)与「使用工具回答」之间的表现差值。表 31 展示这些差值,并与三个 Qwen 模型对比。所有模型在 SimpleQA 上都从工具使用中显著获益。然而与 Olmo 3 Instruct 7B 不同,Qwen 系列模型在 LitQA2 上似乎主要依赖参数化知识,其中两个模型在被提供工具时表现甚至下降

表 31:智能体在 LitQA2 和 SimpleQA 上有无工具访问权限时的表现对比。ASC 指 Asta Scientific Corpus 工具,SBT 指搜索与浏览工具。

LitQA2 无工具 LitQA2 ASC LitQA2 Δ SimpleQA 无工具 SimpleQA SBT SimpleQA Δ
Olmo 3 Instruct 7B 24.4 38.2 +13.8 3.3 79.2 +75.9
Qwen 3 8B(无推理) 34.7 39.6 +4.9 2.0 79.0 +77.0
Qwen 3 VL 8B Instruct 34.7 30.7 −4.0 9.3 90.3 +81.0
Qwen 2.5 7B 36.0 29.8 −6.2 3.3 78.0 +74.7

6 Olmo 3 RL-Zero

RL 已成为近期大模型流水线的关键一环,部分原因是 DeepSeek R1-Zero131 这类突出的开源模型——它显著地在基座模型之上利用 RL 训练自举出复杂推理行为214——以及 OpenAI o1 系列和带 Thinking 的 Gemini 这类闭源推理模型的快速普及。这让「从基座模型出发做 RLVR 微调」成为 RL 算法的标准大规模基准215165177

迄今为止,领先的开源 RLVR 基准与算法都是在不公开其预训练或中训练数据的开源权重模型之上训练的117。这限制了社区研究预训练数据对 RLVR 表现所起作用的能力,并可能导致一系列问题:基准评测被污染(例如中训练数据含有评测集的数据),使得虚假奖励与真实奖励一样有效2223;或者修正提示词模板带来的改进盖过了 RL 本身的改进24

因此我们发布一个完全开放的数据集 Dolci-RLZero、一套针对 Olmo 3 的算法化 RL-Zero 设定,以及开源的 OlmoRL 代码,为生态提供清晰的基准测试。我们从 Olmo 3 Base 出发,在五个基准领域上执行 RLVR 以创建 Olmo 3 RL-Zero 家族:数学、代码、精确指令遵循(IF)、通用对话,以及上述全部子领域的混合。所有情形下我们都进一步对 Dolci-RLZero 做针对预训练和中训练数据的去污染,以保证我们的设定能在没有数据泄漏干扰结论的前提下仔细研究 RLVR 的效果。

6.1 用 Dolci-RLZero 从基座出发做强化学习

数据。我们创建 Dolci-RLZero,一个有效的 RL-Zero 训练数据集。数学方面,我们激进地过滤 DAPO Math165、Klear-Reasoner Math174、Open-Reasoner-Zero(Orz)171 和 Omega175。我们对 DAPO 去重并移除所有非英文样例。由于 Klear-Reasoner、Orz 和 Omega 是大得多的数据集,我们进一步在这三者之间对问题做语义聚类分组,每个簇选一道代表性问题,再加上 DAPO 的全部。我们进一步遵循 §4.2.1 对预训练数据和评测数据都做去污染,并执行离线过滤,移除最终基座模型在 8 次采样补全中 8 次全对的提示词。这产出一个 1.33 万条数学提示词的数据集。代码、指令遵循和通用对话的数据从 Dolci-Think-RL(§4.4.2)中子采样。

提示词与评测模板。印证了 24 的发现,我们发现从一个纯粹中训练过的模型出发训练时,「简单」提示词模板大幅胜过标准的后训练模板(例如 <think></think>)——因为 Dolma 3 Dolmino Mix 排除了大多数特殊格式。我们为每个领域开发一条简单的定制提示词,以零样本 pass@k 表现作为指标。最终我们得到一条与 165 相似的提示词。我们还「清洗」了所有评测提示词以移除特殊格式(即 \boxed{}),让评测提示词更接近训练提示词。

RL 算法。除以下两点外,我们在所有 RL 细节上遵循 §4.4.1:(i)我们以 16K token 的回复长度训练,以更好地容纳数学和代码领域的长思维链推理;(ii)我们以 32K token 的回复长度、温度 1.0 评测,以鼓励多样性——因为我们报告的是 pass@k。

6.2 关键发现

图 24a:数学领域 AIME pass@1。
图 24a:数学领域 AIME pass@1。

图 24b:数学领域 AIME pass@32。
图 24b:数学领域 AIME pass@32。

图 24c:数学奖励曲线。
图 24c:数学奖励曲线。

图 24d:代码奖励曲线。
图 24d:代码奖励曲线。

图 24e:IFEval 奖励曲线。
图 24e:IFEval 奖励曲线。

图 24f:通用对话奖励曲线。
图 24f:通用对话奖励曲线。

图 24:在 Olmo 3 Base 上做 RL-Zero 的不同领域运行:数学、精确指令遵循、代码,以及这三者加通用对话的混合。我们展示数学领域的主评测:AIME 2024 和 2025 的 pass@1(以 32 个样本的自助平均计算)和 pass@32。所有领域我们都展示训练全程的奖励。对 Mix,我们把各领域的奖励分开呈现。

Olmo 3 RL-Zero 能大幅改进推理。如图 24 所示,在我们的数据集上利用 RL 时,基座模型能在不同领域上大幅改进训练奖励。为展示域外改进,我们在去污染后的 AIME 2024 和 2025 上评测数学运行。我们发现 Olmo 3 Base 在训练的头几百步内急剧改进,之后稳步但缓慢地改进。我们在 pass@32 结果上也看到相当的改进,说明我们的运行维持了多样性、且 RLVR 把模型推到了它初始能力之外。值得注意的是,7B 模型的初始分数和最终分数都接近 DAPO165——后者用的是更大的 Qwen 2.5 32B 且训练步数多一个数量级。这说明 Olmo 3 RL-Zero 可以成为既有 RLVR 实验的一个更高效的替代方案。

Olmo 3 RL-Zero 的 mix 可以为多目标 RL 的挑战提供基准。多数研究只聚焦于 RLHF216 或单领域 RLVR16587。我们把数学、代码、指令遵循和通用对话混合在一起,构成对模型更具挑战的 RLVR 基准。图 24 表明,我们的通用运行在不同领域上都有改进的表现,但每个领域相对单领域设定都是欠优化的。未来工作可以利用这套设定研究多目标 RLVR 中各领域之间的交互。

图 25a:两个早期中训练基座模型的回复长度。
图 25a:两个早期中训练基座模型的回复长度。

图 25b:两个早期中训练基座模型的数学奖励。
图 25b:两个早期中训练基座模型的数学奖励。

图 25:两个早期中训练基座模型在 RL 训练全程的回复长度和数学奖励。这展示了基座模型的中训练如何决定 RL-Zero 是否会学到更长、更复杂的推理并增加回复长度。

Olmo 3 RL-Zero 可以为中训练的推理数据混合提供基准。与 Olmo 3 Think 背后的大规模投入不同,中训练和 Olmo 3 RL-Zero 提供了消融具体数据源的机会。我们利用 RL-Zero 评估中训练数据混合「通过 RL 发展出下游推理能力」的能力。举例来说,我们在图 25 中对比两个早期模型。从停滞的回复长度可以看出,推理数据不足的那个模型没有运用回溯、答案验证和其他认知技能86。因此 Olmo 3 RL-Zero 可以作为一个测试平台,用于检验替代中训练方案以及相对 Dolma 3 Dolmino Mix 的改进在下游的表现。

图 26a:批次中非零优势样本的占比。
图 26a:批次中非零优势样本的占比。

图 26b:训练损失。
图 26b:训练损失。

图 26:主动采样通过在过滤后持续从结果队列拉取「提示词—补全」配对,维持一整批非零优势样本。我们绘制带与不带主动采样的 RL-Zero 数学运行中,批次内非零优势的百分比以及训练损失。

主动采样稳定训练。Olmo 3 RL-Zero 也为消融 RL 算法和基础设施决策提供了一个更简单的测试平台。我们消融主动采样——我们那个在过滤非零优势后持续重采样提示词的新方法(细节见 §4.4.3)。在数学领域上运行时,图 26 显示主动采样确实维持了一整批非零优势的补全。这种一致的批大小对训练有稳定作用,我们看到损失方差大幅降低。

评测去污染通过虚假奖励得到验证。近期的 RLVR 基准显示,用与模型效用不相关的虚假奖励训练也能带来实质改进。这可能说明 RLVR 任务已被污染,即模型在预训练或中训练期间接触过评测数据。带虚假奖励的 RLVR 能激发出这些被记住的知识,与真正学到推理能力区别开来22。为验证 Olmo 3 RL-Zero 的评测未被污染,我们做了一个用虚假奖励训练 Olmo 3 Base 的阴性对照实验。具体来说,我们在 Dolci-RLZero 上训练,但不奖励正确答案,而是遵循 22 的协议,给模型生成分配与回复质量无关的随机二值奖励。如果我们的预训练或中训练数据与评测集有显著重叠,我们会预期虚假奖励训练能激发出这些被记住的解法并提升基准表现。

图 27:在随机的、无信号的奖励上对 Olmo 3 Base 做 RL 训练没有带来任何表现增益。
图 27:在随机的、无信号的奖励上对 Olmo 3 Base 做 RL 训练没有带来任何表现增益。

图 27:在随机的、无信号的奖励上对 Olmo 3 Base 做 RL 训练没有产生表现增益,说明训练数据的去污染是成功的。

如图 27 所示,用随机奖励训练没有在我们任何一项基准评测上改进表现。表现要么在随机波动中保持平坦、要么退化,这与「模型在学习与任务无关的任意模式」是一致的。这个阴性结果是我们的数据去污染成功移除了基座模型流水线与 RLVR 评测数据之间重叠的证据。



  1. Team Olmo, Olmo 3. arXiv:2512.13961 ↩︎

  2. 模型权重:https://huggingface.co/collections/allenai/olmo-3 ↩︎

  3. Dolma 3 数据与配方:https://github.com/allenai/dolma3 ↩︎

  4. Dolci 后训练数据:https://huggingface.co/collections/allenai/dolci ↩︎

  5. OLMo-core 训练框架:https://github.com/allenai/OLMo-core ↩︎ ↩︎

  6. open-instruct 后训练框架:https://github.com/allenai/open-instruct ↩︎

  7. A. Yang, A. Li, B. Yang, B. Zhang, B. Hui, B. Zheng, et al (2025). Qwen3 technical report. arXiv:2505.09388 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  8. Qwen, :, A. Yang, B. Yang, B. Zhang, B. Hui, et al (2024). Qwen2.5 technical report. arXiv:2412.15115 ↩︎

  9. Gemma 3 Team (2025). Gemma 3 technical report. arXiv:2503.19786 ↩︎ ↩︎ ↩︎

  10. K. Soule, D. Bergmann (2025). IBM Granite 3.3: Speech recognition, refined reasoning, and RAG LoRAs, Apr. 2025. https://www.ibm.com/new/announcements/ibm-granite-3-3-speech-recognition-refined-reasoning-rag-loras ↩︎

  11. A. Grattafiori, A. Dubey, A. Jauhri, A. Pandey, A. Kadian, A. Al-Dahle, et al (2024). The llama 3 herd of models. arXiv:2407.21783 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  12. D. Hall, C. Chou, A. Garg, N. Ravi, N. Liu, H. Shandilya, et al (2025). marin-community/marin. https://github.com/marin-community/marin ↩︎ ↩︎

  13. Apertus Team (2025). Apertus: Democratizing Open and Compliant LLMs for Global Language Environments. https://huggingface.co/swiss-ai/Apertus-70B-2509 ↩︎ ↩︎

  14. K. Team, Z. Liu, L. Tang, L. Jin, H. Li, N. Ranjan, et al (2025). K2-v2: A 360-open, reasoning-enhanced llm. arXiv:2512.06201 ↩︎ ↩︎

  15. T. OLMo, P. Walsh, L. Soldaini, D. Groeneveld, K. Lo, S. Arora, et al (2024). 2 olmo 2 furious. arXiv:2501.00656 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  16. L. Soldaini, R. Kinney, A. Bhagia, D. Schwenk, D. Atkinson, R. Authur, et al (2024). Dolma: an open corpus of three trillion tokens for language model pretraining research↩︎ ↩︎ ↩︎

  17. E. Bakouch, L. Ben Allal, A. Lozhkov, N. Tazi, L. Tunstall, C. M. Patiño, et al (2025). SmolLM3: smol, multilingual, long-context reasoner. https://huggingface.co/blog/smollm3 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  18. J. Poznanski, A. Rangapur, J. Borchardt, J. Dunkelberger, R. Huff, D. Lin, et al (2025). olmOCR: Unlocking trillions of tokens in pdfs with vision language models. arXiv:2502.18443 ↩︎ ↩︎ ↩︎ ↩︎

  19. J. Poznanski, L. Soldaini, K. Lo (2025). olmOCR 2: Unit Test Rewards for Document OCR. arXiv:2510.19817 ↩︎

  20. S. Geng, H. Ivison, C.-L. Li, M. Sap, J. Li, R. Krishna, P. W. Koh (2025). The delta learning hypothesis: Preference tuning on weak data can yield strong gains. arXiv:2507.06187 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  21. W. Chu, X. Xie, J. Yu, J. Wang, A. Phanishayee, C. Tang, et al (2025). Scaling llama 3 training with efficient parallelism strategies. Proceedings of the 52nd Annual International Symposium on Computer Architecture. https://doi.org/10.1145/3695053.3731410 ↩︎

  22. R. Shao, S. S. Li, R. Xin, S. Geng, Y. Wang, S. Oh, et al (2025). Spurious rewards: Rethinking training signals in rlvr. arXiv:2506.10947 ↩︎ ↩︎ ↩︎ ↩︎

  23. M. Wu, Z. Zhang, Q. Dong, Z. Xi, J. Zhao, S. Jin, et al (2025). Reasoning or memorization? unreliable results of reinforcement learning due to data contamination. arXiv:2507.10532 ↩︎ ↩︎

  24. Z. Liu, C. Chen, W. Li, P. Qi, T. Pang, C. Du, et al (2025). Understanding r1-zero-like training: A critical perspective. Conference on Language Modeling (COLM). ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  25. DeepSeek-AI, A. Liu, B. Feng, B. Xue, B. Wang, B. Wu, et al (2025). Deepseek-v3 technical report. arXiv:2412.19437 ↩︎ ↩︎

  26. A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, et al (2017). Attention is all you need. Advances in Neural Information Processing Systems. https://proceedings.neurips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf ↩︎

  27. I. Beltagy, M. E. Peters, A. Cohan (2020). Longformer: The long-document transformer. arXiv:2004.05150 ↩︎

  28. T. Dao (2024). FlashAttention-2: Faster attention with better parallelism and work partitioning. International Conference on Learning Representations (ICLR). ↩︎

  29. P.-L. Hsu, Y. Dai, V. Kothapalli, Q. Song, S. Tang, S. Zhu, et al (2025). Liger kernel: Efficient triton kernels for llm training. arXiv:2410.10989 ↩︎

  30. OpenAI (2023). GPT-3.5 turbo. https://platform.openai.com/docs/models/gp#gpt-3-5-turbo ↩︎

  31. OpenAI (2023). GPT-4 technical report. https://api.semanticscholar.org/CorpusID:257532815 ↩︎

  32. I. Magnusson, N. Tai, B. Bogin, D. Heineman, J. D. Hwang, L. Soldaini, et al (2025). Datadecide: How to predict best pretraining data with small experiments. arXiv:2504.11393 ↩︎ ↩︎

  33. J. Wei, Y. Tay, R. Bommasani, C. Raffel, B. Zoph, S. Borgeaud, et al (2022). Emergent abilities of large language models. arXiv:2206.07682 ↩︎ ↩︎

  34. Y. Gu, O. Tafjord, B. Kuehl, D. Haddad, J. Dodge, H. Hajishirzi (2024). Olmes: A standard for language model evaluations. https://api.semanticscholar.org/CorpusID:270391754 ↩︎

  35. D. Heineman, V. Hofmann, I. Magnusson, Y. Gu, N. A. Smith, H. Hajishirzi, et al (2025). Signal and noise: A framework for reducing uncertainty in language model evaluation. arXiv:2508.13144 ↩︎ ↩︎

  36. J. H. Ward Jr (1963). Hierarchical grouping to optimize an objective function. Journal of the American statistical association. ↩︎

  37. J. Vendrow, E. Vendrow, S. Beery, A. Madry (2025). Do large language model benchmarks test reliability?. arXiv:2502.03461 ↩︎

  38. R. Schaeffer, B. Miranda, S. Koyejo (2023). Are emergent abilities of large language models a mirage?. Advances in neural information processing systems. ↩︎

  39. Y. Huang, J. Zhang, Z. Shan, J. He (2024). Compression represents intelligence linearly. arXiv:2404.09937 ↩︎

  40. L. Gao, S. Biderman, S. Black, L. Golding, T. Hoppe, C. Foster, et al (2020). The pile: An 800gb dataset of diverse text for language modeling. arXiv:2101.00027 ↩︎

  41. A. Bhagia, J. Liu, A. Wettig, D. Heineman, O. Tafjord, A. H. Jha, et al (2024). Establishing task scaling laws via compute-efficient model ladders. arXiv:2412.04403 ↩︎ ↩︎

  42. C. Clark, K. Lee, M.-W. Chang, T. Kwiatkowski, M. Collins, K. Toutanova (2019). BoolQ: Exploring the surprising difficulty of natural yes/no questions. https://aclanthology.org/N19-1300 ↩︎

  43. A. Gu, B. Rozi`ere, H. Leather, A. Solar-Lezama, G. Synnaeve, S. I. Wang (2024). Cruxeval: A benchmark for code reasoning, understanding and execution. arXiv:2401.03065 ↩︎

  44. Common Crawl Foundation (2024). Common Crawl Dataset. https://commoncrawl.org/ ↩︎

  45. J. Li, A. Fang, G. Smyrnis, M. Ivgi, M. Jordan, S. Gadre, et al (2024). Datacomp-lm: In search of the next generation of training sets for language models. arXiv:2406.11794 ↩︎ ↩︎ ↩︎

  46. J. Bevendorff, B. Stein, M. Hagen, M. Potthast (2018). Elastic ChatNoir: Search Engine for the ClueWeb and the Common Crawl. Advances in Information Retrieval. 40th European Conference on IR Research (ECIR 2018). ↩︎

  47. K. Lee, D. Ippolito, A. Nystrom, C. Zhang, D. Eck, C. Callison-Burch, N. Carlini (2022). Deduplicating training data makes language models better. arXiv:2107.06499 ↩︎

  48. A. Fang, H. Pouransari, M. Jordan, A. Toshev, V. Shankar, L. Schmidt, T. Gunter (2025). Datasets, documents, and repetitions: The practicalities of unequal data quality. arXiv:2503.07879 ↩︎

  49. N. Muennighoff, A. M. Rush, B. Barak, T. L. Scao, A. Piktus, N. Tazi, et al (2025). Scaling data-constrained language models. arXiv:2305.16264 ↩︎

  50. Duplodocus:https://github.com/allenai/duplodocus ↩︎

  51. A. Wettig, K. Lo, S. Min, H. Hajishirzi, D. Chen, L. Soldaini (2025). Organize the web: Constructing domains enhances pre-training data curation. arXiv:2502.10341 ↩︎ ↩︎ ↩︎ ↩︎

  52. Teknium (2023). Openhermes 2.5: An open dataset of synthetic data for generalist llm assistants. https://huggingface.co/datasets/teknium/OpenHermes-2.5 ↩︎

  53. A. Fan, Y. Jernite, E. Perez, D. Grangier, J. Weston, M. Auli (2019). Eli5: Long form question answering. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. ↩︎

  54. N. Ding, Y. Chen, B. Xu, Y. Qin, S. Hu, Z. Liu, et al (2023). Enhancing chat language models by scaling high-quality instructional conversations. Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing. ↩︎

  55. W. Zhao, X. Ren, J. Hessel, C. Cardie, Y. Choi, Y. Deng (2024). Wildchat: 1m chatgpt interaction logs in the wild. arXiv:2405.01470 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  56. L. Soldaini, K. Lo (2023). peS2o (Pretraining Efficiently on S2ORC) Dataset. https://github.com/allenai/pes2o ↩︎

  57. G. Penedo, H. Kydl’ček, A. Lozhkov, M. Mitchell, C. Raffel, L. Von Werra, et al (2024). The FineWeb Datasets: Decanting the Web for the Finest Text Data at Scale↩︎

  58. L. B. Allal, A. Lozhkov, E. Bakouch, G. M. Blázquez, G. Penedo, L. Tunstall, et al (2025). Smollm2: When smol goes big – data-centric training of a small language model. arXiv:2502.02737 ↩︎ ↩︎ ↩︎

  59. A. Lozhkov, R. Li, L. B. Allal, F. Cassano, J. Lamy-Poirier, N. Tazi, et al (2024). Starcoder 2 and the stack v2: The next generation. arXiv:2402.19173 ↩︎ ↩︎

  60. Z. Azerbayev, H. Schoelkopf, K. Paster, M. D. Santos, S. McAleer, A. Q. Jiang, et al (2023). Llemma: An open language model for mathematics↩︎

  61. Together AI (2023). RedPajama: An open source recipe to reproduce LLaMA training dataset. https://github.com/togethercomputer/RedPajama-Data ↩︎

  62. K. Paster, M. D. Santos, Z. Azerbayev, J. Ba (2023). Openwebmath: An open dataset of high-quality mathematical web text↩︎

  63. G. Attardi (2015). Wikiextractor. https://github.com/attardi/wikiextractor ↩︎

  64. M. F. Chen, T. Murray, D. Heineman, M. Jordan, H. Hajishirzi, C. Ré, et al (2026). Olmix: Efficient mixture recomputation for evolving lm datasets↩︎

  65. Q. Liu, X. Zheng, N. Muennighoff, G. Zeng, L. Dou, T. Pang, et al (2024). Regmix: Data mixture as regression for language model pre-training. arXiv:2407.01492 ↩︎

  66. J. Ye, P. Liu, T. Sun, J. Zhan, Y. Zhou, X. Qiu (2025). Data mixing laws: Optimizing data mixtures by predicting language modeling performance. arXiv:2403.16952 ↩︎

  67. S. Diao, Y. Yang, Y. Fu, X. Dong, D. Su, M. Kliegl, et al (2025). Climb: Clustering-based iterative data mixture bootstrapping for language model pre-training. arXiv:2504.13161 ↩︎

  68. Y. Li, Y. Ma, S. Yan, C. Zhang, J. Liu, J. Lu, et al (2025). Model merging in pre-training of large language models. https://api.semanticscholar.org/CorpusID:278739754 ↩︎

  69. K. Fujii, Y. Tajima, S. Mizuki, H. Shimada, T. Shiotani, K. Saito, et al (2025). Rewriting pre-training data boosts llm performance in math and code. arXiv:2505.02881 ↩︎ ↩︎

  70. Z. Wang, F. Zhou, X. Li, P. Liu (2025). Octothinker: Mid-training incentivizes reinforcement learning scaling. arXiv:2506.20512 ↩︎

  71. F. Zhou, Z. Wang, N. Ranjan, Z. Cheng, L. Tang, G. He, et al (2025). Megamath: Pushing the limits of open math corpora. arXiv:2504.02807 ↩︎

  72. D. Su, K. Kong, Y. Lin, J. Jennings, B. Norick, M. Kliegl, et al (2025). Nemotron-cc: Transforming common crawl into a refined long-horizon pretraining dataset. arXiv:2412.02595 ↩︎

  73. N. Lambert, J. D. Morrison, V. Pyatkin, S. Huang, H. Ivison, F. Brahman, et al (2024). Tulu 3: Pushing frontiers in open language model post-training. https://api.semanticscholar.org/CorpusID:274192505 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  74. J. Wei, M. Bosma, V. Zhao, K. Guu, A. W. Yu, B. Lester, et al (2021). Finetuned language models are zero-shot learners. International Conference on Learning Representations. ↩︎ ↩︎ ↩︎

  75. S. Longpre, L. Hou, T. Vu, A. Webson, H. W. Chung, Y. Tay, et al (2023). The flan collection: Designing data and methods for effective instruction tuning. arXiv:2301.13688 ↩︎

  76. P. Kargupta, S. S. Li, H. Wang, J. Lee, S. Chen, O. Ahia, et al (2025). Cognitive foundations for reasoning and their manifestation in llms↩︎ ↩︎

  77. J. Toy, J. MacAdam, P. Tabor (2024). Metacognition is all you need? using introspection in generative agents to improve goal-directed behavior. arXiv:2401.10910 ↩︎

  78. F. Callaway, B. Opheusden, S. Gul, P. Das, P. Krueger, T. Griffiths, F. Lieder (2022). Rational use of cognitive resources in human planning. Nature Human Behaviour. ↩︎

  79. S. Fleming, N. Daw (2017). Self-evaluation of decision-making: A general bayesian framework for metacognitive computation. Psychological Review. ↩︎

  80. R. Ackerman, V. A. Thompson (2017). Meta-reasoning: Monitoring and control of thinking and reasoning. Trends in Cognitive Sciences. https://www.sciencedirect.com/science/article/pii/S1364661317301055 ↩︎

  81. T. L. Griffiths, F. Callaway, M. B. Chang, E. Grant, P. M. Krueger, F. Lieder (2019). Doing more with less: meta-reasoning and meta-learning in humans and machines. Current Opinion in Behavioral Sciences. https://www.sciencedirect.com/science/article/pii/S2352154618302122 ↩︎

  82. G. Haupt (2018). Hierarchical thinking: a cognitive tool for guiding coherent decision making in design problem solving. International Journal of Technology and Design Education. https://doi.org/10.1007/s10798-016-9381-0 ↩︎

  83. J. Olieslagers, Z. Bnaya, Y. Li, W. Ma (2024). Backward reasoning through and/or trees to solve problems. Proceedings of the Annual Meeting of the Cognitive Science Society. https://escholarship.org/uc/item/9h4863xm ↩︎

  84. J. M. Joyce (2009). Causal reasoning and backtracking. Philosophical Studies. ↩︎

  85. H. Markovits, V. A. Thompson, J. Brisson (2015). Metacognition and abstract reasoning. Memory & Cognition. https://doi.org/10.3758/s13421-014-0488-9 ↩︎

  86. K. Gandhi, A. Chakravarthy, A. Singh, N. Lile, N. D. Goodman (2025). Cognitive behaviors that enable self-improving reasoners, or, four habits of highly effective stars. arXiv:2503.01307 ↩︎ ↩︎

  87. M. Luo, S. Tan, J. Wong, X. Shi, W. Y. Tang, M. Roongta, et al (2025). Deepscaler: Surpassing o1-preview with a 1.5b model by scaling rl. https://pretty-radio-b75.notion.site/DeepScaleR-Surpassing-O1-Preview-with-a-1-5B-Model-by-Scaling-RL-19681902c1468005bed8ca303013a4e2 ↩︎ ↩︎

  88. I. Moshkov, D. Hanley, I. Sorokin, S. Toshniwal, C. Henkel, B. Schifferer, et al (2025). AIMO-2 Winning Solution: Building State-of-the-Art Mathematical Reasoning Models with OpenMathReasoning dataset. arXiv:2504.16891 ↩︎ ↩︎

  89. R. Li, J. Fu, B.-W. Zhang, T. Huang, Z. Sun, C. Lyu, et al (2023). Taco: Topics in algorithmic code generation dataset. arXiv:2312.14852 ↩︎

  90. D. Hendrycks, S. Basart, S. Kadavath, M. Mazeika, A. Arora, E. Guo, et al (2021). Measuring coding challenge competence with apps. NeurIPS. ↩︎

  91. W. U. Ahmad, S. Narenthiran, S. Majumdar, A. Ficek, S. Jain, J. Huang, et al (2025). Opencodereasoning: Advancing data distillation for competitive coding. arXiv:2504.01943 ↩︎ ↩︎ ↩︎ ↩︎

  92. Z. Zeng, H. Ivison, Y. Wang, L. Yuan, S. S. Li, Z. Ye, et al (2025). Rlve: Scaling up reinforcement learning for language models with adaptive verifiable environments↩︎

  93. I. Magnusson, A. Bhagia, V. Hofmann, L. Soldaini, A. H. Jha, O. Tafjord, et al (2024). Paloma: A benchmark for evaluating language model fit. arXiv:2312.10523 ↩︎

  94. N. Godey, W. Antoun, R. Touchent, R. Bawden, Éric de la Clergerie, B. Sagot, D. Seddah (2025). Gaperon: A peppered english-french generative language model suite. arXiv:2510.25771 ↩︎

  95. I. Magar, R. Schwartz (2022). Data contamination: From memorization to exploitation. https://api.semanticscholar.org/CorpusID:247475929 ↩︎

  96. S. Bordt, S. Srinivas, V. Boreiko, U. von Luxburg (2024). How much can we forget about data contamination?. https://api.semanticscholar.org/CorpusID:273163321 ↩︎

  97. decon:https://github.com/allenai/decon ↩︎

  98. N. Muennighoff, Z. Yang, W. Shi, X. L. Li, L. Fei-Fei, H. Hajishirzi, et al (2025). s1: Simple test-time scaling. arXiv:2501.19393 ↩︎

  99. GLM-4.5 Team, A. Zeng, X. Lv, Q. Zheng, Z. Hou, B. Chen, et al (2025). GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models. arXiv:2508.06471 ↩︎ ↩︎

  100. Kimi Team, Y. Bai, Y. Bao, G. Chen, J. Chen, N. Chen, et al (2025). Kimi k2: Open agentic intelligence. arXiv:2507.20534 ↩︎

  101. DeepSeek-AI (2025). DeepSeek-V3.1 release. https://api-docs.deepseek.com/news/news250821 ↩︎

  102. C. Goddard (2025). Extending AFM-4.5B to 64K context length. https://www.arcee.ai/blog/extending-afm-4-5b-to-64k-context-length ↩︎

  103. NVIDIA, A. Basant, A. Khairnar, A. Paithankar, A. Khattar, A. Renduchintala, et al (2025). NVIDIA Nemotron Nano 2: An accurate and efficient hybrid mamba-transformer reasoning model. arXiv:2508.14444 ↩︎

  104. T. Gao, A. Wettig, H. Yen, D. Chen (2025). How to train long-context language models (effectively). ACL. ↩︎

  105. L. Wu, D. Zhu, G. Zhao, Z. Yu, J. Ran, X. Wong, et al (2025). LongAttn: Selecting long-context training data via token-level attention. arXiv:2502.16860 ↩︎

  106. B. Peng, J. Quesnelle, H. Fan, E. Shippole (2023). Yarn: Efficient context window extension of large language models. arXiv:2309.00071 ↩︎ ↩︎

  107. A. Bertsch, L. Soldaini, M. Gormley, G. Neubig, H. Hajishirzi, K. Lo, D. Groeneveld (2026). Cracks in the foundation: Architectural choices impact long context extension↩︎

  108. C.-P. Hsieh, S. Sun, S. Kriman, S. Acharya, D. Rekesh, F. Jia, et al (2024). Ruler: What’s the real context size of your long-context language models?. arXiv:2404.06654 ↩︎ ↩︎

  109. E. Nelson, G. Kollias, P. Das, S. Chaudhury, S. Dan (2024). Needle in the haystack for memory based large language models. arXiv:2407.01437 ↩︎

  110. H. Yen, T. Gao, M. Hou, K. Ding, D. Fleischer, P. Izsak, et al (2025). HELMET: How to evaluate long-context models effectively and thoroughly. The Thirteenth International Conference on Learning Representations. https://openreview.net/forum?id=293V3bJbmE ↩︎ ↩︎

  111. 原文注:RULER 和 HELMET 之间存在一定重叠,所以这不是一套完美的留出集;不过重叠的子集通常是较简单的那些,模型在上面轻易就能拿到接近满分。 ↩︎

  112. L.-C. Xiaomi, :, B. Xia, B. Shen, Cici, D. Zhu, et al (2025). MiMo: Unlocking the reasoning potential of language model – from pretraining to posttraining. arXiv:2505.07608 ↩︎

  113. 原文注:这批数据的预处理细节见 §3.4.2。 ↩︎

  114. Z. Jiang, M. Y. R. Yang, M. Tsirlin, R. Tang, J. Lin (2022). Less is more: Parameter-free text classification with gzip. arXiv:2212.09410 ↩︎

  115. R. Pandey (2024). gzip predicts data-dependent scaling laws. arXiv:2405.16684 ↩︎

  116. L. Fang, Y. Wang, Z. Liu, C. Zhang, S. Jegelka, J. Gao, et al (2025). What is wrong with perplexity for long-context language modeling?. arXiv:2410.23771 ↩︎ ↩︎

  117. Y. Bai, X. Lv, J. Zhang, H. Lyu, J. Tang, Z. Huang, et al (2024). LongBench: A bilingual, multitask benchmark for long context understanding. Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). https://aclanthology.org/2024.acl-long.172/ ↩︎

  118. Y. Bai, S. Tu, J. Zhang, H. Peng, X. Wang, X. Lv, et al (2025). LongBench v2: Towards deeper understanding and reasoning on realistic long-context multitasks. Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). https://aclanthology.org/2025.acl-long.183/ ↩︎

  119. C. M. Pham, Y. Chang, M. Iyyer (2025). Clipper: Compression enables long-context synthetic data generation. arXiv:2502.14854 ↩︎

  120. A. Yang, B. Yu, C. Li, D. Liu, F. Huang, H. Huang, et al (2025). Qwen2.5-1M Technical Report. arXiv:2501.15383 ↩︎

  121. 原文注:合成聚合任务的实现代码见 https://github.com/allenai/dolma3/tree/main/datasets/dolma3_longmino_mix/synthetic_cwe_rex。 ↩︎

  122. J. Su, M. Ahmed, Y. Lu, S. Pan, W. Bo, Y. Liu (2024). Roformer: Enhanced transformer with rotary position embedding. Neurocomputing. ↩︎

  123. W. Xiong, J. Liu, I. Molybog, H. Zhang, P. Bhargava, R. Hou, et al (2023). Effective long-context scaling of foundation models. arXiv:2309.16039 ↩︎

  124. B. Rozière, J. Gehring, F. Gloeckle, S. Sootla, I. Gat, X. E. Tan, et al (2024). Code llama: Open foundation models for code. arXiv:2308.12950 ↩︎

  125. S. Chen, S. Wong, L. Chen, Y. Tian (2023). Extending context window of large language models via positional interpolation. arXiv:2306.15595 ↩︎

  126. H. Ding, Z. Wang, G. Paolini, V. Kumar, A. Deoras, D. Roth, S. Soatto (2024). Fewer truncations improve language modeling. arXiv:2404.10830 ↩︎

  127. Y. Zhao, Y. Qu, K. Staniszewski, S. Tworkowski, W. Liu, P. Miłoś, et al (2024). Analysing the impact of sequence composition on language model pre-training. Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). http://dx.doi.org/10.18653/v1/2024.acl-long.427 ↩︎

  128. E. Guha, R. Marten, S. Keh, N. Raoof, G. Smyrnis, H. Bansal, et al (2025). Openthoughts: Data recipes for reasoning models. arXiv:2506.04178 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  129. PrimeIntellect (2025). Synthetic-2. https://huggingface.co/datasets/PrimeIntellect/SYNTHETIC-2 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  130. 原文注:更具体地说,OpenThoughts3 和 S1 只用了监督微调;SmolLM 用了 SFT 和 DPO,但没有做 RL。 ↩︎

  131. D. Guo, D. Yang, H. Zhang, J. Song, R. Zhang, R. Xu, et al (2025). Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning. arXiv:2501.12948 ↩︎ ↩︎ ↩︎

  132. B. Adler, N. Agarwal, A. Aithal, D. H. Anh, P. Bhattacharya, A. Brundyn, et al (2024). Nemotron-4 340b technical report. arXiv:2406.11704 ↩︎

  133. 原文注:在 K2-V2-Instruct 上跑 AlpacaEval 会导致 LLM 评判者输出的 token 解析出错,得到空的偏好分数。如果我们能想出解决办法,会相应更新报告。 ↩︎

  134. 原文注:Olmo 3 Think 32B 训练了 750 步,我们在首次发布之后继续这次运行,为 Olmo 3.1 Think 32B 推进到 2300 步。受算力限制我们停在了这里,但要指出的是表现尚未完全饱和,这说明更长的运行还能进一步提升表现。 ↩︎

  135. A. Köpf, Y. Kilcher, D. von Rütte, S. Anagnostidis, Z. R. Tam, K. Stevens, et al (2024). Openassistant conversations-democratizing large language model alignment. Advances in Neural Information Processing Systems. ↩︎ ↩︎ ↩︎ ↩︎

  136. NVIDIA AI (2025). Nemotron-post-training-dataset-v1. https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v1 ↩︎ ↩︎ ↩︎

  137. F. Brahman, S. Kumar, V. Balachandran, P. Dasigi, V. Pyatkin, A. Ravichander, et al (2024). The art of saying no: Contextual noncompliance in language models. arXiv:2407.12043 ↩︎ ↩︎ ↩︎

  138. S. Han, K. Rao, A. Ettinger, L. Jiang, B. Y. Lin, N. Lambert, et al (2024). Wildguard: Open one-stop moderation tools for safety risks, jailbreaks, and refusals of llms. arXiv:2406.18495 ↩︎ ↩︎ ↩︎

  139. L. Jiang, K. Rao, S. Han, A. Ettinger, F. Brahman, S. Kumar, et al (2024). Wildteaming at scale: From in-the-wild jailbreaks to (adversarially) safer language models. arXiv:2406.18510 ↩︎ ↩︎ ↩︎

  140. S. Singh, F. Vargus, D. Dsouza, B. F. Karlsson, A. Mahendiran, W.-Y. Ko, et al (2024). Aya dataset: An open-access collection for multilingual instruction tuning. arXiv:2402.06619 ↩︎ ↩︎ ↩︎ ↩︎

  141. L. Zha, J. Zhou, L. Li, R. Wang, Q. Huang, S. Yang, et al (2023). Tablegpt: Towards unifying tables, natural language and commands into one gpt. arXiv:2307.08674 ↩︎ ↩︎ ↩︎ ↩︎

  142. H. Zeng, J. Yang, Y. Zhang, B. Yu, S. Wang, Z. Liu, et al (2025). Acecoder: Acing coder rl via automated test-case synthesis. arXiv:2502.01718 ↩︎ ↩︎ ↩︎

  143. The Algorithms (2025). The algorithms – python. https://github.com/TheAlgorithms/Python ↩︎

  144. A. Bercovich, I. Levy, I. Golan, M. Dabbah, R. El-Yaniv, O. Puny, et al (2025). Llama-nemotron: Efficient reasoning models. arXiv:2505.00949 ↩︎

  145. V. Pyatkin, S. Malik, V. Graf, H. Ivison, S. Huang, P. Dasigi, et al (2025). Generalizing verifiable instruction following. arXiv:2507.02833 ↩︎ ↩︎ ↩︎ ↩︎

  146. Y. Meyer, D. Corneil (2025). Nemotron-Personas-USA: Synthetic personas aligned to real-world distributions, June 2025. https://huggingface.co/datasets/nvidia/Nemotron-Personas-USA ↩︎

  147. A. Chatterji, T. Cunningham, D. Deming, Z. Hitzig, C. Ong, C. Y. Shan, K. Wadman (2025). How people use ChatGPT↩︎ ↩︎

  148. 原文注:为评估过滤流程的影响,我们手工搭了一个内部基准来对模型做体感测试。 ↩︎

  149. M. Wortsman, G. Ilharco, S. Y. Gadre, R. Roelofs, R. Gontijo-Lopes, A. S. Morcos, et al (2022). Model soups: averaging weights of multiple fine-tuned models improves accuracy without increasing inference time. International conference on machine learning. ↩︎

  150. J. Morrison, N. A. Smith, H. Hajishirzi, P. W. Koh, J. Dodge, P. Dasigi (2024). Merge to learn: Efficiently adding skills to language models with model merging. arXiv:2410.12937 ↩︎

  151. C. Goddard, S. Siriwardhana, M. Ehghaghi, L. Meyers, V. Karpukhin, B. Benedict, et al (2024). Arcee’s MergeKit: A toolkit for merging large language models. Proceedings of the 2024 Conference on Empirical Methods in Natural Language Processing: Industry Track. https://aclanthology.org/2024.emnlp-industry.36 ↩︎

  152. N. Lambert (2025). Reinforcement Learning from Human Feedback. https://rlhfbook.com ↩︎

  153. R. Rafailov, A. Sharma, E. Mitchell, C. D. Manning, S. Ermon, C. Finn (2024). Direct preference optimization: Your language model is secretly a reward model. Advances in Neural Information Processing Systems. ↩︎

  154. K. D’Oosterlinck, W. Xu, C. Develder, T. Demeester, A. Singh, C. Potts, et al (2025). Anchored preference optimization and contrastive revisions: Addressing underspecification in alignment. Transactions of the Association for Computational Linguistics. ↩︎ ↩︎

  155. J. Kim, A. Goyal, A. Zhang, B. Xiong, R. Hou, M. Kambadur, et al (2025). A systematic examination of preference learning through the lens of instruction-following. Proceedings of the 2025 Conference of the Nations of the Americas Chapter of the Association for Computational Linguistics: Human Language Technologies (Volume 1: Long Papers). ↩︎

  156. 原文注:Olmo 2 和 Tülu 3 采用的 UltraFeedback 式 LLM 评判者偏好流水线,假设有一批多样的模型可用于构造带有效对比的偏好配对;但可用的开放思考模型很少,使得 Olmo 2 的流水线在这个场景下不够理想。我们的 Dolci-Instruct-DPO 数据集确实受益于模型池的多样性;我们能在 Dolci-Instruct-DPO 中用 LLM 评判数据进一步补充 delta learning 启发式数据,取得互补的增益(§5.3)。 ↩︎

  157. S. Toshniwal, W. Du, I. Moshkov, B. Kisacanin, A. Ayrapetyan, I. Gitman (2024). Openmathinstruct-2: Accelerating ai for math with massive open-source instruction data. arXiv:2410.01560 ↩︎ ↩︎

  158. N. Lambert, T. K. Gilbert, T. Zick (2023). Entangled preferences: The history and risks of reinforcement learning and human feedback. arXiv:2310.13595 ↩︎

  159. Z. Luo, C. Xu, P. Zhao, Q. Sun, X. Geng, W. Hu, et al (2023). Wizardcoder: Empowering code large language models with evol-instruct↩︎ ↩︎

  160. D. Wadden, K. Shi, J. Morrison, A. Naik, S. Singh, N. Barzilay, et al (2024). Sciriff: A resource to enhance language model instruction-following over scientific literature. arXiv:2406.07835 ↩︎ ↩︎

  161. Z. Wang, Y. Dong, O. Delalleau, J. Zeng, G. Shen, D. Egert, et al (2024). Helpsteer2: Open-source dataset for training top-performing reward models. arXiv:2406.08673 ↩︎ ↩︎ ↩︎

  162. G. Cui, L. Yuan, N. Ding, G. Yao, W. Zhu, Y. Ni, et al (2023). UltraFeedback: Boosting language models with scaled ai feedback. arXiv:2310.01377 ↩︎ ↩︎ ↩︎

  163. S. Kim, S. Bae, J. Shin, S. Kang, D. Kwak, K. Yoo, M. Seo (2023). Aligning large language models through synthetic feedback. Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing. https://aclanthology.org/2023.emnlp-main.844/ ↩︎

  164. Z. Shao, P. Wang, Q. Zhu, R. Xu, J. Song, X. Bi, et al (2024). Deepseekmath: Pushing the limits of mathematical reasoning in open language models. arXiv:2402.03300 ↩︎ ↩︎

  165. Q. Yu, Z. Zhang, R. Zhu, Y. Yuan, X. Zuo, Y. Yue, et al (2025). Dapo: An open-source llm reinforcement learning system at scale. arXiv:2503.14476 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  166. F. Yao, L. Liu, D. Zhang, C. Dong, J. Shang, J. Gao (2025). Your efficient rl framework secretly brings you off-policy rl training, Aug. 2025. https://fengyao.notion.site/off-policy-rl ↩︎ ↩︎ ↩︎

  167. A. Piché, E. Kamaloo, R. Pardinas, D. Bahdanau (2025). Pipelinerl: Faster on-policy reinforcement learning for long sequence generatio. arXiv:2509.19128 ↩︎ ↩︎

  168. 原文注:我们还试过一些额外改动(例如超长过滤),但没有发现它们能带来一致的提升。 ↩︎

  169. 原文注:代码执行。在代码环境上做 RL 时,我们需要真的把生成的代码对着测试用例执行来计算奖励。我们用 AWS Lambda 来做这件事。用分布式云函数的方式能确保验证不阻塞训练进程,也让我们能够无缝扩容。许多测试用例套件(例如 SYNTHETIC-2 中的那些)包含专门用来惩罚时间复杂度差的程序的测试用例,跑这些测试单个程序就可能超过数百 MB,超出我们本机的资源。 ↩︎

  170. 原文注:除非另有说明,LM 评判者我们用 vLLM 托管关闭思考模式的 Qwen3 32B,最大输入提示词 32768 token、回复长度限制 2048 token。评判者提示词见原文附录。我们还试过谜题验证器(对照参考答案检查谜题解法是否正确)和长度控制验证器,但没有发现它们对下游表现有用。 ↩︎

  171. J. Hu, Y. Zhang, Q. Han, D. Jiang, X. Zhang, H.-Y. Shum (2025). Open-reasoner-zero: An open source approach to scaling up reinforcement learning on the base model. arXiv:2503.24290 ↩︎ ↩︎ ↩︎

  172. Y. Chen, Z. Yang, Z. Liu, C. Lee, P. Xu, M. Shoeybi, et al (2025). Acereason-nemotron: Advancing math and code reasoning through reinforcement learning. arXiv:2505.16400 ↩︎ ↩︎

  173. C. An, Z. Xie, X. Li, L. Li, J. Zhang, S. Gong, et al (2025). Polaris: A post-training recipe for scaling reinforcement learning on advanced reasoning models. https://hkunlp.github.io/blog/2025/Polaris ↩︎

  174. Z. Su, L. Pan, X. Bai, D. Liu, G. Dong, J. Huang, et al (2025). Klear-reasoner: Advancing reasoning capability via gradient-preserving clipping policy optimization. arXiv:2508.07629 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  175. Y. Sun, S. Hu, G. Zhou, K. Zheng, H. Hajishirzi, N. Dziri, D. X. Song (2025). Omega: Can llms reason outside the box in math? evaluating exploratory, compositional, and transformative generalization. https://api.semanticscholar.org/CorpusID:280000246 ↩︎ ↩︎ ↩︎

  176. Y. Su, D. Yu, L. Song, J. Li, H. Mi, Z. Tu, et al (2025). Expanding rl with verifiable rewards across diverse domains. arXiv:2503.23829 ↩︎ ↩︎

  177. M. Luo, S. Tan, J. Wong, X. Shi, W. Y. Tang, M. Roongta, et al (2025). Deepscaler: Surpassing o1-preview with a 1.5 b model by scaling rl. Notion Blog. ↩︎ ↩︎

  178. J. Zhou, T. Lu, S. Mishra, S. Brahma, S. Basu, Y. Luan, et al (2023). Instruction-following evaluation for large language models. arXiv:2311.07911 ↩︎

  179. WildChat-4.8M:https://huggingface.co/datasets/allenai/WildChat-4.8M ↩︎

  180. 原文注:在我们 57,819 条样本的中间通用数据集里,出现最多的角色依次是 Natsuki(1284 次)、Monika(1243)、Sayori(1076)、Yuri(957)、Sakura(453)和 MC(424)。过滤前其余角色都在 60 次以下。 ↩︎

  181. 原文注:具体来说,我们在过滤之后把以下任务再下采样 50%:trans_integrationslogic_gridworld_rookmovelogic_puzzles_grid_chipcomp_grid_chipscomp_n_gonarithmetic_matrix_svdcomp_parametric_intersectioncomp_vertex_color。 ↩︎

  182. M. Noukhovitch, S. Huang, S. Xhonneux, A. Hosseini, R. Agarwal, A. Courville (2024). Asynchronous rlhf: Faster and more efficient off-policy rl for language models. arXiv:2410.18252 ↩︎

  183. J. Rasley, S. Rajbhandari, O. Ruwase, Y. He (2020). Deepspeed: System optimizations enable training deep learning models with over 100 billion parameters. Proceedings of the 26th ACM SIGKDD international conference on knowledge discovery & data mining. ↩︎

  184. W. Kwon, Z. Li, S. Zhuang, Y. Sheng, L. Zheng, C. H. Yu, et al (2023). Efficient memory management for large language model serving with pagedattention. Proceedings of the ACM SIGOPS 29th Symposium on Operating Systems Principles. ↩︎

  185. 原文注:7B 的训练运行中,每个 actor 用单卡,通过数据并行扩展生成。这套 RL 设定对读过 Horgan 等人(Ape-X)或 Silver 等人(AlphaZero)的读者来说会很熟悉。32B 则每个 actor 用一个节点,再同样通过数据并行扩展。 ↩︎

  186. 原文注:在我们一次有代表性的主 RL 运行中,每个训练步平均耗时 1000 秒,其中 125 秒花在训练上,而一批补全的生成也要 1000 秒。由于我们把生成与训练重叠起来,瓶颈完全在生成侧。因此我们把大量工程资源投在改进生成的处理方式上——训练代码沿用 Olmo 2 的即可,因为生成要提速 8 倍以上,训练才会成为瓶颈。 ↩︎

  187. 原文注:即在 vLLM 里调用 llm.generate。 ↩︎

  188. H. Van Hasselt, Y. Doron, F. Strub, M. Hessel, N. Sonnerat, J. Modayil (2018). Deep reinforcement learning and the deadly triad. arXiv:1812.02648 ↩︎

  189. Y. Yue, Z. Chen, R. Lu, A. Zhao, Z. Wang, Y. Yue, et al (2025). Does reinforcement learning really incentivize reasoning capacity in llms beyond the base model?. arXiv:2504.13837 ↩︎

  190. Z. Cheng, S. Hao, T. Liu, F. Zhou, Y. Xie, F. Yao, et al (2025). Revisiting reinforcement learning for llm reasoning from a cross-domain perspective. arXiv:2506.14965 ↩︎

  191. 原文注:初版 checkpoint 要在 9 个节点上连续训练 14 天才能跑完 1 个 epoch;用上连续批处理和 inflight 更新之后,我们能在 5 个节点上 7 天跑完 1 个 epoch。 ↩︎

  192. 原文注:我们没有报告 Essential AI 的 Rnj-1 Instruct,因为我们观测到的数字和他们报告的数字有出入。定性上看,Rnj-1 的行为像一个代码专用模型(连 IFEval 和安全对话任务都会生成代码)。我们的评测框架面向通用指令模型,对话任务不带代码执行。即便使用他们推荐的、用于关闭产码行为的通用系统提示词,Rnj-1 的分数仍低于他们的报告(例如 AIME 25 上 16.1 对 43.3、MBPP+ 上 64.8 对 75.7、HumanEval+ 上 79.3 对 83.5)。因此我们像对待其他专用模型(例如 Qwen Coder)那样把它排除在对比之外。 ↩︎

  193. 原文注:关于缺失的函数调用评测:Olmo 2 Instruct、Gemma 2 和 3 不支持函数调用;Apertus 和 Granite 不被 BFCL 支持,其他任务我们也没能顺利跑起来。相关 issue 解决后我们会更新论文分数。 ↩︎

  194. ASTA Scientific Corpus MCP 服务器:https://allenai.org/asta/resources/mcp ↩︎

  195. R. Shao, A. Asai, S. Z. Shen, H. Ivison, V. Kishore, J. Zhuo, et al (2025). DR Tulu: Reinforcement learning with evolving rubrics for deep research. arXiv:2511.19399 ↩︎

  196. Z. Yang, P. Qi, S. Zhang, Y. Bengio, W. W. Cohen, R. Salakhutdinov, C. D. Manning (2018). Hotpotqa: A dataset for diverse, explainable multi-hop question answering. Conference on Empirical Methods in Natural Language Processing. https://api.semanticscholar.org/CorpusID:52822214 ↩︎

  197. D. Shi, J. Cao, Q. Chen, W. Sun, W. Li, H. Lu, et al (2025). Taskcraft: Automated generation of agentic tasks. https://api.semanticscholar.org/CorpusID:279318561 ↩︎

  198. J. Wu, W. Yin, Y. Jiang, Z. Wang, Z. Xi, R. Fang, et al (2025). WebWalker: Benchmarking LLMs in web traversal. Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). https://aclanthology.org/2025.acl-long.508/ ↩︎

  199. M. Miroyan, T.-H. Wu, L. King, T. Li, J. Pan, X. Hu, et al (2025). Search arena: Analyzing search-augmented llms. https://api.semanticscholar.org/CorpusID:279243096 ↩︎

  200. A. Asai, J. He, R. Shao, W. Shi, A. Singh, J. C. Chang, et al (2024). Openscholar: Synthesizing scientific literature with retrieval-augmented lms. https://api.semanticscholar.org/CorpusID:274166189 ↩︎

  201. Serper API:https://serper.dev/ ↩︎

  202. Z. Liu, T. Hoang, J. Zhang, M. Zhu, T. Lan, S. Kokane, et al (2024). Apigen: Automated pipeline for generating verifiable and diverse function-calling datasets. https://api.semanticscholar.org/CorpusID:270738094 ↩︎

  203. W. Liu, X. Huang, X. Zeng, X. Hao, S. Yu, D. Li, et al (2024). Toolace: Winning the points of llm function calling. https://api.semanticscholar.org/CorpusID:272368347 ↩︎

  204. OpenAPI 规范:https://swagger.io/specification/ ↩︎

  205. S. G. Patil, H. Mao, C. Cheng-Jie Ji, F. Yan, V. Suresh, I. Stoica, J. E. Gonzalez (2025). The berkeley function calling leaderboard (bfcl): From tool use to agentic evaluation of large language models. Forty-second International Conference on Machine Learning. ↩︎

  206. J. Bragg, M. D’Arcy, N. Balepur, D. Bareket, B. Dalvi, S. Feldman, et al (2025). Astabench: Rigorous benchmarking of ai agents with a scientific research suite. arXiv:2510.21652 ↩︎ ↩︎

  207. M. D. Skarlinski, S. Cox, J. M. Laurent, J. D. Braza, M. Hinks, M. J. Hammerling, et al (2024). Language agents achieve superhuman synthesis of scientific knowledge. arXiv:2409.13740 ↩︎

  208. J. Wei, N. Karina, H. W. Chung, Y. J. Jiao, S. Papay, A. Glaese, et al (2024). Measuring short-form factuality in large language models. arXiv:2411.04368 ↩︎

  209. 原文注:我们很早就决定把 WildChat 提示词截断到至多占提示词混合的 35%。如果你连读一个月 WildChat 的提示词,你也会这么做。 ↩︎

  210. 原文注:初步实验表明,替代的 RL 设定——例如先在纯数学数据上热身、再切到不含数学的混合数据集——会导致次优的表现。 ↩︎

  211. 原文注:7B 和 32B 我们都试过 8K 和 16K 长度的训练;虽然评测分数受长度影响很小,但在内部演示里定性测试 7B-16K 和 32B-8K 配置时,我们注意到了一些不理想的行为。 ↩︎

  212. 原文注:用 GPT 评判数据做的初步实验显示了相似的趋势。 ↩︎

  213. M. G. Azar, M. Rowland, B. Piot, D. Guo, D. Calandriello, M. Valko, R. Munos (2023). A general theoretical paradigm to understand learning from human preferences. arXiv:2310.12036 ↩︎

  214. S. V. Marjanović, A. Patel, V. Adlakha, M. Aghajohari, P. BehnamGhader, M. Bhatia, et al (2025). Deepseek-r1 thoughtology: Let’s think about llm reasoning. arXiv:2504.07128 ↩︎

  215. M. Liu, S. Diao, X. Lu, J. Hu, X. Dong, Y. Choi, et al (2025). Prorl: Prolonged reinforcement learning expands reasoning boundaries in large language models. arXiv:2505.24864 ↩︎

  216. N. Stiennon, L. Ouyang, J. Wu, D. Ziegler, R. Lowe, C. Voss, et al (2020). Learning to summarize with human feedback. Advances in Neural Information Processing Systems. ↩︎