AI Pulse

模型要会多轮工具调用,预训练数据里得先有这种模式

模型要会多轮工具调用,预训练数据里得先有这种模式

TL;DR:在长程 agent 时代,预训练不能再只依赖静态的 NLL / BPB。更重要的是,CPT(continue pretrain/midtrain)不应只被当作“切换到干净的静态数据做退火和长上下文训练”。如果你希望模型输出多轮交互和工具使用模式,这些模式必须先存在于你的数据里。CPT 的核心作用是充当桥梁:尽早注入这些行为先验,把 pre-RL 起点尽可能抬高,并用轻量 RL 配合数据反馈实现快速迭代。

回顾过去,在前公司预训练团队接触以数据为中心的洞察的三个月让我学到了很多。通过最近与同行的交流,我一直在重温这些经验,并试着从纯局部的技术微调中抽身,以更高层、更宏观的视角看待现代 LLM 训练流程。最近我有不少新想法,这篇文章记录了其中一部分。

过去一个月,Microsoft AI(MAI-Base-2)、Reflection AI(Beam)、Mistral(Mistral Large 4,简称 ML4)和 NVIDIA(Nemotron 3.5)都发布了新的技术报告。这些团队各自都包含一批实力强劲的前 Google DeepMind(GDM)研究员。

有两点观察格外突出:

MAI-Base-2 扩展到 2.8T 参数和 50T token,但整篇博文仍只依赖静态 NLL / BPB,完全没有考虑面向 agent 的预训练指标;几个月前,MAI-Thinking-1 没能让在线 OPD(On-Policy Distillation)跑通,其 CPT(Mid-train)阶段只用自然数据做 LR 退火和长上下文训练。

Reflection 的 Beam 从极低的起点进入 RL,在超过一万块 GPU 上花了大约一个月才把分数慢慢训上去,导致 RL 样本复杂度很高,并且对多轮先验训练和快速迭代重视不足。

两点观察都指向同一个问题:预训练和 CPT / Mid-train 没有从 agentic-native 的视角设计;Mid-train 仍被简单地当作“切换到干净静态数据做退火”,而不是让 pre-RL checkpoint 获得多轮交互模式和高起点分数。

1. 比较这四份报告

1.1 MAI 系列

MAI-Base-2(由 Mustafa Suleyman、Karen Simonyan 等人领导)在经典预训练实验上做得很扎实:跨规模对齐数据重复,用 Muon 稳定训练,并拟合超参数 scaling law [1]。然而整篇博文包含零个生成式或工具使用评估。它宣称预训练算力效率比最强外部开放权重 base model DeepSeek-V4-Pro-Base 高 4 到 12 倍,依据仅仅是内部静态验证集上的 BPB;图 1 甚至在 Kimi K3、Qwen3.8-2.4T-A95B 和 MiMo-V2.6-Pro-RL 上测量静态文本 BPB,而这些模型只发布了 post-trained 权重,其输出分布在长 CoT RL 之后自然偏离自然文本。

6 月的 MAI-Thinking-1 报告沿用同样的思路 [2]:

报告明确为预训练期间只用 NLL、不用生成式或工具使用评估辩护:因为 NLL 通过 teacher forcing 让每一步都以 ground-truth 前缀为条件,从而限制了单步微小误差的累积程度。然而,多步交互中的状态漂移和误差累积恰恰是长程 agent 的主要难点,而 teacher forcing 恰好掩盖了这个问题。

受 GDM 旧观点——能力应当被学习而非继承——以及围绕商业售卖权重的版权顾虑驱动,它的 Mid-train 语料完全来自自然预训练集,按 NLL 重加权用于 LR 退火和长上下文训练,零合成数据,RL 之前零推理轨迹暴露;多领域专家合并也缺少在线 MOPD,退回到离线轨迹 SFT 加轻量 RL。

1.2 Beam vs. MiMo-V2.6

Reflection 的 Beam(由 Ioannis Antonoglou、Misha Laskin 和许多前 GDM 研究员领导)在 Mid-train 期间纳入论文推导、竞赛编程教程和静态代码任务的开放模型改写,并在 post-training 中实现全词表 MOPD,使其获得扎实的单轮数学竞赛成绩 [3]。

