
-
报告链接:https://www.datocms-assets.com/64837/1763662397-1763646865-olmo_3_technical_report-1.pdf
TL;DR
近日 AllenAI(AI2)开源了 OLMo 3 系列,OLMo 3 是一个包含 7B 和 32B 参数规模的开源语言模型家族,涵盖了 Base(基座)、Think(推理/思维链)、Instruct(指令遵循)以及 RL-Zero 版本。与以往的开源模型不同,OLMo 3 强调发布完整的“模型流(Model Flow)”,即不仅仅公开最终的权重,还包括从预训练到后训练各个阶段的数据集(Dolma 3, Dolci)、代码(OLMo-core, OlmoRL)、中间检查点以及训练日志。
下面 OLMo 3 技术报告的解读,本文略长(2万字)建议先收藏再阅读。
核心亮点包括:
-
OLMo 3 Base:在 5.9T tokens 上预训练,通过独特的 Token 约束混合与质量感知上采样策略优化数据分布;引入了大规模的 olmOCR 处理后的科学 PDF 数据;并在 100B tokens 的中期训练(Midtraining)中针对代码、数学和 QA 进行了强化。 -
OLMo 3 Think:这是 OLMo 3 的旗舰推理模型,采用了 SFT -> DPO -> RLVR(带验证奖励的强化学习)的三阶段后训练配方。报告详细披露了如何通过“Delta Learning”构建偏好数据,以及 OlmoRL 框架在算法和基础设施上的改进(如去除了 KL 散度项、引入 Token 级损失等)。 -
全栈数据公开:发布了预训练数据 Dolma 3 Mix、中期训练数据 Dolmino Mix、长上下文数据 Longmino Mix 以及后训练数据 Dolci 系列。
Key Findings & Conclusions
1. 基座模型训练 (Base Model Training)
-
质量感知上采样优于扁平过滤:在预训练数据处理中,相比于简单的设定阈值截断(Flat Filtering),根据质量评分构建上采样曲线(Quality-Aware Upsampling)能显著提升模型在数据受限情况下的性能。 -
中期训练的领域权衡 (Domain Tradeoffs) :在中期训练(Midtraining)阶段,增加数学和代码数据的权重会显著提升对应能力,但会损害通用问答(GenQA)和多选问答(MCQA)的性能。最终的 Dolmino Mix 旨在寻找这两者之间的最佳平衡点。 -
后训练数据前置收益:在中期训练阶段提前引入指令遵循(Instruction)和思维链(Thinking)数据,即使未进行 SFT,也能全面提升基座模型在各类基准上的评估表现。 -
去污染的复杂性:基准测试泄露在现有开源数据集(如 Flan, Nemotron)中广泛存在。去污染处理虽然会导致部分指标(如 DROP)分数下降,但提供了更真实的性能评估。反直觉的是,对于 GSM8K,去污染后的数据反而提升了性能,原因是消除了格式不匹配的干扰。 -
模型融合 (Model Souping) 有效:在 32B 模型的中期训练和长上下文扩展阶段,简单地融合不同随机种子或相邻步数的检查点,能显著提升模型性能。 -
长上下文配方:仅在全注意力层应用 YaRN(而不调整滑动窗口注意力层)是扩展上下文的最佳策略;合成聚合任务(如 CWE, REX)和 olmOCR 处理的科学 PDF 是提升长文能力的关键数据源。
2. 推理模型 (OLMo 3 Think)
-
DPO 是 RL 的最佳起点:相比于 SFT 模型,以 DPO 模型为起点进行强化学习(RLVR),能获得更高的初始 Pass@K 性能和更稳定的训练收益。 -
SFT 模仿学习的饱和:在 DPO 阶段,如果仅对“胜出响应”(由强模型生成)进行 SFT,模型性能反而会下降。这表明单纯的模仿学习已接近饱和。 -
对比是 DPO 的核心:DPO 的成功取决于“胜出”与“拒绝”响应之间的高对比度(High Contrast)。通过引入弱模型(如 Qwen3-0.6B)生成拒绝响应,构建 数据对,能有效驱动模型突破 SFT 的瓶颈。 -
混合领域防止过拟合:在 RL 阶段,混合数学、代码和通用对话数据进行训练,虽然会降低单领域的训练奖励(Train Reward),但能防止奖励黑客行为(Reward Hacking),在下游基准测试中获得更好的泛化性能。 -
基础设施决定 RL 效率:引入连续批处理(Continuous Batching)和飞行更新(Inflight Updates)后,RL 训练速度提升了 4 倍,使得长序列推理模型的训练成为可能。
3. 指令模型 (OLMo 3 Instruct)
-
推理能力的迁移:虽然 Instruct 模型不输出思维链,但从 Think SFT 检查点开始训练 Instruct 模型,比从 Base 模型开始效果更好。这证明推理训练中学到的特征可以被“内化”并迁移到通用指令遵循任务中。 -
简洁性提升 RL 稳定性:在 DPO 阶段通过长度控制(Length Control)强制模型生成简洁回复,不仅提升了用户体验,还被证明能让后续的 RL 训练更加稳健(可能是因为短序列在固定上下文窗口下具有更高的“智能密度”)。 -
工具使用的真实性:通过消融实验(No-tools vs. Tools),证明了 OLMo 3 Instruct 在 SimpleQA 等任务上的性能提升确实源于对工具的有效调用,而非依赖参数化记忆。
4. RL-Zero 与算法研究
-
中期训练决定 RL 潜力:RL-Zero 实验表明,如果基座模型在中期训练中缺乏推理数据的铺垫,RL 阶段将无法自发涌现出回溯、验证等复杂认知行为(表现为响应长度不增长)。 -
去污染的验证:使用随机奖励(Spurious Rewards)训练基座模型,性能并未提升甚至下降。这一“负结果”反向验证了训练数据并未遭到评估集的污染(否则模型会通过随机奖励回忆起被污染的答案)。 -
简单 Prompt 更优:对于未经过后训练格式微调的基座模型,使用最简单的 Prompt 模板(无特殊 Token)进行 RL-Zero 训练效果最好。
1. 引言
OLMo 3 是 Ai2 推出的最新一代语言模型家族,包含 7B 和 32B 两种参数规模。该系列模型在长上下文推理、函数调用、代码生成、指令遵循、通用对话以及知识召回等多种能力上均达到了当前开源模型的领先水平。然而,OLMo 3 的核心价值不仅仅在于发布了具有竞争力的模型权重,更在于其通过提供完整的模型流 (Model Flow) ,重新定义了开源 AI 研究的透明度标准。
1.1 全栈开放的模型流
为了真正推动开源人工智能的研究与发展,Ai2 团队认为,发布一个先进的语言模型不应止步于最终的权重文件。OLMo 3 的发布涵盖了语言模型全生命周期的所有要素,包括:
-
全阶段数据:不仅公开了预训练数据,还公开了中期训练(Mid-training)、长上下文扩展以及后训练(Post-training)阶段使用的所有数据集。 -
全流程代码:提供了从数据处理、预训练、微调到强化学习的完整代码库。 -
中间产物:发布了训练过程中的所有中间检查点(Checkpoints)、训练日志以及相关的依赖项。
这种程度的开放性使得研究人员能够深入了解模型从初始构想到最终形态的完整演化路径。研究者不再局限于对最终权重进行微调,而是可以在模型开发过程的任意阶段进行干预和定制,从而支持更深层次的机制研究和差异化开发。

1.2 模型家族成员
基于这一全栈开放的基础设施,OLMo 3 衍生出了针对不同应用场景的多个变体:
-
OLMo 3 Base:
这是整个家族的基石,旨在构建一个具有广泛通用能力的底座。与仅发布最终权重的模型不同,OLMo 3 Base 提供了中间检查点,允许研究人员研究中期训练和长上下文扩展的具体配方。评估显示,OLMo 3 Base 在同等规模下优于 Stanford Marin、Apertus 和 LLM360 等完全开放模型,并与 Qwen 2.5 和 Gemma 3 等开放权重模型性能相当。 -
OLMo 3 Think(旗舰模型):
这是 OLMo 3 系列的核心成果,专门针对系统 2(System 2)思维能力进行训练。该模型在生成最终答案之前,会产生明确的思维链(Chain-of-Thought)作为中间推理过程。-
性能表现:OLMo 3 Think-32B 是目前最强的完全开放推理模型。在推理基准测试中,它缩小了与 Qwen 3-32B 等同规模最佳开放权重模型的差距,且其训练所需的 token 数量仅为后者的六分之一。 -
可追溯性:得益于全流程数据的公开,研究人员首次可以将模型的推理链追溯回其原始训练数据,这为理解大模型的推理机制提供了新的机会。
-
-
OLMo 3 Instruct:
该版本专为通用对话、工具使用和高效推理而设计。与 Think 版本不同,Instruct 模型不会生成冗长的内部思维链,从而在推理时具有更高的效率,更符合寻求快速响应和功能调用的用户需求。在评估中,OLMo 3 Instruct 的表现优于 Qwen 2.5、Gemma 3 和 Llama 3 等同规模模型。 -
OLMo 3 RL-Zero:
针对强化学习(RL)研究领域,团队推出了 OLMo 3 RL-Zero。目前的开源 RLVR(带验证奖励的强化学习)研究大多基于未公开预训练数据的模型,这导致社区难以探究预训练数据对 RL 性能的具体影响(例如数据污染问题)。OLMo 3 RL-Zero 提供了一个完全透明的实验环境,通过在 Base 模型上直接应用 RL 训练,并配合严格去污染的数据集,确立了新的 RL 基准。
1.3 核心贡献总结
为了实现上述性能,Ai2 团队在数据构建、算法优化和基础设施方面进行了一系列创新:
-
Dolma 3 数据集 :构建了精细的预训练数据混合,包含经过严格去重和质量筛选的 Web 数据、通过 olmOCR 处理的大规模科学 PDF 文档。 -
Dolci 后训练数据 :引入了专门针对思维链、偏好优化(DPO)和强化学习设计的 Dolci 数据套件,特别是通过“Delta Learning”方法构建高质量的对比数据。 -
OlmoBaseEval 与 OlmoRL :开发了专门针对计算效率优化的基座模型评估套件,以及支持长思维链和多种验证域(数学、代码、指令遵循)的强化学习训练框架。
2. Olmo 3 的模型流
本节详细概述了 Olmo 3 的完整模型流(Model Flow)。与仅发布最终模型权重的传统做法不同,OLMo 3 旨在通过提供模型全生命周期的访问权限——从初始概念到最终状态的每一个阶段、检查点、数据点和依赖项——来推动开源 AI 的研究。这种透明度允许研究者在模型开发过程的任意阶段(而不仅仅是最终权重)进行干预和定制。
模型流主要分为基座模型训练和后训练两个主要阶段,每个阶段包含特定的子阶段、数据配方和训练方法。

