以 MiniMax 的发布博客为切口,把 RL 算法、训练系统、权重同步基建、数据 pipeline 串成一条线,最后落到那个真正决定上限的问题——“蒸馏 vs RL 的边界到底在哪”。
可验证性断崖:左边是代码与数学的坚实地面,右边是写作与研究的迷雾
大模型能力的上限,正在从“算法”转移到“数据与奖励的可验证性”;而能不能真正跑起来,取决于一整套工程基建。
谁能把更多任务变得“可自动验证”,又能把训练-推理的飞轮转得够快,谁就能让模型摆脱“模仿老师”的天花板。
MiniMax 是典型的 MoE(混合专家):以已公开的 M2 为例,总参数约 229.9B,但每个 token 只激活约 9.8B(激活率 ~4.3%,256 个细粒度专家)。一句话——“个头像 2300 亿,跑起来像 98 亿”,论文标题就直白地叫 Mini Activations Unleashing Max Real-World Intelligence。(M3 的参数量官方尚未披露。)
M2 全注意力(保精度,但平方复杂度贵) · 192K · 纯文本
└ 埋伏笔:"高效注意力会掉点,先用全注意力顶着"
M2.5 大规模 agentic RL(Forge + CISPO)
M2.7 自我进化雏形:自己 debug 训练、改自己的 scaffold
M3 MSA(块级稀疏注意力) · 1M · 原生多模态 · 操作电脑
└ 兑现伏笔:"先用主流方法做平质量,再干净替换"
对比同期的小米 MiMo-V2.5-Pro:
| MiMo-V2.5-Pro | MiniMax-M3 | |
|---|---|---|
| 规模 | 1.02T 总 / 42B 激活 | 官方未公开 |
| 上下文 | 1M | 1M(保底 512K) |
| 模态 | 纯文本 | 原生多模态(图/视频输入) |
| 省长上下文的招 | 混合注意力(局部+全局 6:1)+ MTP | MSA 块级稀疏 |
| 主攻 | 省内存(KV cache↓~7×)、省 token | 省计算、提速 |
注意区分:纯文本的是 MiMo-V2.5-Pro(1.02T/42B);同系列还有个非 Pro 的
MiMo-V2.5(310B/15B)是原生全模态(文本+图+视频+音频)。这里对比的是定位与 M3 相近的 Pro 版。
两者代表两种截然不同的省长上下文哲学。长上下文有两座大山:算得贵(每个新 token 都要回看全部历史,平方级增长)和存得贵(KV cache 把每个历史 token 的“笔记卡片”堆满显存)。
同一个目标,一个从“分层”下手,一个从“分块”下手。
所有策略梯度算法其实长一个样:
$$ \nabla J = \mathbb{E}\big[\, w \cdot \hat{A} \cdot \nabla \log \pi_\theta \,\big] $$
三个零件:$\hat{A}$(优势)=这次比平均好还是差;$w$(权重)=用多大力气(要踩刹车的就是它);$\nabla\log\pi_\theta$=往哪调参数能改变这个 token 的概率(指南针)。三个算法的全部差别,只在 $\hat{A}$ 和 $w$ 怎么填。
| 维度 | PPO | GRPO | CISPO |
|---|---|---|---|
| 需要 Critic | ✅(显存×2,难训) | ❌ | ❌ |
| 优势怎么算 | Value 网络 + GAE | 组内奖励归一化 | 组内归一化(同 GRPO) |
| 裁剪对象 | 概率比 | 概率比 | 重要性采样权重 |
| 被裁 token 梯度 | 归零 | 归零 | 保留(stop-gradient) |
| 关键推理 token | 易丢 | 易丢 | 不丢 |
核心洞察:PPO/GRPO 会把“调过头的 token”直接封印(梯度=0),而那些罕见却关键的推理 token(“但是”“重新检查”)最容易被误伤。CISPO 只压力气、绝不封印,因此更适合长程 agent 轨迹。
用一个类比:一群人推车(车=参数)。PPO 是“谁用力过猛就剪断他的绳子、让他这轮歇着”(梯度归零);CISPO 是“谁用力过猛就给他限个速,但绝不让他停手”——人人都还在出力,只是不许过猛。
梯度归零的根源,是下面五条数学性质:
.detach())。CISPO 的妙处一句话讲清:把会“剪断梯度”的 $r_t$ 套上 stop-gradient 当常数系数,让梯度改从 $\log\pi$ 走——既限了大权重的方差,又保证每个 token 都有梯度。
为省钱,一批昂贵生成的数据会被反复更新模型好几次:数据由旧模型 $\pi_{old}$ 生成(冻结),但模型已迭代到 $\pi_{new}$。重要性采样权重 $w=\pi_{new}/\pi_{old}$ 就是来纠偏的——越往后用、模型离得越远(off-policy 越严重),纠偏越关键,而权重太大会让训练崩,所以要裁剪。
Forge 要破的是 RL 的“不可能三角”:吞吐量 vs 训练稳定性 vs Agent 灵活性。
这一节是顺带延伸的:MiniMax 的公开材料几乎没提权重同步,但 Kimi(Moonshot)专门开源了 checkpoint-engine 来处理这件事,对比之下值得补一课——它也是 RL 里最容易被忽视、却最“烧钱”的环节。
RL 的循环是:
[训练引擎] 更新权重 θ ──► [推理引擎] 用新 θ 生成 rollout
▲ │
└────── 用回答算 reward、梯度 ◄──────┘
训练侧和推理侧(vLLM/SGLang)是两拨独立程序、各占 GPU、内存不互通。每轮要把几百 GB~几 TB 的新权重同步过去——这一步慢,GPU 就全在空转等权重。
Trinity-RFT 用一个 Synchronizer(同步协调员) 当交通警察,协调 Trainer ↔ Explorer:开训前 init_process_group(backend="nccl") 让双方“建个群”,同步时先握手对齐状态,再 collective_rpc("update_weight") 把权重广播出去。
它的天花板(也是集合通信的通病):通信组是静态的——中途要加推理实例,得拆了重建整个组,打断在线服务;而且全有或全无,一个 rank 卡住全卡住。
它不是 NCCL 的竞品,而是架在通信原语之上的编排中间件(Broadcast 模式底层照样用 NCCL)。招牌成绩:给 Kimi-K2(1T 参数)在数千卡上更新一次权重只要约 20s。两种模式:
一句话选型:经典同步循环、实例固定 → 裸 NCCL 就够用;上千卡、实例会动态增减 → 才轮到 checkpoint-engine。NCCL 是“自己开车的高速公路”,checkpoint-engine 是“路上又加了一套物流调度系统”。
每条训练数据 = 一个能跑的环境 + 一个客观可信的奖励信号。
最反直觉的认知:这套 pipeline 的工作量不在“造数据”,而在“造验证器/造环境”。数据是副产品,verifier 才是主产品。
| 领域 | 怎么判分 |
|---|---|
| 深度搜索 | 必须基于真实检索证据(防瞎编) |
| 办公文档 | 多维 rubric |
| 金融表格 | 反向造题:先跑真实工具拿结果,再倒推“答案被唯一确定”的题 |
| PPT | 渲染成图片再打分 |
最聪明的是金融的“反向造题”:正常是先有题再求答案,他们反过来,先用工具跑出真实结果再倒推题目——答案天生可验证。
让模型写个 HTML 小游戏(黄金矿工、大鱼吃小鱼),能测“单轮生成 + 完整度 + 审美”,但测不到长程 agentic,而且简单版谁都能过、拉不开差距。想有区分度要:加硬约束(真实钟摆物理、倒计时、禁用库)、改多轮迭代(看会不会把前面改崩)、或上多模态(给截图还原——纯文本模型直接做不了,天然区分)。真正分高下的,是 debug 时能否一次找全多个 bug、模糊需求下会不会主动澄清、以及长任务里的自我纠错耐力。
亮点之外,更要看失效边界:
git clone/pip install 偷答案)。“现在 LLM 都在蒸馏”这话只对一半,关键看在哪一段:
| 阶段 | 是不是蒸馏 | 能否超过老师 |
|---|---|---|
| SFT 冷启动 | ✅ 基本是 | ❌ 打底而已 |
| 不可验证任务的 RL(写作/办公) | ⚠️ 半蒸馏(裁判也是 LLM) | ❌ 被裁判锁死 |
| 可验证任务的 RL(代码/数学) | ❌ 不是,奖励来自环境 | ✅ 能超过任何老师 |
世界上的任务被一道“可验证性断崖”分成两半(就是开头那张图):左边代码、数学有客观对错,RL 能超老师;右边写作、研究、多轮协作只能靠裁判模型,被天花板锁死。
MiniMax 的真功夫,是用反向造题、AaaV 这些手段,尽量把断崖右边的任务“搬”到左边。谁能把不可验证变可验证,谁就摆脱蒸馏、拿到护城河。
把这些方法放进一根坐标轴,就能定位 on-policy 蒸馏(TCoD: Temporal Curriculum in On-Policy Distillation)的位置:
纯模仿/蒸馏 ←———————————————→ 纯 RL(环境奖励)
(off-policy,学老师轨迹) (on-policy,自己探索)
SFT on-policy 蒸馏(TCoD) RLVR(MiniMax)
↑学不过老师 ↑中间路线 ↑能超老师但奖励难造
On-policy 蒸馏让学生在自己的分布上探索(避免纯蒸馏的 exposure bias),同时用老师的稠密信号做监督(不依赖难造的 verifier)——特别适合多轮、长程、难验证的 agent 场景,恰好是断崖右边的一种解法。
而它依托的 Trinity-RFT 把 RFT 解耦成 Explorer / Trainer / Buffer 三模块,和 Forge 解耦 training/inference/agent 是同一种哲学:把“生成经验”和“消费经验”分开,才能灵活控制 on-policy/off-policy。Buffer 专门处理数据陈旧度(呼应 Windowed-FIFO),Explorer↔Trainer 之间靠 NCCL 同步权重(呼应第 4 章)——整条线就串起来了。