然而在长程 agent 任务上,它的 Mid-train 阶段(不到四天)和 SFT 阶段(整篇报告只有三句话)都非常单薄,而单次 RL 运行消耗的 GPU-days 是整个预训练运行的两倍多 [3], [4]。Mid-train 结束时,模型既没有 chat template,也没有官方 tool-call 语法,其代码和终端数据仍是单轮静态改写,没有多轮试错轨迹。结果是,Beam 在 DeepSWE 上以大约 5% 起步进入 RL,需要在超过一万块 GB300 上花约四周、生成超过 100M 条 rollout,才把分数训到大约 43%。

对比同期小米的 MiMo-V2.6:在 Mid-train 期间,小米混入了覆盖代码、通用和视觉领域的真实多轮 agent 轨迹,并早早把优化器从 AdamW 换成 Muon 变体,为大 batch 训练做准备。经过简短的 SFT 阶段后,MiMo-V2.6-Pro 进入 RL 时在 DeepSWE 上已接近 60%(高于 Beam 经过一个月 RL 后的最终分数),而仅仅 30 步超大 batch RL(总共约 700K 条 rollout,不到 Beam 预算的 1%)就把分数推高到 72% 以上 [5]。

1.3 Nemotron 3 Ultra 与 3.5 Super

年中发布的 Nemotron 3 Ultra 严重依赖 Mamba-2 以实现高吞吐,跳过了专门的 agentic Mid-train,只在 base model 上检查静态 benchmark;即使在 post-training 中蒸馏多个强开放权重模型并跑了两轮 MOPD,它在长程 bug 修复和深度搜索上的表现依然偏弱 [6]。到了 10 月底的 Nemotron 3.5 Super,团队加入了一个包含真实 multi-harness agent 轨迹的 SWE Mid-train 阶段,放弃 NLL 作为验收指标,改用轻量 SFT 后多个 agent harness 上的 solve rate,并以少得多的激活参数在 SWE-bench Pro 上击败了大得多的 Ultra [7]。

2. 遗留的 GDM 习惯,以及对 Gemini 3.1 Pro 的一个猜测

一个团队的 GDM 根基越深(MAI、Beam,以及中途调整之前的早期 ML4),两种遗留的 GDM 训练习惯就出现得越明显:

Chinchilla / Gemma 式预训练习惯:严格用静态验证 NLL 评估小规模 ladder,只要静态 loss 保持平稳就采用激进的 KV-cache 压缩(例如 5:1 的局部 SWA-512 配全局 NoPE),并假定多轮交互中的长程信息召回不会受影响。

AlphaGo Zero 式的白板(tabula rasa)习惯:让 PT 和 CPT 专注于压缩干净的静态知识,而把推理和行动学习留给沙盒中从零开始的在线 RL。围棋的动作空间极小、模拟很快;开放域软件工程和工具使用面对的是超过 100K token 的词表和超长上下文,单次容器运行常常超过十分钟,而奖励非常稀疏。无 critic 的 GRPO 主要放大 base model 在 pass@k 下已经能采样到的成功路径;如果上游先验很弱,在 100M 条 rollout 上搜索就变得非常低效。

这让我产生一个推测性的猜想:为什么 GDM 自家的 Gemini 3.1 Pro 发布时看起来那么强,之后却有一段时间落后于 OpenAI 和 Anthropic?

3.1 Pro 领先的时候,模型主要比拼预训练知识加上单轮超长 CoT。纯文本 CoT 接近预训练语料中教科书和论文推导的分布;即使 CPT 只在干净静态文本上退火,base model 也已经支持逐步推导,RL 可以把它放大成强大的单轮 CoT。但不久之后,GPT 和 Claude 进入了频繁的多轮工具使用,而我当时使用 Gemini 的明确印象是:它几乎不会用工具,仍停留在纯超长 CoT 的时代。

任何做过预训练数据的人都明白一个简单的道理:如果你想让模型输出某种模式,这种模式必须先存在于你的数据里。适合多轮、长程 agentic 任务的输出模式(简短分析状态 → 调用工具探测环境 → 读取错误日志或搜索结果 → 回溯并修改计划 → 在几十轮中维持状态)几乎不存在于自然网页或静态代码文件中。如果 CPT / Mid-train 只局限于在干净静态数据上做退火和长上下文训练,不注入这些多轮交互模式,单靠 RL 几乎永远无法从零激发出它们。