2.1 基座模型训练
OLMo 3 Base 的开发过程由三个连续的阶段组成:
-
预训练 (Pretraining) :规模最大,长达 5.9T tokens。 -
中期训练 (Midtraining) :规模为 100B tokens,用于特定能力的强化。 -
长上下文扩展 (Long-context extension) :针对 7B 模型为 50B tokens,32B 模型为 100B tokens,用于扩展上下文窗口。
评估体系
为了在基座模型开发(预训练和中期训练)期间做出高效的决策,团队开发了 OlmoBaseEval 基准套件。其核心目标是在计算资源受限的情况下(即基于小规模模型训练结果)对大规模训练效果进行预测。由于小规模模型在某些任务上可能表现出随机猜测的性能,导致基准测试噪声难以与模型改进区分,因此该套件采用了以下策略:
-
任务聚类:将评估类似能力的基准测试(如多个代码任务或多个数学任务)聚类,通过聚合分数来减少方差。
-
代理指标:针对小规模模型开发了特定的代理指标,侧重于识别训练过程中能力的“涌现”时刻,而非仅看最终分数。
Bits-Per-Byte (BPB)。即计算模型生成“标准答案(Gold Label)”的负对数似然,并按答案的字节长度进行归一化。即使一个小模型无法生成正确的代码或数学答案(导致 Pass@1 为 0),它对正确答案赋予的概率可能会随着数据质量的提高而上升(即 BPB 下降)。这种连续指标能在能力“涌现”之前提供更平滑、更灵敏的性能信号。
-
信噪比优化:通过在含噪任务上评估更多样本,或者直接剔除信噪比过低的任务,来提高评估信号的清晰度。
数据课程
每个训练阶段都配备了专门策划的数据集(统称为 Dolma 3),随着训练的进行,数据内容越来越侧重于核心能力,以便为下游任务(如推理、指令遵循)的激发做准备。
-
预训练 (Dolma 3 Mix) :
-
这是 OLMo 3 Base 的初始训练集,包含约 6T tokens。 -
数据来源包括网页、学术 PDF、代码库等。 -
技术创新: -
开发了新的工具链,支持万亿 token 规模的快速、可扩展全局去重。 -
引入了两种优化训练 token 选择的新方法:Token 约束混合 (token-constrained mixing) 和 质量感知上采样 (quality-aware upsampling) 。 -
引入了新的学术 PDF 数据源——olmOCR Science PDFs,这些 PDF 使用 olmOCR 工具转换为线性化的纯文本,保留了高质量的科学内容。
-
-
-
中期训练 (Dolma 3 Dolmino Mix) :
-
这是一个 100B tokens 的数据集,专门用于在代码、数学和通用知识问答(QA)领域提升模型能力。 -
方法论框架:采用两部分流程。首先是分布式反馈循环,通过“微退火(microannealing)”快速评估单个数据源的有效性;其次是中心化集成测试,评估候选数据混合对基座模型质量和后训练可塑性的综合影响。 -
数据构成:有意识地包含了指令数据和思维链(thinking traces)数据,旨在为后续的 Think 和 Instruct 模型训练奠定基础。
-
-
长上下文扩展 (Dolma 3 Longmino Mix) :
-
该阶段使用了高质量的长文本数据。核心组件是 olmOCR 处理后的科学 PDF 集合。 -
该集合包含超过 450 万个长度超过 32K 的文档,总计超过 3800 亿 tokens,是目前公开可用的最大长上下文研究数据集之一。 -
通过此阶段,OLMo 3 将上下文窗口扩展至 64K。
-
公开产物 (Open Artifacts)
Ai2 发布了每个阶段结束时的模型以及所有中间检查点。在数据方面,不仅发布了数据混合 (Data Mixes) (即模型实际训练所用的 tokens),还发布了数据池 (Data Pools) (经过清洗的 10T tokens 源数据)。为了方便社区在有限计算资源下进行实验,还提供了缩小版的数据混合样本(例如 100B tokens 的 Dolma 3 Mix 样本)。
2.2 后训练
如图 2 所示,OLMo 3 的后训练流程包含三条主要路径,分别对应 OLMo 3 Think、OLMo 3 Instruct 和 OLMo 3 RL-Zero。此阶段引入了新的后训练数据套件 Dolci 和算法改进 OlmoRL。
-
OLMo 3 Think:
-
目标:通过生成扩展的思维链(Thinking Traces)来执行分步推理,最终得出答案。 -
训练流程:采用三阶段训练:监督微调 (SFT) 偏好微调 (DPO) 带验证奖励的强化学习 (RLVR)。 -
数据 (Dolci Think) :包含用于 SFT 的长思维链合成示例;用于 DPO 的高质量对比数据(基于 Delta Learning 见解构建);以及用于 RL 的高难度提示词。 -
算法 (OlmoRL) :针对长思维链的 RLVR 进行了算法和基础设施层面的优化,将验证性推理从单一领域扩展到了数学、代码和通用对话等多个领域,实现了 4 倍的训练加速。
-
-
OLMo 3 Instruct:
-
目标:生成高效、有用且简洁的回复,专注于通用对话和工具使用(Function Calling),不生成内部思维链。 -
设计考量:优先考虑用户需求,避免过度冗长,注重推理时的效率。 -
数据 (Dolci Instruct) : -
SFT:富含专门为函数调用创建的数据。 -
DPO:引入多轮对话偏好数据,并实施针对性的数据长度干预,以鼓励模型生成简洁的响应。 -
RL:使用 RLVR 进一步微调核心能力,同时利用偏好调整来保持回复的简洁性。
-
-
-
OLMo 3 RL-Zero:
-
背景:目前的开源 RLVR 基准通常基于未公开预训练数据的开放权重模型(如 Qwen, Llama 等),这导致社区难以研究预训练数据对 RL 性能的影响,且容易出现基准测试泄漏(导致虚假奖励有效)或提示词工程干扰等问题。 -
方案:发布 Dolci RL-Zero 数据集、算法配置和 OlmoRL 代码。 -
流程:直接从 OLMo 3 Base 模型开始进行 RLVR 训练,涵盖数学、代码、精确指令遵循(IF)及混合领域。 -
严谨性:对 Dolci RL-Zero 进行了针对预训练和中期训练数据的严格去污染(Decontamination)处理,确保 RLVR 效果的研究不受数据泄漏的混淆。
-
2.3 结果摘要
OLMo 3 家族在多个维度上取得了显著成果。

OLMo 3 Think-32B 是目前最强的完全开放(Fully Open)推理模型。
-
对比开放权重模型:它缩小了与同规模最佳模型(如 Qwen 3-32B)的差距,且训练使用的 token 量仅为后者的一小部分(约 1/6)。 -
对比其他模型:性能优于 Qwen 2.5 32B、Gemma 3 27B 等模型。

