MiniMax-M2 Series:Pretraining、SFT、RL 与训练外层循环

1. 论文信息

论文:The MiniMax-M2 Series: Mini Activations Unleashing Max Real-World Intelligence
链接:arXiv:2605.26494 · HTML 全文

一个预训练模型,怎样经过数据构建、SFT、长程 RL 和持续评测,变成可以完成真实任务的策略模型?

本文沿一条训练主线展开:Pretraining 与 Decay 建立底座,SFT 冷启动可运行策略并注入 Interleaved Thinking,RL 与 CISPO 根据任务结果改变动作概率,Forge 负责规模化训练,Self-Evolution 则构成训练研发的外层迭代。

预训练决定模型拥有什么,SFT 决定模型从哪里开始行动,RL 决定哪些行动会被强化;Forge 和外层评测则决定这条参数更新链路能否持续运转。

MiniMax-M2、M2.5 与 M2.7 的版本能力进展

M2 系列在 11 个三代均有结果的 benchmark 上的版本进展。图中是数据、RL、scaffold 和评测共同变化后的版本结果,不是单组件消融。

2. Pretraining:结构、数据与 MTP

模型结构
M2 是一个 62 层 decoder-only Transformer,隐藏维度为 3,072,最大上下文为 192K。模型共有 229.9B 参数,但每个 token 只激活约 9.8B;MoE 降低的是单 token 计算量,不是 checkpoint 的权重规模。

每个 Transformer block 的 FFN 都采用 MoE:共有 256 个细粒度专家,每个 token 选择 top-8,router 使用 sigmoid gating 和可学习的 expert bias。这种设计用条件计算换取更大的总参数量,同时也需要管理专家分工、路由决策和负载均衡。

Attention 则选择 Full Attention,而不是 Hybrid Sliding Window Attention。两者在部分短任务上接近,但长上下文差距会扩大,例如 RULER 128K CWE 为 90.0 对 72.0。这个选择本质上是用更高的计算成本换取长程状态的稳定性。

数据与 Decay
M2 共使用 29.2T 预训练 tokens。Constant phase 约 19.9T,Data mixture 是不同数据来源的采样分布;论文只说明代码、数学和 STEM 相对自然分布被显著上采样,没有公开各类数据的完整比例和重复次数。

Decay phase 约 9.3T,混入更高质量的数据,并把上下文从 8K 逐步扩展到 32K、192K;长文本主要来自代码拼接、自然长文 PDF 和主题相关的 document packing。论文没有公开 learning-rate schedule,因此这里更适合把 Decay 理解成数据构成、上下文长度和辅助目标共同变化的继续预训练阶段,不能把后期收益简单归因给某个数据集。

MTP
Multi-Token Prediction 在 next-token loss 之外继续预测更远的未来 token。它不是另一个完整模型,而是附加在主模型上的预测模块,并与主模型共享 embedding 和 output head:

Multi-Token Prediction 模块架构

Multi-Token Prediction(MTP)模块架构。

预训练早期使用一个 MTP 模块,loss 权重为 0.3;Decay 阶段将权重退火到 0.1,并把模块扩展到三个。新增模块从主模型复制权重,先单独训练到 loss 稳定,再与主模型联合训练。推理时,MTP 生成多个 draft tokens,再由主模型一次性验证。因此它有两个角色:训练时增加未来 token 的监督信号,推理时通过 speculative decoding 提高吞吐。

3. SFT 冷启动:数据与 Interleaved Thinking

预训练后的模型已经有代码和推理知识,但还没有稳定学会什么时候调用工具、如何遵守协议、怎样根据 observation 继续,以及何时验证和结束。SFT 的作用,是给参数注入一套可运行的行为先验,为 RL 提供起点。

论文的 SFT 数据覆盖 chat、reasoning、code 和 cowork 四个领域,流程是领域 reward rejection sampling 加多阶段清洗,留下高质量的 interleaved-thinking trajectories。

SWE 与 AppDev 的可验证数据构建管线

SWE 与 AppDev 的可验证数据构建管线。