3. 从 agentic-native 视角重新思考预训练与 CPT

3.1 预训练指标

Mistral 在 ML4 中最初把 KV cache 压缩了 16 倍时,预训练 perplexity 和 MMLU 几乎没变;直到他们在运行中途做 Mid-train + SFT 评估,才发现同样的验证 perplexity 下 SWE-bench 掉了 20 多个百分点,迫使他们移除局部滑动窗口注意力和跨层共享,并重训了后半段的大部分 [8]。可比的语言建模 loss 并不意味着可比的长程 agent 表现。目前,在选择架构或数据配比时,一个实用的做法是附加一个固定小预算的 Mid-train + agentic SFT 探针,检查多个 agent harness 上的 solve rate 和 pass@k;我自己并不大量做评估设计,所以这里不再展开。

3.2 PT 与 CPT:注入交互模式,抬高 RL 起点

PT 和 CPT(尤其是连接 base model 与 post-training 的 Mid-train)不应该只意味着切换到高质量静态数据做退火。它们更重要的作用是架起 base model 与 post-training 之间的桥梁:注入目标输出模式,让 pre-RL checkpoint 拥有强的交互模式和尽可能高的起点分数,从而使下游 RL 能有效工作。

由于 PT 和 CPT 以高 MFU 在完整序列上并行训练,不必等待漫长的容器执行,也不会把算力浪费在零方差的全部失败 rollout 组上,它们非常适合注入复杂先验:

PT 阶段:在标准网页文本、教科书和静态代码之外,尽可能围绕真实任务进程组织数据,例如把“Issue → PR 讨论 → 跨文件 commit diff → code review 与 CI 失败修复”串成因果序列,让模型在预训练期间就遇到“问题、行动、反馈、修改”的模式。

CPT / Mid-train 阶段:重点注入多轮交互模式。把真实或合成的多轮工具使用轨迹、错误定位与回滚记录,以及多样 agent 框架(multi-harness)下的交互格式混入 CPT(对环境观察做 loss mask,只在推理和行动 token 上计算梯度),甚至像 MiMo-V2.6 那样早早切换优化器状态以匹配下游大 batch 训练。一旦 pre-RL checkpoint 拥有完整的交互模式和高起点分数,下游 RL 只需要几十万条 rollout 和几十次大 batch 更新就能激发出强劲表现。

通过 RL + MOPD 快速迭代并把数据反馈回 CPT:一旦 CPT 和 SFT 提供了扎实的初始策略,在线 RL 就能用适度的样本预算探索能力边界,通过共享 base 的 MOPD 合并领域专家,并把筛选后的高质量长程轨迹反馈到下一轮 CPT / CT(Mid-train)中,把长达一个月的 RL 运行缩短为以天计的迭代周期。在工业界的 1.1 或 1.2 小版本更新中,除了加入定向领域数据(例如 code-to-video 或 3D 建模),团队通常会把超长的用户回流 trace(保留工具使用、agentic markdown、上下文摘要等)清洗成干净的“问题→行动→答案”轨迹,并与任务特定的 RL 轨迹一起折回 CPT,做定向能力提升。

4. 两个未解决的问题

在 CPT / SFT 先验强度与探索多样性之间取得平衡。往 CPT 和 SFT 中加入太多来自单一来源的同质轨迹,会快速抬高 pass@1,但可能收窄输出分布、让熵下降过快,从而可能降低 pass@k 上限、压缩 RL 的探索空间(这很可能是遗留 GDM 团队抗拒合成数据和蒸馏的原因之一)。如何注入多轮工具使用模式并抬高起点分数,同时保留路径多样性,仍需进一步探索。

在小规模 scaling ladder 上选择能反映并预测旗舰 agentic 能力的可观测量。经典 NLL scaling law 能从小算力预算准确预测旗舰模型的 loss;然而在多轮 agent 任务上,小模型尚未跨过涌现阈值,环境方差又高。即使加上轻量 SFT 探针,跨两到三个数量级外推时的排名稳定性和定量准确性,仍远不如静态 BPB 成熟。

阅读原文
📚 相关主题 大模型训练技术分析

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新