OLMo 3 Think-7B 同样表现出色:
-
优于 OpenReasoning Nemotron 7B、DeepSeek-R1-Distill-Qwen-7B 等同尺寸的优秀推理模型。 -
在更小的参数规模下,性能接近 Nemotron-Nano-9B-v2。
OLMo 3 Instruct 则在通用对话和工具使用上超越了 Qwen 2.5、Gemma 3 和 Llama 3 等同规模竞品。
3. Olmo 3 Base
OLMo 3 Base 的目标是建立一个稳健的基础模型,不仅要在通用能力上表现出色,还要能够支持后续的推理(Reasoning)、工具使用(Tool-use)和指令遵循(Instruction-following)能力的激发。本节将详细阐述 OLMo 3 Base 的建模架构、评估体系构建、以及分阶段的数据训练策略(预训练、中期训练、长上下文扩展)。
3.1 模型与架构
OLMo 3 的模型架构主要沿用了 OLMo 2 的设计,采用标准的 Decoder-only Transformer 结构。在 7B 和 32B 两种参数规模下,主要的超参数保持一致,但在上下文窗口处理和工程实现上进行了调整。
架构细节
-
基础架构:基于 Transformer,但在层归一化、激活函数和位置编码上采用了现代大模型的通用配置(如 SwiGLU 激活函数、RMSNorm、旋转位置编码 RoPE)。 -
上下文窗口:在预训练和中期训练阶段,上下文窗口长度设置为 8192 tokens,相比 OLMo 2 的 4096 tokens 增加了一倍。 -
滑动窗口注意力 (Sliding Window Attention, SWA) :为了在处理长序列时保持计算效率,OLMo 3 引入了滑动窗口注意力机制。 -
窗口大小设定为 4096。 -
采用混合注意力模式:每四层中有三层使用滑动窗口注意力,而第四层使用全注意力(Full Attention)。这种设计旨在平衡局部关注能力和全局上下文捕捉能力,同时控制推理时的 KV Cache 显存占用。
-
-
Tokenizer:沿用了 OLMo 2 的分词器,基于 OpenAI 的 cl100k词表。
训练基础设施
OLMo 3 Base 使用 OLMo-core 代码库进行训练。该框架针对 H100 GPU 进行了深度优化:
-
吞吐量:在序列长度为 8192 且全程使用 bfloat16精度的前提下,7B 模型实现了 7700 tokens/秒/GPU 的吞吐量,32B 模型实现了 1900 tokens/秒/GPU 的吞吐量。这分别对应了约 43% 和 41% 的模型 FLOPs 利用率 (MFU)。 -
优化技术: -
利用 PyTorch 的 torch.compile()进行图编译优化。 -
为注意力机制和语言模型头(LM head)编写了自定义内核。 -
实现了指标的异步批量收集和检查点(Checkpoint)的异步写入,减少 I/O 阻塞。 -
采用混合分片数据并行(HSDP)策略,结合 PyTorch FSDP2,在节点内进行分片以减少跨节点通信。
-
3.2 实验设计与评估
模型开发过程中,特别是在预训练阶段,需要在计算资源有限的情况下(例如使用 1B 参数模型训练 100B tokens)对数据配方进行快速迭代。然而,小规模模型在某些任务(如数学、代码、多选问答)上往往表现出接近随机猜测的性能,且基准测试本身的噪声可能掩盖真实的数据改进效果。
为了解决这些问题,团队构建了 OlmoBaseEval 评估套件,主要包含以下改进:
3.2.1 任务聚类
面对众多的基准测试,为了使评估指标与数据干预的粒度相匹配,团队采用层次聚类方法将任务分组。
-
方法:收集了 70 个外部开源模型在 23K 个基准测试上的分数,假设如果两个基准测试对模型的排名相似,则它们评估的是相似的能力。使用 Ward 方差最小化算法进行聚类。 -
结果:形成了以下主要任务簇: -
MC_STEM:科学、技术、工程、数学类的多选任务。 -
MC_Non-STEM:人文、社科类的多选任务。 -
GenQA:生成式问答任务。 -
Math:数学推理任务。 -
Code:代码生成任务。 -
Code FIM:代码中间填充任务。
-

3.2.2 扩展性分析与代理指标
为了确定哪些指标适合指导小规模模型的开发,团队在 到 FLOPs 的计算尺度上评估了模型性能。
-
发现:许多任务(如 MATH)在小规模模型上性能为零或接近随机,无法提供有效信号。 -
Base Easy 套件:针对这一问题,提出了一组“易学”指标。对于具有标准答案的任务,不直接计算准确率,而是计算答案字符串的负对数似然(即 Bits-Per-Byte, BPB)。研究表明,BPB 即使在模型无法生成正确答案的噪声阶段,也能表现出良好的扩展性信号,且与大规模模型在最终基准上的性能高度相关。

3.2.3 信噪比分析
为了提高决策的可靠性,团队计算了各个基准测试的信噪比(SNR)。
-
操作:评估 OLMo 2 13B 训练最后 50 个检查点的波动情况。 -
调整:移除了噪声过大的基准(如 BoolQ 等二分类任务,模型容易在类别间震荡)。对于代码任务,通过增加 pass@k 的采样数量 (例如从 1 增加到 10 或 100)来提高信噪比。
3.3 第一阶段:预训练
OLMo 3 Base 的第一阶段是在 Dolma 3 Mix 上进行训练,总数据量约为 5.93T tokens。虽然数据源类型与现有开源模型类似,但数据处理管道引入了三项关键创新。

3.3.1 Web 数据池构建
主要来源是 CommonCrawl。
-
启发式过滤:应用了一系列规则(URL 过滤、长度过滤、重复内容过滤、语言识别等),移除了约 84.6% 的原始数据,保留了约 388 亿份文档。 -
三阶段去重 (Deduplication) :为了生成一个干净的基底以支持后续的“质量感知上采样”,采用了激进的去重策略。 -
精确去重 (Exact) :基于文档哈希值,去除所有完全相同的副本。去除了 67% 的数据。 -
模糊去重 (Fuzzy) :使用 MinHash 算法去除近乎相同的文档(如仅页眉页脚不同)。去除了 23% 的数据。 -
子串去重 (Substring) :开发了基于模糊后缀数组(Fuzzy Suffix Array)的新方法,去除文档内部重复出现的样板文本(boilerplate),即使这些文本夹杂在不同文档中。这步去除了 14% 的文本字节。
最终,Web 数据从 38.7B 文档减少到 9.7B 文档。
-
3.3.2 PDF 数据处理
引入了一个新的学术 PDF 数据源。
-
olmOCR:使用专门训练的视觉语言模型将 PDF 转换为线性化的纯文本。该工具能够更准确地解析复杂的布局、公式和表格。 -
PII 过滤:开发了一个多阶段的基于模型的 PII(个人身份信息)识别管道。首先使用 gemma-3-12B 判断文档首页是否包含敏感信息,再结合规则判断信息是否应公开(如公开会议记录)。
3.3.3 数据混合与采样
为了确定最佳的数据混合比例,采用了以下策略:
-
约束混合 (Constrained Data Mixing) :基于群体(Swarm)方法。
-
训练大量小规模(30M参数)代理模型,每个模型使用不同的数据混合比例。 -
对每个评估任务拟合回归模型,预测混合比例与性能(BPB)的关系。 -
求解优化问题,寻找能最小化平均 BPB 的混合比例。 -
条件混合 (Conditional Mixing) :当引入新数据源(如 PDF)时,无需重新训练整个群体,而是冻结已知部分的比例,仅优化新数据源与旧混合整体的比例,大幅降低计算成本。
-
-
质量感知上采样 (Quality-Aware Upsampling) :
-
不同于传统的“一刀切”过滤(即设定阈值,高于阈值保留,低于阈值丢弃),OLMo 3 对不同质量的数据进行差异化采样。 -
将数据按质量评分分桶。 -
构建上采样曲线:高质量桶中的数据会被重复采样多次(最高 7 次),中等质量采样 1 次,低质量丢弃。 -
实验证明,在固定 Token 预算下,这种“少而精但重复”的策略优于“多而杂但不重复”的策略。
-

3.4 第二阶段:中期训练
在预训练结束后,模型继续在 Dolma 3 Dolmino Mix 上进行 100B tokens 的训练。这一阶段的目标是针对性地提升代码、数学、QA 能力,并为后训练做准备。
3.4.1 方法论框架
为了高效筛选中期训练数据,采用了两层测试框架:
-
微退火 (Microannealing) :快速反馈循环。选取目标数据集 5B tokens,与 5B tokens 的 Web 数据混合,进行 10B tokens 的训练。通过与纯 Web 数据基线对比,快速判断该数据集是否对特定能力有增益。 -
集成测试 (Integration Tests) :将微退火中表现优异的数据源组合,进行完整的 100B tokens 训练,并在 Base Main 套件上评估,同时进行 SFT 实验以验证其对后训练的适应性。
3.4.2 关键数据源与能力提升
最终的 Dolmino Mix 包含了多种合成数据和高质量重写数据:
-
数学 (Math) : -
TinyMATH:对 MATH 训练集中的每个问题生成 100 个变体,并生成 Python 代码解法 (PoT) 和自然语言思维链解法 (MIND)。 -
CraneMath:复现了 SwallowMath 的构建方法,使用 Qwen3 对 FineMath4+ 数据进行重写,以规避 Llama 协议限制。 -
MegaMatt:对 MegaMath-Web 数据进行重写。
-
-
代码 (Code) : -
Stack-Edu (FIM) :引入中间填充(Fill-In-the-Middle)训练,50% 的数据被转换为 FIM 格式。采用基于教育价值评分的加权采样。 -
CraneCode:复现了 SwallowCode,对 Python 代码进行两阶段重写(风格规范化 + 代码优化)。
-
-
QA 与知识: -
Reddit-to-Flashcards:将 Reddit 上的讨论内容转化为多选 QA 对。 -
Wiki-to-RCQA:基于 Wikipedia 生成阅读理解数据。
-
-
思维链与指令 (Thinking & Instruction) : -
Meta-Reasoning:合成数据,针对自我修正、回溯、问题分类等元认知能力进行训练。 -
Program-Verifiable:可通过程序验证正确性的推理任务。 -
Tulu 3 SFT:引入指令微调数据,但去除了特殊的聊天模板 Token。
-

