← 所有文章
Agentic RL · Notes

读懂 MiniMax:RL 算法、权重同步与可验证数据的一条主线

以 MiniMax 的发布博客为切口,把 RL 算法、训练系统、权重同步基建、数据 pipeline 串成一条线,最后落到那个真正决定上限的问题——“蒸馏 vs RL 的边界到底在哪”

2026 年 6 月 强化学习AgenticCISPOMiniMax长上下文
可验证性断崖:左边是代码与数学的坚实地面,右边是写作与研究的迷雾

可验证性断崖:左边是代码与数学的坚实地面,右边是写作与研究的迷雾

目录


    0一条主线

    大模型能力的上限,正在从“算法”转移到“数据与奖励的可验证性”;而能不能真正跑起来,取决于一整套工程基建。

    谁能把更多任务变得“可自动验证”,又能把训练-推理的飞轮转得够快,谁就能让模型摆脱“模仿老师”的天花板。


    1模型演进:M2 → M2.7 → M3

    1.1 大个子,小激活

    MiniMax 是典型的 MoE(混合专家):以已公开的 M2 为例,总参数约 229.9B,但每个 token 只激活约 9.8B(激活率 ~4.3%,256 个细粒度专家)。一句话——“个头像 2300 亿,跑起来像 98 亿”,论文标题就直白地叫 Mini Activations Unleashing Max Real-World Intelligence。(M3 的参数量官方尚未披露。)

    1.2 三代演进的暗线

    M2   全注意力(保精度,但平方复杂度贵) · 192K · 纯文本
          └ 埋伏笔:"高效注意力会掉点,先用全注意力顶着"
    M2.5 大规模 agentic RL(Forge + CISPO)
    M2.7 自我进化雏形:自己 debug 训练、改自己的 scaffold
    M3   MSA(块级稀疏注意力) · 1M · 原生多模态 · 操作电脑
          └ 兑现伏笔:"先用主流方法做平质量,再干净替换"

    1.3 M3 的核心创新:MSA

    1.4 参照系:小米 MiMo-V2.5-Pro

    对比同期的小米 MiMo-V2.5-Pro:

    MiMo-V2.5-ProMiniMax-M3
    规模1.02T 总 / 42B 激活官方未公开
    上下文1M1M(保底 512K)
    模态纯文本原生多模态(图/视频输入)
    省长上下文的招混合注意力(局部+全局 6:1)+ MTPMSA 块级稀疏
    主攻内存(KV cache↓~7×)、省 token计算、提速

    注意区分:纯文本的是 MiMo-V2.5-Pro(1.02T/42B);同系列还有个非 Pro 的 MiMo-V2.5(310B/15B)是原生全模态(文本+图+视频+音频)。这里对比的是定位与 M3 相近的 Pro 版。

    两者代表两种截然不同的省长上下文哲学。长上下文有两座大山:算得贵(每个新 token 都要回看全部历史,平方级增长)和存得贵(KV cache 把每个历史 token 的“笔记卡片”堆满显存)。

    同一个目标,一个从“分层”下手,一个从“分块”下手。


    2RL 算法:PPO / GRPO / CISPO

    2.1 一个统一框架

    所有策略梯度算法其实长一个样:

    $$ \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$ 怎么填。

    2.2 三者对比

    维度PPOGRPOCISPO
    需要 Critic✅(显存×2,难训)
    优势怎么算Value 网络 + GAE组内奖励归一化组内归一化(同 GRPO)
    裁剪对象概率比概率比重要性采样权重
    被裁 token 梯度归零归零保留(stop-gradient)
    关键推理 token易丢易丢不丢

    核心洞察:PPO/GRPO 会把“调过头的 token”直接封印(梯度=0),而那些罕见却关键的推理 token(“但是”“重新检查”)最容易被误伤。CISPO 只压力气、绝不封印,因此更适合长程 agent 轨迹。

    PPO 把不听话的人绳子剪断让其停摆;CISPO 只给他们限速,但人人都还在推车
    PPO 剪断绳子让人停摆;CISPO 只限速,但人人都还在推车(车 = 参数)

    用一个类比:一群人推车(车=参数)。PPO 是“谁用力过猛就剪断他的绳子、让他这轮歇着”(梯度归零);CISPO 是“谁用力过猛就给他限个速,但绝不让他停手”——人人都还在出力,只是不许过猛。

    2.3 为什么梯度会“归零”——五条数学性质

    梯度归零的根源,是下面五条数学性质:

    1. 常数导数=0 → clip 把 $r_t$ 钉成边界常数后,梯度自然没了;
    2. log 导数技巧 $\nabla\log\pi=\nabla\pi/\pi$ → 策略梯度的基石,只要 $\theta$ 在就永远有梯度;
    3. IS 权重恒等式 $\nabla r_t = r_t\nabla\log\pi$ → 连接“对 $r_t$ 求导”和“对 $\log\pi$ 求导”的桥;
    4. clip 分段导数:区间内是 $\nabla r_t$,超界是 0 —— 这就是归零的来源;
    5. stop-gradient:数值还在但不回传梯度(代码里就是 .detach())。

    CISPO 的妙处一句话讲清:把会“剪断梯度”的 $r_t$ 套上 stop-gradient 当常数系数,让梯度改从 $\log\pi$ 走——既限了大权重的方差,又保证每个 token 都有梯度。

    2.4 为什么会有“新旧模型”之分

    为省钱,一批昂贵生成的数据会被反复更新模型好几次:数据由旧模型 $\pi_{old}$ 生成(冻结),但模型已迭代到 $\pi_{new}$。重要性采样权重 $w=\pi_{new}/\pi_{old}$ 就是来纠偏的——越往后用、模型离得越远(off-policy 越严重),纠偏越关键,而权重太大会让训练崩,所以要裁剪。


    3Forge:自研 Agent-native RL 系统

    Forge 要破的是 RL 的“不可能三角”:吞吐量 vs 训练稳定性 vs Agent 灵活性


    4工程基建:权重怎么从训练侧搬到推理侧

    这一节是顺带延伸的:MiniMax 的公开材料几乎没提权重同步,但 Kimi(Moonshot)专门开源了 checkpoint-engine 来处理这件事,对比之下值得补一课——它也是 RL 里最容易被忽视、却最“烧钱”的环节。

    RL 的循环是:

    [训练引擎] 更新权重 θ ──► [推理引擎] 用新 θ 生成 rollout
          ▲                                  │
          └────── 用回答算 reward、梯度 ◄──────┘

    训练侧和推理侧(vLLM/SGLang)是两拨独立程序、各占 GPU、内存不互通。每轮要把几百 GB~几 TB 的新权重同步过去——这一步慢,GPU 就全在空转等权重。

    权重广播:一个老师模型把同一份新权重瞬间高速分发给一排学生推理实例
    权重广播:一个“老师”把同一份新权重瞬间高速分发给一排“学生”推理实例

    4.1 裸用 NCCL:Trinity-RFT 的做法

    Trinity-RFT 用一个 Synchronizer(同步协调员) 当交通警察,协调 Trainer ↔ Explorer:开训前 init_process_group(backend="nccl") 让双方“建个群”,同步时先握手对齐状态,再 collective_rpc("update_weight") 把权重广播出去。

    它的天花板(也是集合通信的通病):通信组是静态的——中途要加推理实例,得拆了重建整个组,打断在线服务;而且全有或全无,一个 rank 卡住全卡住。

    4.2 中间件:Moonshot 的 checkpoint-engine

    它不是 NCCL 的竞品,而是架在通信原语之上的编排中间件(Broadcast 模式底层照样用 NCCL)。招牌成绩:给 Kimi-K2(1T 参数)在数千卡上更新一次权重只要约 20s。两种模式:

    一句话选型:经典同步循环、实例固定 → 裸 NCCL 就够用上千卡、实例会动态增减 → 才轮到 checkpoint-engine。NCCL 是“自己开车的高速公路”,checkpoint-engine 是“路上又加了一套物流调度系统”。


    5数据构造 Pipeline(最值钱的部分)

    5.1 总原则

    每条训练数据 = 一个能跑的环境 + 一个客观可信的奖励信号。

    最反直觉的认知:这套 pipeline 的工作量不在“造数据”,而在“造验证器/造环境”。数据是副产品,verifier 才是主产品。

    5.2 Agentic Coding(奖励最好判,靠跑测试)

    5.3 Agentic Cowork(奖励难判)

    领域怎么判分
    深度搜索必须基于真实检索证据(防瞎编)
    办公文档多维 rubric
    金融表格反向造题:先跑真实工具拿结果,再倒推“答案被唯一确定”的题
    PPT渲染成图片再打分

    最聪明的是金融的“反向造题”:正常是先有题再求答案,他们反过来,先用工具跑出真实结果再倒推题目——答案天生可验证。

    5.4 怎么测一个模型的代码能力

    让模型写个 HTML 小游戏(黄金矿工、大鱼吃小鱼),能测“单轮生成 + 完整度 + 审美”,但测不到长程 agentic,而且简单版谁都能过、拉不开差距。想有区分度要:加硬约束(真实钟摆物理、倒计时、禁用库)、改多轮迭代(看会不会把前面改崩)、或上多模态(给截图还原——纯文本模型直接做不了,天然区分)。真正分高下的,是 debug 时能否一次找全多个 bug、模糊需求下会不会主动澄清、以及长任务里的自我纠错耐力


    6批判性思考:它在哪会塌

    亮点之外,更要看失效边界:


    7最深的一层:蒸馏 vs RL 的本质边界

    “现在 LLM 都在蒸馏”这话只对一半,关键看在哪一段:

    阶段是不是蒸馏能否超过老师
    SFT 冷启动✅ 基本是❌ 打底而已
    不可验证任务的 RL(写作/办公)⚠️ 半蒸馏(裁判也是 LLM)❌ 被裁判锁死
    可验证任务的 RL(代码/数学)不是,奖励来自环境能超过任何老师

    世界上的任务被一道“可验证性断崖”分成两半(就是开头那张图):左边代码、数学有客观对错,RL 能超老师;右边写作、研究、多轮协作只能靠裁判模型,被天花板锁死。

    MiniMax 的真功夫,是用反向造题、AaaV 这些手段,尽量把断崖右边的任务“搬”到左边。谁能把不可验证变可验证,谁就摆脱蒸馏、拿到护城河。


    8接回自己的研究:on-policy 蒸馏的位置

    把这些方法放进一根坐标轴,就能定位 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 章)——整条线就串起来了。