数据场景 如何得到可验证信号
SWE GitHub PR、可运行 Docker、F2P/P2P 测试;分别检查修复和回归
AppDev Agent-as-a-Verifier,依次通过 Execution、Interaction、Visual Aesthetics 三层 rubric
Terminal-Gym 自动生成 Docker 环境和测试,并按通过率、提示数量、修复轮数校准难度

在 AppDev 管线中,采样时 teacher 可以看到完整的专家提示,训练时再删掉其中一部分,通过 prompt distillation 让模型把工具规范、TODO 和自验证习惯内化,而不是依赖同一份 system prompt。论文还在部分数据管线中扰动 scaffold,降低模型对单一工具布局的共适应。

在 SFT 中,一条轨迹会被拆成许多 state-action 训练样本;模型在每个 state 上拟合 teacher action。这样做能把工具协议和行为模式注入参数,但 SFT 更像行为模仿,不直接知道哪个动作最终提高了任务成功率。它仍可能遇到 teacher 状态分布和学生运行状态不一致、模型与 scaffold 共适应等问题,所以是冷启动策略,而不是最终的成功率优化。

其中一个关键的行为先验是 Interleaved Thinking。M2 把 reasoning、action 和 observation 组织成交错序列:

Interleaved trajectory

交错轨迹与 reasoning state persistence。

它区别于“不思考”和“先想完再行动”:每轮工具返回后,模型重新进入 thinking,并继续使用之前的状态。

No Thinking、Extended Thinking 与 Interleaved Thinking

三种 reasoning state 组织方式。图片展示模式对比;Plan–Act–Reflect 的循环关系需要结合正文理解。

Interleaved Thinking 不只是让思考和工具调用交错出现,更关键的是 reasoning state persistence:上一轮的 thinking、action 和 tool response 都会进入下一轮上下文。

这样模型可以复用假设和中间结论,在 observation 不符合预期时修正计划,而不是每轮重新猜测背景。论文声称 reasoning-state persistence 在多项 Agent benchmark 上有一致收益,但没有公开完整数值消融,不能写成明确百分比的因果结论。

4. RL:Reward、CISPO 与 Mixed-Domain

SFT 解决“教师通常怎么做”,RL 进一步问“当前模型怎样做更容易成功”。

Rollout :让当前 policy 在环境里跑一次的过程
Trajectory :这次运行留下的完整序列
Training pair:从 trajectory 拆出的单步 (state, action)

论文将 state transition 和完整 trajectory 定义为:

State transition 与 trajectory 定义

工具执行和上下文管理共同决定下一个 state,policy 则由模型参数化。

模型 completion 是 action;工具返回、上下文管理和环境变化共同决定下一个 state。

进入 Agent RL 后,Interleaved Thinking 继续作为 rollout 的状态组织方式;RL 优化的是在这些 state 下,哪些 action 更可能带来更高 reward。

论文没有只使用最终 pass/fail,而是组合三类 reward:

Composite reward

Process、speed 和 performance 三类 reward 的组合。

process reward 提供工具格式和中间行为等密集信号;speed reward 根据相对完成时间鼓励更高效的路径;performance reward 反映最终任务结果。

进入 CISPO 之前,原始 reward 会先被转换成 advantage:从当前动作开始累加后续 reward,再减去这条 trajectory 的 baseline。

Advantage 的计算方式

Reward-to-go 衡量动作之后累积的收益,trajectory-level baseline 用于降低方差。

Reward 给出结果好坏,advantage 将它变成相对基线的更新信号;接下来才由 CISPO 把这个信号转成 policy 更新。

CISPO(Clipped Importance Sampling Policy Optimization)是一种基于重要性采样的策略优化方法:它允许当前 policy 继续利用旧 policy 产生的 rollout,用 importance ratio 校正两者的概率差异,再通过 clipping 限制旧数据造成的过大更新。其目标函数如下:

CISPO 目标函数

重要性权重来自当前策略与 rollout policy 对同一 token 的概率比,并进行非对称裁剪:

重要性采样比率的非对称裁剪

Ratio 使用 stop-gradient,并裁剪到 0 至 1 加上限系数的区间,不使用 PPO 式的对称下界。

对这个目标函数求梯度后,每个 token 的更新信号可以读成三个因子的共同作用:

advantage 决定动作应被鼓励还是压制;当前策略的 log-probability 梯度给出参数更新方向;裁剪后的重要性权重限制旧 rollout 对更新的影响。

为了避免 RL 只优化工具任务,论文在每个阶段同时混合 reasoning、coding、agent、general 四类数据,并逐步调整:

训练轴 变化方向
Domain ratio 早期偏 reasoning/general,后期增加 agent/coding
Context length 从短决策逐步扩展到长轨迹
Difficulty 从宽分布逐步集中到困难样本

这只能降低遗忘,不能保证所有能力单调上升。表 4 中 M2.7 的 MMLU-Pro 为 81.8,低于 M2.5 的 85.2。

5. Forge:让长轨迹 RL 持续运转

Forge 把 rollout、trajectory、reward、训练和权重同步接成可持续循环。

Forge RL 系统架构

Forge 将 Agent Side、middleware 和 Training/Inference Side 解耦,并同时支持 black-box 与 white-box Agent。

Agent Side
→ Gateway / Data Pool
→ Rollout Engine 生成 token
→ Train Engine 计算 CISPO
→ 同步新权重回 Rollout Engine

black-box Agent 只需交出实际请求、completion 和 observation;内部如何压缩上下文、管理 memory 或协调子 Agent,可以对训练框架不透明。white-box Agent 则把 context management 注册给框架,以便训练时重建状态。

Forge 主要解决三个训练系统问题:

  • Policy staleness:长 rollout 完成时,生成它的权重可能已经旧了;更快产生新数据,可以让训练分布更接近当前 policy。
  • Length bias:严格 FIFO 会被长任务阻塞,完全 greedy 又会让短任务主导前面的 batch。Windowed FIFO 在两者之间控制吞吐与数据分布的平衡。
  • 重复计算:Prefix-tree merging 只计算一次共享前缀,再分别计算分支;论文称最高 40× speedup,但没有公开硬件、平均加速、显存曲线或误差条,不能把“up to”写成普遍结果。

Windowed FIFO 调度机制

窗口锚定在当前最老的未消费 trajectory,并限制调度器能够向后查看的范围。

Windowed FIFO 的机制可以压缩成三步:

  1. 以队头最老的未消费 trajectory 为起点,只开放它和后面一定数量的任务。
  2. 窗口内不要求严格顺序,哪个 trajectory 先完成,哪个就可以先进入训练,避免慢任务造成队头阻塞。
  3. 窗口外的任务即使已经完成也不能被取走;只有队头被消费后,窗口才会向右滑动并放入后续任务。

窗口越小越接近严格 FIFO,训练分布更稳定;窗口越大越接近 greedy,吞吐更高但更容易让短任务提前聚集。论文实践中将窗口大小设为 generation batch 规模的 30%。

调度之外,Rollout Engine 的生成侧还使用 MTP 加速 RL rollout。随着 CISPO 持续更新 policy,主模型的输出分布也会变化;如果 MTP 不同步,draft token 的 acceptance rate 就会下降。论文因此使用 top-K KL loss 让 MTP 模块持续跟随当前 policy,保持生成吞吐。这里的 MTP 主要影响推理效率,不参与 reward、advantage 或信用分配。

这些优化影响的是有效训练产量:

更高吞吐 → 更多有效 trajectory → 更广的 reward 覆盖 → 更多参数更新

6. Self-Evolution:训练研发的外层循环

Self-Evolution 是这条训练链路的外层循环,不是模型实时修改自身权重:

Model Iteration System 与 RL 团队双循环

Model Iteration System 与 RL team workflow。论文将其称为 self-evolution 的 early operational form。

人类设定目标

模型读取日志、分析失败、修改 scaffold/config

运行实验与 Evaluation

人类 review,决定保留、回滚或进入下一轮

论文中模型承接了 RL 团队约 30%–50% 的日常 iteration workload,并在内部 programming scaffold 上完成 100 轮全自主迭代、内部评测提升约 30%。这些是工作量和内部实验结果,不是公开 benchmark 上的模型权重增益;MLE Bench Lite 的 66.6% medal rate 也不能与它混为同一实验。