3.4.3 去污染
在中期训练阶段,严格执行了去污染程序。使用 Decon 工具,基于 n-gram 匹配检测训练数据与评估基准的重叠。
-
发现:现有的一些开源数据集(如 Flan, Nemotron)存在严重的基准测试泄漏。 -
策略:移除所有匹配的样本。虽然这导致部分基准分数(如 DROP)在去污染后下降,但反映了更真实的泛化能力。对于 GSM8K,即使检测到完全泄漏,去污染后的模型性能反而更好,说明死记硬背不如学习通用推理模式。
3.4.4 主要发现
通过中期训练(Midtraining)阶段的双层评估框架(微退火与集成测试),团队对不同数据源的交互作用及训练策略的影响进行了深入分析。以下是该阶段的六个关键发现:
1. 候选数据混合的质量随迭代逐步提升
集成测试验证了中期训练配方在迭代过程中的持续改进。从第 1 轮到第 5 轮(最终混合),模型在各项基准测试上的表现稳步上升。值得注意的是,第 4 轮和第 5 轮引入了去污染流程,移除了训练数据中与评估集重叠的部分。尽管去污染通常会导致评估分数下降,但第 5 轮的混合配方依然在整体性能上优于早期的受污染版本,这表明数据质量的提升实际上抵消并超越了去污染带来的分数损失。
2. 领域之间存在显著的性能权衡 (Domain Tradeoffs)
在探索性实验中,团队测试了向特定领域严重倾斜的数据混合配方(例如,极高比例的“代码/数学/推理”数据或极高比例的“通用/QA”数据)。结果显示,领域之间存在明显的零和博弈倾向:
-
侧重 QA 的混合:虽然维持了多选问答(MCQA)和生成式问答(GenQA)的性能,但导致数学和代码性能显著下降。 -
侧重数学/代码的混合:虽然数学和代码得分大幅超越最终配方,但 MCQA 和 GenQA 的性能受到了明显损害。 -
单一数据源层面的权衡:微退火实验显示,引入特定的数据集也会产生类似效应。例如, Reddit-to-Flashcards数据集提升了 MCQA 分数,但降低了数学和生成任务的分数;反之,Meta-Reasoning数据集显著提升了数学和代码表现,但对 QA 任务有负面影响。
最终的Dolmino Mix旨在寻求这些领域之间的平衡,避免因过度偏向某一领域而导致模型通用能力的灾难性遗忘。
3. 指令与思维数据能提升基座模型性能
实验对比了包含与不包含“后训练导向数据”(即指令微调数据和思维链数据)的 100B tokens 训练运行,同时保持总 Token 数一致。结果表明,包含这些数据的混合配方在基座模型评估套件(Base Eval Suite)上的每一项指标都更优。这说明,虽然通常认为指令和推理数据主要用于 SFT 阶段,但将其提前引入中期训练阶段,对基座模型的基础能力构建也是有益的。
4. SFT 阶段的特殊 Token 不应在中期训练中使用
针对是否在中期训练数据中包含聊天模板特殊 Token(如 <|im_start|>),团队进行了微退火测试。
-
现象:如果训练数据包含特殊 Token,基座模型在推理时会倾向于直接输出这些 Token,导致下游评估解析器失效(例如,GSM8K 得分直接跌至 0)。 -
归因:这种性能下降主要是因为特殊 Token 被引入词表嵌入,但模型尚未通过 SFT 学习正确的停止行为。 -
决策:即使仅使用文本形式的聊天模板(不带特殊 Token)性能损失较小,团队最终仍决定在中期训练的指令数据中去除所有聊天模板和特殊 Token,回归到简单的换行符格式,以保持基座模型的纯净性。
5. 去污染的范围与影响具有差异性
通过 n-gram 匹配检测发现,许多现有的开源数据集(如 Flan, Nemotron)包含了大量的基准测试泄漏。去污染对性能的影响呈现出两种截然不同的模式:
-
性能下降:对于大多数任务(如 DROP, Minerva, SQuAD),去除污染数据后性能出现显著下降。这表明模型之前的“高性能”部分源于对评估集样本的记忆。 -
性能不变或提升:对于某些任务(如 DeepSeek LeetCode),去污染对分数几乎无影响。特别是在 GSM8K 上,去污染后的模型性能反而优于受污染的模型。分析认为,这是因为受污染数据中的 GSM8K 样本格式与评估时的格式不一致,导致模型学习了错误的格式模式;去除这些干扰数据后,模型反而能更好地泛化。
6. 模型融合 (Model Souping) 可提升中期训练性能
对于 OLMo 3 Base 32B,团队观察到将两个使用不同随机种子进行中期训练的检查点进行线性平均(Model Souping),可以带来性能提升。
-
效果:相比于单独的任何一次运行,融合后的模型在 MC_STEM 任务簇上提升了近 1 分,在数学任务簇上提升了 1.6 到 2.9 分。 -
应用:基于此发现,最终发布的 32B 中期训练检查点是采用模型融合后的版本(注:7B 模型未观察到类似幅度的增益,因此未采用此策略)。
3.5 第三阶段:长上下文扩展
OLMo 3 的最后训练阶段是将上下文窗口从 8K 扩展到 64K。7B 模型训练了 50B tokens,32B 模型训练了 100B tokens。
3.5.1 数据来源
-
olmOCR Science PDFs:这是长上下文数据的核心,包含了大量长度超过 32K tokens 的自然连贯文档。 -
过滤:使用 gzip 压缩率作为过滤指标,去除非自然文本。 -
合成数据:为了弥补长文档缺乏监督信号的问题,引入了合成任务: -
CWE (Common Word Extraction) :统计单词频率。 -
REX (Rewriting EXpressions) :基于文档内容生成特定风格的改写或问答。
-
3.5.2 训练配方
-
混合比例:为了防止短上下文能力退化,数据混合中仅包含 34% 的长上下文数据,其余 66% 为高质量的短上下文数据(来自 Dolmino Mix)。 -
位置编码调整:使用 YaRN 方法扩展 RoPE。关键发现是:仅在全注意力层(Full Attention Layers)应用 YaRN,而不调整滑动窗口注意力层,能获得最佳性能。 -
打包与掩码: -
Best-fit Packing:将多个文档打包成训练序列,尽量减少填充。 -
Intra-document Masking:应用掩码,防止注意力机制跨越文档边界,避免模型学习错误的依赖关系。
-
通过这一系列精心设计的步骤,OLMo 3 Base 成功地平衡了通用能力、推理能力和长上下文处理能力,为后续的 Think 和 Instruct 模型奠定了坚实基础。
4. OLMo 3 Think
OLMo 3 Think 是 Ai2 推出的旗舰级推理模型,旨在通过生成扩展的思维链(Chain-of-Thought, CoT)来处理复杂的逻辑任务,随后再给出最终答案。这一能力的获得并非单一阶段的功劳,而是依赖于一个精心设计的三阶段后训练(Post-training)流程:监督微调(SFT)、直接偏好优化(DPO)以及带验证奖励的强化学习(RLVR)。
本章将深入剖析 OLMo 3 Think 的构建过程,详细阐述从数据策展(Dolci Think)、训练配方设计到底层算法基础设施(OlmoRL)的技术细节。不同于以往仅公开最终权重的做法,OLMo 3 公开了整个“模型流”,使得研究人员能够复现并深入研究推理模型能力的涌现机制。
4.1 OLMo 3 Think 的核心定位与评估
4.1.1 设计目标
OLMo 3 Think 的核心设计目标是弥合完全开源模型(Fully Open)与顶尖开放权重模型(Open Weights,如 Qwen 3)之间的推理能力差距。该模型被训练为在回答问题前进行显式的、长步骤的“思考”。这种思考过程使模型能够分解复杂问题、自我纠错并规划解题路径。
4.1.2 评估体系设计
为了量化评估这种推理能力,研究团队建立了一套涵盖数学、代码、推理、精确指令遵循、知识问答及通用对话的综合基准测试套件。除了传统的 MATH、GSM8K 等基准外,还引入了更具挑战性的测试集,如 AIME(数学竞赛题)、LiveCodeBench(代码)、ZebraLogic(逻辑推理)等。

在 32B 参数规模下,OLMo 3 Think 展现了强劲的性能。数据表明,尽管训练使用的 token 总量仅为同类模型的六分之一左右,OLMo 3 Think-32B 在数学和代码任务上依然优于 Qwen 2.5-32B Instruct 和 Gemma 2 27B,并大幅缩小了与 Qwen 3-32B 的差距。这证明了数据质量和训练策略在推理模型构建中的重要性超过了单纯的数据数量。
4.2 阶段一:通过 Dolci Think SFT 进行监督微调
监督微调(SFT)是赋予基座模型初步推理能力的第一步。在此阶段,模型学习模仿高质量的思维链模式。为了实现这一目标,研究团队构建了 Dolci Think SFT 数据集。
4.2.1 数据策展流程 (Data Curation)
Dolci Think SFT 的构建遵循“汇聚-生成-过滤-混合”的流水线,如图所示:

1. 提示词源(Prompt Sourcing)与思维链生成
数据的核心在于拥有高质量的 Prompt 和对应的长思维链(Long CoT)。研究团队整合了来自多个开源社区的高质量 Prompt 来源,并针对不同领域采用了不同的生成策略:
-
数学领域 (Math) : -
来源:主要基于 OpenThoughts3 和 SYNTHETIC-2 的数学子集。 -
生成策略:对于 OpenThoughts3 中已有的提示词,保留了原有的 16 倍重复设置。对于部分缺失完整解题过程的数据,使用 QwQ-32B 模型重新生成完整的思维链和答案。生成时设置了高达 32k 的 token 上限,以允许模型进行深度的探索性推理。对于 SYNTHETIC-2,直接采纳了其经过验证的子集。
-
-
代码领域 (Code) : -
来源:整合了 AceCoder、The Algorithms (Python子集)、Llama Nemotron Post-training 以及 OpenCodeReasoning 等多个来源。 -
生成策略:同样使用 QwQ-32B 为这些 Prompt 生成回复。为了保证代码的正确性,每个 Prompt 生成多达 16 个候选回复,并使用 GPT-4.1 生成的合成测试用例对这些回复进行执行过滤,仅保留通过测试的正确代码及对应的思维过程。
-
-
通用对话与安全 (Chat & Safety) : -
来源:WildChat、OpenAssistant 以及 Tulu 3 的安全数据子集。 -
生成策略:为了在具备推理能力的同时保持通用对话的流畅性和安全性,使用 DeepSeek R1 生成带有思维链的回复。这一选择是因为 DeepSeek R1 在通用任务上的表现与推理任务同样出色。
-
-
精确指令遵循 (Precise Instruction Following) : -
来源:基于 Tulu 3 的混合数据,并引入了 Persona IF(角色扮演指令遵循)数据。 -
生成策略:使用 QwQ-32B 生成回复。关键在于,针对每个指令中包含的约束条件(如“回复必须包含三个段落”),使用了程序化验证器进行严格筛选,仅保留完全满足所有约束的回复。
-
-
科学与多语言 (Science & Other) : -
来源:OpenThoughts3 科学子集、TableGPT(表格处理)以及 Aya(多语言)。 -
生成策略:对于科学问题,补全了不完整的推理链;对于表格和多语言任务,主要利用 DeepSeek R1 生成包含推理过程的回复。
-
2. 多维度的过滤机制 (Filtering)
生成海量数据后,清洗是至关重要的一环。OLMo 3 采用了多层次的过滤策略:
-
启发式过滤 (Heuristic Filtering) :剔除许可证不合规的数据、推理链中断或不完整的样本、包含过度重复文本的样本。特别地,为了保持模型作为英文为主的模型,剔除了思维链中包含过多中文字符或反映特定文化价值观的数据。 -
准确性过滤 (Domain-Specific Accuracy) : -
在代码领域,执行测试用例过滤。 -
在指令遵循领域,运行约束验证脚本。 -
在数学领域,比对最终答案的正确性。
-
-
主题过滤 (Topic Filtering) :利用基于 OpenAI 查询分类法的分类器对 WildChat 等开放域数据进行清洗,移除了与模型目标不相关的主题(如图像生成请求)或低质量的闲聊(如过多的简单问候),以提升模型的交互质量。 -
去污染 (Decontamination) :这是一个关键步骤。团队使用 n-gram 匹配(8-gram,重叠阈值 0.5)将训练数据与所有评估基准(涵盖所有 SFT、DPO 和 RL 阶段的评估集)进行比对,并移除了匹配的样本。为了防止误删(例如数学公式中的常见符号组合),还开发了针对性的启发式规则。
3. 数据混合策略 (Data Mixing)
为了确定最终的 SFT 数据配方,团队采用了一种增量消融的方法。首先确立一个包含 100K 样本的“基础混合”(Base Mix),主要由 OpenThought 3 数据构成。然后,针对每个数据类别(如 Aya, WildChat, Safety),将其 100K 样本分别添加到基础混合中训练模型,观察其在评估套件上的影响。

实验结果表明,不同数据源对不同能力的提升具有正交性。例如,加入 Safety 数据虽然略微降低了数学评分,但大幅提升了安全性指标;加入 Code 数据则显著提升了代码基准分数。最终的 Dolci Think SFT 配方综合了所有表现出正向收益的数据源。
4.2.2 SFT 训练细节
在 SFT 阶段,基础设施从 Open-Instruct 迁移到了 Olmo-core。这一迁移带来了高达 8 倍的训练速度提升。
-
训练参数:所有模型训练 2 个 Epoch,以防止过拟合。 -
学习率:对学习率进行了扫描(Sweep),根据评估结果选择最佳检查点。 -
模型融合 (Model Souping) :为了进一步提升稳健性,最终发布的 SFT 模型并非单一检查点,而是两个使用不同学习率训练的检查点的线性加权平均(Linear Weighted Merge)。这种方法被证明能有效平滑损失地形,提升泛化能力。
4.3 阶段二:通过 Delta Learning 进行偏好微调 (DPO)
在传统的后训练流程中,偏好微调(如 RLHF/DPO)主要用于将模型与人类价值观对齐。但在 OLMo 3 Think 中,研究团队重新思考了 DPO 的作用,将其视为一种对比学习(Contrastive Learning)手段,旨在突破 SFT 的能力瓶颈。
4.3.1 核心理念:Delta Learning
在 SFT 阶段结束后,模型已经学习了大量来自 Qwen 3 32B 等强模型的推理模式。研究发现,如果在 DPO 阶段继续使用 Qwen 3 32B 生成的“胜出(Chosen)”回复进行训练,模型性能不仅没有提升,反而出现了下降。这是因为 SFT 模型已经充分模仿了教师模型,单纯的模仿学习已接近饱和。
为了解决这一问题,团队引入了 Delta Learning 概念。其核心直觉是:偏好数据的有效性主要取决于“胜出”回复与“拒绝(Rejected)”回复之间的能力差(Delta),而不在于回复本身的绝对质量。
具体的构造策略如下:
-
胜出响应 () :来自强推理模型(Qwen 3 32B, Thinking Mode)。 -
拒绝响应 () :来自弱推理模型(Qwen 3 0.6B, Thinking Mode)。
通过构建这样的配对 ,并优化 DPO 目标函数,模型被迫去识别并放大 相对于 的优势特征。这种对比信号比单纯学习 提供了更丰富的梯度信息。
4.3.2 Dolci Think DPO 数据构建
基于上述理念,团队构建了 Dolci Think DPO 数据集。
-
提示词来源:复用了 Dolci Think SFT 中的提示词,并补充了 DaringAnteater 和 Ultrafeedback 中的部分数据,总计约 20 万个 Prompt。 -
数据生成:对于每个 Prompt,分别使用强模型和弱模型生成回复。 -
过滤与清洗:对 应用了与 SFT 阶段相同的严格过滤(主题、准确性、去污染)。然而,对于 (拒绝响应),团队特意保留了未过滤的版本。这是为了保留 中的错误、幻觉或逻辑漏洞,从而最大化与 的质量差距。 -
数据混合:由于长思维链数据的生成成本高昂,无法进行大规模的混合实验。团队利用在非思维(Non-thinking)模型上的实验结论,选择了三个最佳的 Prompt 分布,并据此生成了最终的 DPO 数据集。

实验数据(表 19)强有力地支持了这一策略:直接在 上进行 SFT 导致模型在 MATH、GSM8K 等任务上全面退步;而使用 Delta Learning 的 DPO 训练则带来了显著提升,特别是在高难度的 AIME 数学竞赛题上,pass@k 指标通过 DPO 得到了实质性的扩展。
4.3.3 训练配置
DPO 训练使用标准的长度归一化 DPO 损失函数。训练持续 1 个 Epoch。关键的超参数包括 (KL 惩罚系数,设置为 5)和数据集大小。研究发现,DPO 很容易过拟合,因此“早停(Early Stopping)”至关重要。通过扫描数据集大小和学习率,选定最佳检查点。
4.4 阶段三:通过 OlmoRL 进行强化学习 (RLVR)
这是 OLMo 3 Think 训练流程中的“皇冠上的明珠(The Cherry On Top)”。在这一阶段,模型通过与验证器(Verifier)交互,进行大规模的强化学习训练。为了实现这一目标,团队开发了 OlmoRL 框架,并在算法和基础设施两方面进行了重大创新。
4.4.1 OlmoRL 算法创新
OlmoRL 建立在 GRPO (Group Relative Policy Optimization) 的基础之上,并融合了近期多项研究(如 DAPO, Dr. GRPO)的改进。其核心目标是最大化给定提示词 生成回复 的期望奖励。
OlmoRL 对标准 GRPO 进行了以下关键改进:
-
零梯度信号过滤 (Zero Gradient Signal Filtering) :在 GRPO 中,优势(Advantage)是基于组内相对奖励计算的。如果一组采样回复的奖励完全相同(例如全部错误或全部正确),其优势方差为 0,梯度贡献极低且可能引入噪声。OlmoRL 直接移除这些组,只在有区分度的样本上进行训练。 -
主动采样 (Active Sampling) :由于零梯度过滤会减少有效 Batch Size,OlmoRL 引入了主动采样机制。系统会持续从推理引擎中抽取样本并过滤,直到填满设定的 Batch Size。这保证了每次参数更新都有充足的有效信号,显著稳定了训练过程。 -
Token 级损失 (Token-level loss) :将损失函数按 Batch 内的总 Token 数进行归一化,而非按样本数归一化。这避免了模型对长短回复的长度偏见。 -
移除 KL 散度项 (No KL Loss) :遵循近期趋势(如 GLM-4.5),移除了损失函数中的 KL 散度惩罚项。实验表明,在受控的 RLVR 环境下,这不会导致模型崩溃,反而允许策略进行更充分的探索。 -
Clip Higher :在 PPO/GRPO 的截断机制中,将上界(Upper Bound)设置得比下界更宽松,允许模型对“好”的动作进行更大幅度的正向更新。 -
截断重要性采样 (Truncated Importance Sampling) :为了修正推理引擎(vLLM)与训练引擎之间可能存在的对数概率微小差异,引入了重要性采样比率,并对其进行截断以保持数值稳定性。 -
无标准差归一化 (No Standard Deviation Normalization) :在计算优势函数时,不除以组内奖励的标准差。这消除了“难度偏差”,即避免让那些组内方差极小(通常意味着题目极难或极易)的样本产生过大的梯度更新。
最终的目标函数如下:
其中 是基于组内相对奖励计算的优势, 是概率比率。
4.4.2 验证器与奖励设计 (Verifiers)
OLMo 3 将验证型强化学习(RLVR)从单一的数学领域扩展到了代码、指令遵循和通用对话等多个领域。每个领域配备了专门的验证器:

-
数学 (Math) :使用基于规则的验证器。利用 SymPy对模型输出的答案进行标准化,并与标准答案进行比对。匹配则奖励为 1,否则为 0。 -
代码 (Code) :使用基于测试用例的验证器。将生成的代码在沙箱环境(AWS Lambda)中运行,执行预定义的测试用例。尝试了两种奖励机制:通过率(百分比)和全对即满分(Binary)。最终选择了后者。 -
指令遵循 (Instruction Following) :使用函数集检查回复是否满足 Prompt 中的所有约束条件(如格式、长度、关键词等)。所有约束满足则奖励为 1,否则为 0。 -
通用对话 (Chat) :对于开放式对话,使用 LLM 作为裁判(Judge)。将回复输入给 Qwen3-32B(关闭思考模式),要求其根据质量打分(归一化到 [0, 1] 区间)。对于有参考答案的对话,让裁判比较模型回复与参考答案。
4.4.3 Dolci-Think-RL 数据集构建
为了支持大规模 RL 训练,团队构建了包含约 10 万条 Prompt 的 Dolci-Think-RL 数据集。
-
数据来源: -
数学:整合了 Open-Reasoner-Zero, DAPO-Math, AceReason-Math, OMEGA 等。 -
代码:AceCoder, KlearReasoner-Code 等。对于部分数据,通过“问题重写 -> 方案生成 -> 测试用例生成”的合成流水线补充了测试用例。 -
指令遵循:IF-RLVR。 -
通用对话:Tulu 3 SFT, WildChat (筛选版), Multi-Subject RLVR。
-
-
离线难度过滤 (Offline Difficulty Filtering) :为了提高 RL 的样本效率,团队利用 DPO 模型对所有 Prompt 进行了预生成(8次采样)。剔除了那些模型已经能以高概率(通过率 > 62.5%)解决的简单样本,专注于模型处于“学习区”的样本。 -
数据混合:由于 RL 实验成本极高,无法进行全量消融。团队采用了一种迭代策略:先在单领域进行小规模实验,然后根据表现调整混合比例,最终构建了一个平衡各领域(略偏重数学和 IF)的混合数据集。
4.4.4 基础设施工程
针对长思维链模型推理成本高昂的问题,OlmoRL 在基础设施层面进行了深度优化:

-
完全异步架构:采用 Learner-Actor 分离架构。Learner 负责参数更新,Actor(基于 vLLM)负责环境交互和数据生成。两者通过队列异步通信,最大化资源利用率。 -
连续批处理 (Continuous Batching) :传统的静态批处理(Static Batching)在处理长短不一的思维链时会产生巨大的计算浪费(等待最长样本完成)。OlmoRL 引入连续批处理,一旦某个样本生成结束,立即填入新样本,消除了等待时间。对于平均长度 14k、最大长度 32k 的 OLMo 3 Think,这一改进挽回了约 54% 的计算浪费。 -
Inflight Updates:为了减少 Actor 等待权重同步的空闲时间,实现了“飞行中更新”。Actor 在下载新权重的过程中不停止推理,而是无缝切换,利用推理框架的线程安全性,在不通过清空 KV Cache 的情况下完成更新。

这一系列优化使得 RL 训练吞吐量提升了 4 倍,将原本需要 15 天的 7B 模型训练任务缩短至 6 天。
4.5 关键发现与启示

4.5 关键发现与启示 (Key Findings and Insights)
OLMo 3 Think 的开发过程不仅产出了高性能的模型权重,更重要的是通过大量的消融实验(Ablation Studies)和失败尝试,积累了关于推理模型训练的深层经验。以下总结了在数据构建、训练阶段选择、多目标优化及基础设施方面的关键技术发现。
4.5.1 DPO 阶段的对比学习至关重要:模仿已至瓶颈
在后训练的第二阶段,研究团队观察到一个反直觉的现象:直接在 Dolci Think DPO 数据集的“胜出(Chosen)”响应上进行继续监督微调(Continued SFT),反而会损害模型的性能。

-
现象:如表 19 所示,在初始 SFT 模型的基础上,若仅使用 Qwen3-32B 生成的高质量思维链进行进一步的 SFT 训练,模型在 MATH、GSM8K 等关键基准上的分数出现下降。 -
归因:团队推测,这是因为 Dolci Think SFT 阶段的数据质量已经相当高,模型通过模仿学习获得的能力已接近饱和。DPO 数据集中的“胜出”响应相对于模型当前的 SFT 水平,并未提供足够显著的“模仿价值”或信息增益。 -
Delta Learning 的有效性:然而,当引入由较弱模型(Qwen3-0.6B)生成的“拒绝(Rejected)”响应,并应用 DPO 进行偏好学习时,模型性能得到了显著提升。这表明,在模仿学习饱和后,对比学习(Contrastive Learning)成为推动能力增长的关键驱动力。模型通过区分“好的推理”和“有缺陷的推理”之间的细微差别(即 Delta),获得比单纯模仿正确答案更强的泛化信号。 -
推理边界的扩展:DPO 带来的提升不仅仅是将原本概率较低的正确答案(Pass@k)转化为确定的正确答案(Pass@1),而是真正扩展了模型的推理边界。例如在 AIME 2025 等高难度任务上,DPO 训练后的 Pass@k 曲线明显优于 SFT 模型,表明模型探索解空间的能力得到了增强。
4.5.2 DPO 是 RLVR 的最佳启动点:Pass@K 与 Pass@1 的转化
在确定了三阶段训练流程(SFT -> DPO -> RL)后,团队深入探究了 RLVR(带验证奖励的强化学习)在不同初始化模型下的表现差异。

-
DPO 起点的优势:实验对比了从 SFT 模型启动 RL 和从 DPO 模型启动 RL 的效果。结果显示,从 DPO 模型启动不仅在最终性能上更优,而且在训练初期的稳定性更好。 -
对于 RL 未能显著改善的任务(如 AlpacaEval),DPO 起点的模型能保持其在 DPO 阶段获得的优势。 -
对于 RL 重点改善的任务(如 Omega 数学),两者最终性能相近,但 DPO 起点收敛更快。 -
对于高难度任务(如 AIME),SFT 起点的模型虽然能通过 RL 提升,但始终无法追平 DPO 起点的模型。
-
-
数据过滤并非关键因素:一个有趣的控制变量实验是:使用 DPO 模型离线过滤的数据来训练 SFT 模型(即 SFT 模型接触到了 DPO 模型认为“可学习”的样本)。结果发现,即便数据相同,SFT 模型的 RL 效果依然不如 DPO 模型。这说明 DPO 模型的优势内化在权重分布中,而非仅仅是数据筛选的结果。

-
熵与潜力的权衡:深入分析发现,虽然 DPO 模型在输出分布上通常表现出较低的熵(即更自信),但它在 AIME 等任务上的 Pass@K 性能实际上高于 SFT 模型(见图 20 DPO 显示出比 SFT 更高的 Pass@K 性能)。RLVR 的本质过程往往是将模型的 Pass@K 潜力转化为稳定的 Pass@1 表现。因此,拥有更高 Pass@K 上限的 DPO 模型自然成为了更理想的 RL 启动点。
4.5.3 多目标 RL 中的权衡:混合数据防止过拟合
在强化学习阶段,如何平衡不同领域的能力是一个核心挑战。OLMo 3 Think 的实验揭示了单领域训练与多领域混合训练之间的权衡机制。
-
单领域过拟合风险:如果在 RL 阶段仅针对某一特定领域(例如 IFEval 指令遵循)进行优化,模型在该领域的奖励值会迅速上升,但往往伴随着其他领域(如 AlpacaEval 通用对话能力)的性能下降。这表明模型可能在进行“奖励刷分(Reward Hacking)”,通过牺牲通用性来过度适配特定验证器的规则。

-
混合训练的正则化效应:当使用包含数学、代码、指令遵循和通用对话的混合数据进行 RL 训练时,虽然在各个单一领域的训练集奖励(Train Reward)增长速度不如单领域训练快(见图 21),但在下游的评估基准(Evaluation Benchmarks)上,混合训练的模型表现出更均衡且稳健的性能提升。 -
结论:混合数据在 RL 中起到了正则化的作用,迫使模型学习更通用的推理模式,而不是针对单一验证器的捷径。这解释了为何在 RLVR 中,广泛的数据分布比狭窄但深度的单一领域数据更能带来全面的能力提升。
4.5.4 训练动态:奖励增长与长度变化的非单调性
通过对训练过程的细粒度监控,研究团队观察到了 OLMo 3 Think 在 RL 阶段的独特行为模式。

-
各领域奖励稳步增长:图 18 显示,不同领域的奖励增长速率存在差异。指令遵循(IF)任务的奖励增长最快且最稳定,因为这类任务的验证规则相对明确且易于满足。代码任务的奖励增长最为缓慢,反映了代码生成的解空间巨大且验证严格(通常要求通过所有测试用例)。 -
序列长度的“先降后升”:与部分近期研究(如 DeepSeek R1-Zero)中观察到的序列长度在 RL 初期爆炸性增长不同,OLMo 3 Think 的平均响应长度在 RL 初期呈现轻微下降趋势,随后才开始缓慢增长并稳定。 -
原因分析:这可能是因为之前的 SFT 和 DPO 阶段已经教会了模型生成长思维链的模式(最高可达 32k tokens)。RL 阶段初期,模型首先学会了优化现有思维链的效率(导致长度略降),随后才开始探索更复杂的推理路径(导致长度回升)。这种受控的长度变化表明预训练和 SFT/DPO 为 RL 提供了良好的归纳偏置。
-
4.5.5 基础设施是算法扩展的基石
OLMo 3 Think 的开发再次印证了在大模型时代,系统工程与算法研究的不可分割性。
-
推理是主要瓶颈:对于生成长思维链的模型,RL 过程中的推理(Rollout)成本远高于参数更新(Train)成本。在 32B 模型的实验中,推理节点的 GPU 占用量是训练节点的数倍。 -
连续批处理 (Continuous Batching) 的必要性:由于思维链长度的方差极大(从几百到 32k tokens 不等),传统的静态批处理(Static Batching)会导致巨大的计算空闲(Padding Waste)。实验表明,在静态批处理下,高达 54% 的计算能力被浪费在等待最长序列完成上。引入连续批处理后,一旦某个序列生成结束,系统立即插入新请求,极大地提升了 GPU 利用率。 -
Inflight Updates 的效率提升:通过解耦 Actor 和 Learner,并在不暂停推理服务的情况下异步更新模型权重,OlmoRL 将训练吞吐量提升了约 4 倍。这意味着原本需要两周的实验现在可以在几天内完成,极大地加速了算法迭代的周期。

总结而言,OLMo 3 Think 的成功不仅仅依赖于单一的算法突破,而是建立在对数据对比性质的深刻理解(Delta Learning)、合理的课程学习设计(SFT -> DPO -> RL)以及针对长序列生成优化的底层基础设施之上。
5. Olmo 3 Instruct
在当前的大语言模型(LLM)应用场景中,并非所有任务都需要像 OLMo 3 Think 那样进行耗时且计算密集的“长思维链”推理。研究表明,现实世界的用户查询主要集中在一般性任务上,例如建议寻求、信息回忆和日常对话(Chatterji et al., 2025)。在这类场景下,用户期望模型能够快速且有帮助地响应。此外,日常聊天设置通常不需要 OLMo 3 Think 所具备的推理时扩展(inference-time scaling)特性。因此,开发团队构建了 OLMo 3 Instruct,旨在通过不生成扩展的内部思维链,在常见任务的推理时实现更高的效率。
为了支持这种不同的模型定位,OLMo 3 Instruct 需要不同的数据和训练配方。开发团队的重点在于通过引入多轮 DPO 数据来提高模型的交互性,并通过 Delta Learning 偏好微调管道中的长度干预来促进回复的简洁性。此外,OLMo 3 Instruct 被专门训练用于函数调用(Function Calling),为此发布了全新的 SFT 数据集。
5.1 Olmo 3 Instruct 的主要结果
OLMo 3 Instruct 在通用对话和工具使用基准测试中表现强劲。根据技术报告中的评估套件(包含数学、推理、代码、指令遵循、知识问答、聊天、工具使用及安全性等多个维度),OLMo 3 Instruct 7B 在多项指标上显著优于同等规模的开放权重模型。
具体而言,OLMo 3 Instruct 7B 在以下方面表现突出:
-
通用能力:优于 Qwen 2.5-7B Instruct、OLMo 2 7B Instruct 和 Apertus 8B Instruct。 -
工具使用:在 SimpleQA、LitQA2 和 BFCL 等基准上展现了强大的工具调用能力,且不仅仅依赖参数化知识。 -
指令遵循:在 IFEval 和 IFBench 上取得了具有竞争力的分数,特别是在经过 RL 阶段后。

5.2 监督微调 (Supervised Finetuning) 与 Dolci Instruct SFT
监督微调(SFT)是赋予基座模型指令遵循和对话交互能力的第一步。OLMo 3 Instruct 的 SFT 阶段基于 OLMo 2 Instruct 的经验构建,但在通用聊天、推理,特别是函数调用能力上进行了重大改进。这一阶段产生的数据集被称为 Dolci Instruct SFT。
5.2.1 全新的函数调用(Function Calling)训练数据
为了赋予 OLMo 3 Instruct 强大的工具使用能力,开发团队制定了明确的数据策展目标:
-
为模型提供基础的函数调用能力。 -
通过展示真实环境(如 MCP 服务器)的有效使用,使模型接触到复杂的代理-环境交互轨迹。
为此,团队通过使用更强的 LLM(如 GPT-4o, GPT-5)合成了两类关键的轨迹数据。
1. 真实交互轨迹 (Trajectories with Real Interactions)
这类数据侧重于让代理与真实的 MCP(Model Context Protocol)服务器进行交互,以解决特定领域的查询。虽然主要是一次用户轮次,但包含多次代理与环境的交互步骤。
-
Science QA 数据集:
该数据集包含两类主要查询,旨在通过检索和推理来处理学术内容:-
论文内容查询:关注论文摘要或全文中存在的信息。 -
引文图谱查询:关注作者、发表场所以及引用关系等元数据。 -
轨迹生成:使用配备了 ASTA Scientific Corpus (ASC) MCP 服务器的 GPT-4.1-mini 代理生成。ASC 服务器提供了对 Semantic Scholar 上元数据和论文内容的结构化访问。这确保了模型学习如何操作真实的学术检索工具。
-
-
Web Search QA 数据集:
该数据集通过多阶段流程生成,结合了基准测试衍生的查询和真实世界查询。-
查询来源:来自 HotpotQA、TaskCraft、WebWalkerQA (silver) 等开放基准,以及 SearchArena 和 OpenScholar 中经用户同意发布的真实提示。 -
过滤机制:使用 GPT-5 对查询进行过滤,仅保留那些确实需要搜索、且回复需要长文本并可验证的查询。 -
轨迹生成:使用配备了 Serper API 的 GPT-5 代理生成。Serper API 提供了 Google 搜索工具和 URL 网页抓取工具。这使得模型能够学习利用搜索引擎解决开放域问题。
-
2. 模拟交互轨迹 (Trajectories with Simulated Interactions)
虽然真实环境的训练非常有价值,但获取大规模的真实执行轨迹非常困难,且容易受到网络波动、API 限制的影响。为了提高模型对未见工具的泛化能力,并教会模型处理错误和意外输出,团队创建了一个大规模的合成数据集 SimFC。
-
环境模拟:使用 LLM(GPT-4o, GPT-4.1, GPT-5)来模拟整个交互过程,包括用户查询、环境响应(模拟工具返回结果)和助手回复。 -
数据来源:从现有数据集(如 xLAM, ToolACE)和公开 MCP 服务器中收集大量工具集或 API 定义作为种子。 -
多样性设计:精心设计提示,确保生成的数据集包含多种交互模式: -
多轮对话 (Multi-turn) :用户与助手进行多次往返交互。 -
多步执行 (Multi-step) :助手在一次回复中可能需要多次调用工具或根据上一步结果进行下一步调用。 -
拒绝 (Refusal) :当提供的信息或工具不足以完成任务时,模型应学会拒绝请求,而非产生幻觉。 -
并行调用:在单次轮次中调用多个函数。
-
3. 统一数据格式 (Unified Data Format)
为了保证工具使用行为的稳定性,OLMo 3 在所有工具使用数据中采用了统一的格式:
-
工具定义:使用 OpenAPI 规范进行定义,置于系统提示(System Prompt)中。 -
工具调用:所有函数调用均表示为 Python 代码块。 -
特殊标记:使用 XML 标签(如 <tool_code>)封装工具调用,并将环境输出置于特殊的environment角色中。Tokenizer 的词表也进行了扩展,加入了这些标签对应的特殊 token,这对训练工具使用至关重要。

4. 函数调用评估
团队使用了多种基准来评估 OLMo 3 Instruct 的工具使用能力:
-
BFCLv3 (Berkeley Function Calling Leaderboard) :评估内在的函数调用准确性(选择正确函数、参数填充正确性)。 -
LitQA2 (子集) :评估利用 ASC 工具访问科学文献的能力。 -
SimpleQA (子集) :评估利用搜索和浏览工具回答困难问题的能力。 -
注:评估采用 Zero-shot 设置,温度设为 0。对于 LitQA2 和 SimpleQA,通过比较“无工具(No-Tools)”和“有工具”的性能差异来衡量工具使用的有效性。
-
5.2.2 Dolci Instruct SFT 的策展细节
步骤 1:来源与生成
除了上述的函数调用数据,Dolci Instruct SFT 还包含:
-
指令遵循与科学数据:引入了新的指令遵循提示(Prompt)和科学领域提示。 -
通用聊天:来自 WildChat 的更多聊天提示。 -
去除非指令内容:对于包含推理痕迹(Reasoning Traces)的样本(如 OpenThoughts3 科学子集),移除了推理过程和特殊 token,仅保留最终回复,以符合 Instruct 模型的定位。 -
数据更新:将旧模型(如 GPT-3.5/4)生成的回复更新为 GPT-4.1 生成的高质量回复。

步骤 2:过滤与混合
遵循与 Think 模型类似的数据处理流程(参见报告 4.2.1 节):
-
启发式过滤:去除许可证不合规、长度异常、重复度高的样本。 -
主题过滤:使用分类器去除无关或低质量主题。 -
混合策略:基础混合包含 100k 来自 OLMo 2 SFT 的更新样本。通过消融实验确定各数据源的最佳比例。
关键策略:从 OLMo 3 Think SFT 启动 (Starting from Olmo 3 Think SFT)
这是一个重要的训练策略发现。OLMo 3 Instruct 的 SFT 阶段并非从 Base 模型开始,而是从 OLMo 3 Think SFT 模型开始训练(如图 2 所示)。
-
效果:实验表明,从具备推理能力的模型开始进行指令微调,能显著提升 Instruct 模型在各类基准上的性能。这表明推理训练中学到的表征能够有效地迁移到指令遵循任务中,即使 Instruct 模型在推理时并不输出思维链。

5.3 偏好微调 (Preference Tuning) 与 Dolci Instruct-DPO
为了进一步提升模型的通用可用性、交互性和简洁性,开发团队构建了 Dolci Instruct-DPO 数据集。该阶段不仅仅是简单的对齐,更是一种通过对比学习提升能力的手段。
5.3.1 偏好信号的构建 (Preference Signals)
Dolci Instruct-DPO 综合了多种偏好信号来源,以优化不同的模型特质:
1. Delta-learning 启发式配对 (Heuristic Pairs)
类似于 Think 模型,这里也采用了 Delta Learning 的思路,即通过强弱模型的对比来构建数据。
-
胜出响应 () :由大模型(Qwen3-32B)生成。 -
拒绝响应 () :由小模型(Qwen3-0.6B)生成。 -
区别:关闭了 Thinking 模式,不包含内部思维痕迹。
2. Delta 感知的 GPT 裁判配对 (Delta-aware GPT-judged Pairs)
团队发现,简单地使用 GPT-4.1 作为裁判对现有模型生成的回复进行打分并不总是有效,原因是如果用于生成回复的模型池质量普遍较高,那么“胜出”和“拒绝”响应之间的质量差异(Delta)就很小,导致 DPO 信号微弱。
-
干预措施:为了最大化 Delta,团队明确引入了质量较低的模型(如 Qwen3-0.6B, Phi4-Mini 等)进入生成池。 -
选择策略:在裁判过程中,强制要求从回复集中选出最差的作为拒绝响应,选出最好的作为胜出响应。这种“最大化差异”的策略被证明对提升 DPO 效果至关重要。

3. 多轮对话偏好 (Multi-turn preferences)
为了增强多轮对话能力,团队在 Tülu 3-DPO 数据集的基础上合成了多轮数据。
-
生成方法: -
Self-talk:让 LLM 扮演用户提出追问,扩展原始提示。 -
Synthetic-context:生成与原始提示相关的前置对话或上下文。
-
-
偏好构建:偏好对仅在对话的最后一轮构建,以避免同一对话中不同轮次的质量排序产生歧义。
4. 控制长度偏差 (Controlling length bias)
DPO 数据往往存在长度偏差,即胜出的响应通常比拒绝的响应更长(因为 GPT 裁判和人类通常认为更长的回复包含更多信息)。
-
问题:这种偏差会导致模型在 DPO 后变得过于啰嗦,生成长度显著增加,损害用户体验。 -
解决方案:在构建聊天和多轮对话的偏好数据时,引入了长度过滤器,限制胜出响应和拒绝响应之间的长度差异(例如限制在 100 tokens 以内)。甚至在某些情况下,刻意选择较短但质量合格的回复作为胜出项。 -
结果:这不仅提高了模型的简洁性,还被发现能提升后续 RL 阶段的稳定性。


5.3.2 提示混合 (Prompt Mixing)
提示池(Prompt Pool)来源于 Dolci Instruct SFT 数据集,并补充了 DaringAnteater 和 Ultrafeedback 子集。
-
混合策略:由于 DPO 的性能随数据量增加并非单调递增(存在过拟合风险),团队首先确定了一个 100k 样本的基线混合。然后通过消融实验,调整不同领域(代码、数学、闲聊等)提示的比例。最终的混合比例是根据经验确定的,通常手工调整的混合比随机采样效果略好。
5.3.3 训练细节
-
超参数:沿用了 Think 模型的设置(学习率扫描、数据集大小扫描)。 -
长度控制扫描:通过创建具有不同长度过滤阈值的数据集来寻找性能与简洁性的最佳平衡点。 -
检查点选择:基于定性测试(Vibe Check)和“性能-长度”分析来选择最终模型。
5.4 强化学习 (RLVR) 与 Dolci Instruct-RL
这是后训练的最后阶段,目的是进一步微调指令遵循能力。使用的算法框架与 Think 模型一致(OlmoRL),但数据和策略有所调整。
5.4.1 训练与数据
-
数据源:使用与 Dolci Think-RL 相同的提示池,但有两点重要区别: -
降低难度:在数学和代码领域,使用了难度较低的数据集,因为 Instruct 模型更关注通用指令遵循而非极限推理。 -
跳过离线难度过滤:Instruct 模型的目标是广泛的指令响应,而非解决特定的难题,因此不需要像 Think 模型那样过滤掉“简单”样本。
-
-
训练设置: -
最大响应长度:限制为 8K tokens(Think 模型为 32K),以防止模型生成过长的回复。 -
混合策略:混合了通用对话、数学和代码数据。初步实验表明,仅在单一领域(如数学)预热后再切换到混合数据的效果不如直接使用混合数据训练。
-
-
检查点选择: -
在两个 DPO 候选模型之上运行 RL:一个平均分最高,另一个分数稍低但定性测试(Vibe Check)更好。 -
选择标准:最终的 RL 检查点选择综合考虑了平均性能、回复长度和定性测试。为了避免偏向啰嗦的模型,在出现平局时,更看重那些不随测试时计算量扩展的数据集(如 MATH 和 AIME)的表现。
-
5.5 关键发现 (Key Findings)
总结 OLMo 3 Instruct 开发过程中的核心洞察:
-
从 Think SFT 模型启动是有益的:
即便 Instruct 模型不输出思维链,从已经学会推理的 Think SFT 权重开始训练,能显著提升 Instruct 模型的基准性能,且不会导致平均回复长度增加。这表明推理能力可以被“内化”或迁移。 -
偏好对的高对比度驱动 DPO 增益:
使用 LLM 裁判构建数据时,如果生成模型的质量都很高,DPO 将失效。必须通过引入弱模型来人为制造“胜出”和“拒绝”响应之间的显著质量差异(Delta),这种高对比度是 DPO 成功的关键。 -
组合不同的偏好信号能提升整体性能:
Delta Learning 启发式配对(强模型 vs 弱模型)和 Delta 感知的 GPT 裁判配对提供了互补的信号。组合使用这两类数据能获得最大的平均增益。 -
偏好微调中的简洁性有助于 RL 性能:
在 DPO 阶段通过长度控制获得一个简洁、可用的模型,不仅提升了用户体验,还为后续的 RL 训练提供了一个更好的起点。从简洁的 DPO 模型启动 RL,训练过程更稳定,性能提升更稳健。这可能是因为在固定的上下文窗口(8K)限制下,更短的模型“每个 token 的智能密度”更高,能更有效地利用优化预算。 -
工具使用的真实性:
通过对比“无工具”和“有工具”设置下的性能,证明了 OLMo 3 Instruct 确实是在利用工具解决问题,而非仅仅依赖参数化记忆。在 SimpleQA 等任务上,工具的使用带来了巨大的性能提升。
6. Olmo 3 RL-Zero
为了探究预训练数据对 RLVR 性能的影响,团队发布了 Dolci RL-Zero 数据集和基准。
6.1 基于 Dolci RL-Zero 的强化学习
-
数据:包含数学、代码、指令遵循三个领域。对数学数据进行了积极的去重和聚类。 -
Prompt:发现简单的 Prompt 模板(无特殊格式)在纯基座模型上效果最好。 -
去污染验证:通过使用“虚假奖励(Spurious Rewards,即随机奖励)”训练模型,发现性能未提升,反向验证了数据集并未遭到评估集的污染(如果已污染,模型会通过随机奖励回忆起记忆的答案)。
6.2 关键发现
-
显著推理提升:仅通过 RL,OLMo 3 Base 在数学任务(AIME)上的性能大幅提升,7B 模型接近了经过更多训练的 Qwen 2.5 32B (DAPO) 的水平。 -
多目标 RL 的挑战:混合领域训练虽然提升了整体性能,但各领域的单项表现略低于单领域训练,这为多目标 RLVR 提供了良好的研究基准。 -
中期训练的重要性:对比不同中期训练检查点的 RL 结果显示,如果中期训练中缺乏推理数据,模型在 RL 阶段无法学会回溯和验证等复杂行为(表现为响应长度不增长)。

附录与技术细节摘要
训练超参数
报告详细列出了各个阶段的超参数。
-
学习率:预训练阶段 7B 模型峰值 LR 为 ,32B 为 。中期训练和长上下文阶段采用线性衰减。 -
Batch Size:随着训练阶段推进逐渐减小。SFT 阶段 7B 模型为 1M tokens,32B 为 4M tokens。
过滤策略
-
去重:三级去重(Exact -> MinHash -> Suffix Array)是保证数据质量的关键。 -
RL 过滤:在构建 RL 数据集时,使用了基于规则的过滤(如去除重复 N-gram、去除中文比例过高的回复)来保证输出质量。
评估细节
-
生成配置:对于生成式评估,统一使用了 temperature=0.6和top-p=0.95(Instruct 和 Think 模型)。 -
安全性评估:增加了 Toxigen, StrongReject, WMDP 等新基准,全面评估模型的安全性拒答和潜在危害。
更多实验细节请阅读原报告。
