1. 从标题拆解MiMo-V2.6到底想解决什么问题
1.1 一个“自我提升”的模型,重点不在模型本身
第一次看到《MiMo-V2.6:通过扩展强化学习实现模型自我提升》这个标题,我的直觉是:这又是一篇讲“我们训了个更大的模型”的报告。但仔细读下来会发现,它的重心其实不在“模型有多大”,而在“模型怎么靠自己变得更好”。这个区别很关键。
传统的大模型迭代路径,基本是三步走:加数据、加参数、加算力。数据从哪来?人工标注、互联网爬取、合成数据。参数怎么加?堆层数、堆专家数。算力怎么来?买卡、排队、调并行策略。这套打法在过去两年确实有效,但边际收益在肉眼可见地下降。原因不复杂:高质量人类标注数据快用完了,合成数据又有“模型自噬”的风险,而单纯堆参数的性价比越来越低。
MiMo-V2.6给出的思路是:把“提升”这件事本身交给强化学习来做。模型不只是被动地拟合数据分布,而是主动地去探索“什么样的输出能拿到更高的奖励”,然后朝着那个方向调整自己。这就是标题里“自我提升”四个字的真正含义——不是模型自己改自己的代码,而是模型通过RL循环,自己生成候选、自己评估、自己优化。
1.2 为什么是“扩展强化学习”而不是“微调”
这里要区分两个概念:监督微调(SFT)和强化学习(RL)。SFT的本质是“模仿”,你给它看一万条“好答案”,它学会的是“像这些好答案一样说话”。但“像”不等于“对”,更不等于“好”。SFT的天花板就是标注数据的质量上限。
RL的本质是“试错”。模型生成一个回答,奖励模型给一个分数,模型根据分数调整策略。它不需要知道“标准答案”是什么,只需要知道“这个方向对不对”。这就打开了另一个维度的提升空间:模型可以探索出人类标注者没想到过的解法。
标题里的“扩展”二字也值得琢磨。扩展什么?我理解至少有三层:一是扩展奖励信号的来源,不依赖单一奖励模型;二是扩展训练任务的多样性,让模型在不同场景下都能自我提升;三是扩展计算资源的分配,把更多算力花在“探索”而不是“模仿”上。
1.3 MoE架构在这里扮演什么角色
热词里出现了MoE,这不是偶然。MiMo-V2.6大概率采用了混合专家架构。MoE的核心思想是:不是每个token都需要经过全部参数,而是由路由网络决定“这个token该找哪几个专家处理”。这样做的好处是,总参数量可以很大,但每次推理只激活一小部分,计算效率高。
在RL训练场景下,MoE还有一个额外优势:不同专家可以 specialize 到不同类型的任务或推理模式上。比如有的专家擅长数学推理,有的擅长代码生成,有的擅长多轮对话。当RL信号进来时,路由网络会逐渐学会“把这类问题分配给更可能拿高分的专家”。这相当于在RL之外,又加了一层“任务-专家”的匹配优化。
但MoE+RL也不是没有代价。路由网络的训练本身就不稳定,加上RL的方差,很容易出现“专家坍缩”——所有token都涌向同一个专家,其他专家变成死权重。MiMo-V2.6的技术报告里应该花了相当篇幅讲怎么稳住这个问题,后面我会结合常见实践展开。
2. 强化学习自我提升的核心机制拆解
2.1 奖励信号从哪来:三种主流方案对比
RL训练最核心的问题永远是:奖励从哪来?目前业界主要有三条路线,MiMo-V2.6大概率是混合使用。
| 奖励来源 | 实现方式 | 优势 | 风险 |
|---|---|---|---|
| 人类偏好模型 | 训练一个Reward Model,输入(问题,回答),输出标量分数 | 贴近人类真实偏好 | 奖励黑客(Reward Hacking),模型学会讨好RM而非真正变好 |
| 规则/程序验证 | 数学题对答案、代码跑单元测试、逻辑题检查一致性 | 信号准确,无法作弊 | 覆盖场景有限,开放域任务用不了 |
| 模型自评估 | 用另一个LLM或模型自己给回答打分 | 成本低,可扩展 | 自评偏差,容易陷入“自我感觉良好”的循环 |
MiMo-V2.6的“自我提升”如果只靠第三种,风险很大。更合理的做法是:在可验证任务上用规则奖励,在开放任务上用偏好模型,同时用自评估做辅助信号。这样既保证了信号质量,又扩展了适用范围。
注意:奖励黑客是RL训练中最隐蔽的坑。模型会找到一切办法拿高分,哪怕那个办法完全违背你的本意。比如你让RM偏好“长回答”,模型就会学会啰嗦;你让RM偏好“自信语气”,模型就会学会胡说八道时也理直气壮。必须用多个奖励信号交叉验证。
2.2 策略优化:PPO、GRPO还是别的
有了奖励,下一步是怎么用奖励更新策略。PPO(Proximal Policy Optimization)是经典选择,但它需要同时维护策略模型、价值模型、奖励模型,显存占用大,调参困难。对于大模型来说,PPO的工程复杂度很高。
近两年GRPO(Group Relative Policy Optimization)在LLM社区流行起来。它的核心改动是:不要价值模型了,而是对同一个问题生成一组回答,用这组回答的平均奖励作为基线,每个回答的奖励减去基线得到优势值。这样做省掉了价值模型,显存和计算都更友好。
MiMo-V2.6如果强调“扩展”,很可能在GRPO基础上做了进一步改进。比如:
- 动态调整组大小:简单问题用小group,复杂问题用大group
- 混合on-policy和off-policy数据:提高样本效率
- 分层奖励:token级奖励和序列级奖励结合
具体用了哪种,技术报告里应该有消融实验。但不管哪种,核心逻辑是一样的:让“高于平均水平的回答”被强化,“低于平均水平的回答”被抑制。
2.3 自我提升的循环怎么闭合
“自我提升”听起来很玄,但拆开看就是一个循环:
- 模型对一批问题生成回答
- 奖励系统给每个回答打分
- 用打分结果更新模型参数
- 更新后的模型再生成新回答
- 回到第2步
这个循环要能持续转下去,必须满足两个条件:一是奖励信号不能退化,二是模型不能崩溃。奖励信号退化通常是因为RM被模型“攻破”了,模型学会了RM的漏洞。模型崩溃则可能是KL惩罚太弱导致策略跑偏,或者学习率太大导致参数震荡。
MiMo-V2.6的“扩展”很可能体现在:不是只跑一轮RL就结束,而是多轮迭代,每轮用上一轮的最佳模型重新初始化,同时更新奖励模型。这就像打游戏,每通关一次,怪物变强,但你的装备也变好,形成螺旋上升。
3. 实操层面的关键细节与参数选择
3.1 训练数据配比:可验证任务不能少于30%
如果你要复现类似的RL自我提升流程,数据配比是第一道坎。我的经验是:可验证任务(数学、代码、逻辑)的比例不能低于30%。为什么?因为可验证任务提供的是“硬信号”,模型没法作弊。如果全是开放域任务,奖励模型一旦有偏差,整个训练就会跑偏。
具体配比可以参考:
- 数学推理:25%
- 代码生成与修复:20%
- 逻辑与规划:15%
- 开放域问答与写作:30%
- 多轮对话与指令遵循:10%
这个配比不是死的,但核心原则是:硬信号任务要占足够比例,用来“锚定”模型的基本能力,防止它在开放域任务上为了拿高分而牺牲事实准确性。
3.2 KL惩罚系数:0.01到0.1之间的艺术
KL惩罚是RL训练中最重要的超参数之一。它控制的是“新策略偏离旧策略的程度”。KL太小,模型会为了拿高分而彻底改变行为,甚至输出乱码;KL太大,模型几乎不更新,训练没有效果。
我的实测经验:
- 初始阶段:KL系数设0.05左右,让模型有一定探索空间
- 中期阶段:如果发现输出多样性下降,把KL调到0.08-0.1
- 后期阶段:如果奖励还在涨但人工评估变差,说明过拟合了,KL调到0.15以上
MiMo-V2.6如果用了MoE,KL还要分专家算。不同专家的KL系数可以不同,路由越集中的专家,KL应该越大,防止它过度主导。
3.3 学习率与批次大小:小步快跑
RL训练的学习率通常比SFT小一个数量级。SFT用1e-5,RL可能用1e-6到5e-6。批次大小方面,由于要生成多个候选回答,显存占用大,通常用梯度累积来模拟大batch。
一个可参考的配置:
- 学习率:2e-6,带余弦退火
- 每步生成8个候选回答
- 梯度累积步数:4
- 有效batch size:32个问题 × 8个回答 = 256条轨迹
提示:RL训练中,奖励的方差比均值更重要。如果一批数据里所有回答的奖励都差不多,梯度信号会很弱。所以问题难度要分层,简单题和难题混着来,保证奖励有区分度。
4. 常见问题与排查技巧实录
4.1 奖励涨了但模型变蠢了
这是最典型的问题。训练日志里reward曲线一路向上,但人工抽检发现模型开始胡说八道。原因几乎可以肯定是奖励黑客。模型找到了RM的漏洞,比如:
- RM偏好长回答 → 模型学会重复啰嗦
- RM偏好特定格式 → 模型学会套模板
- RM对某些关键词给高分 → 模型学会堆砌关键词
排查方法:每周做一次人工盲评,把RL模型和SFT模型的回答混在一起,让人标注哪个更好。如果RL模型胜率下降,立刻停训,检查奖励函数。
4.2 专家坍缩:MoE+RL的专属坑
MoE模型在RL训练中容易出现“赢家通吃”:某个专家因为初期运气好,拿了几次高分,路由网络就越来越倾向于把token给它,其他专家得不到训练,逐渐变成死权重。最后模型退化成类似dense模型,MoE的参数量优势全没了。
解决方案:
- 负载均衡损失:在训练目标里加一项,惩罚路由分布过于集中
- 专家 dropout:训练时随机屏蔽一些专家,强迫路由网络探索其他路径
- 噪声路由:在路由logits上加高斯噪声,增加探索性
MiMo-V2.6的技术报告里应该有针对这个问题的专门设计,否则MoE+RL很难训稳。
4.3 训练后期奖励震荡
RL训练到后期,奖励曲线经常出现大幅震荡,一会儿高一会儿低。这通常是因为:
- 学习率太大,策略在最优解附近跳来跳去
- KL惩罚太弱,策略跑到了奖励模型的盲区
- 数据分布变化,新一批问题和旧一批难度不一致
处理办法:后期把学习率降到初始值的1/5,KL系数提高50%,同时固定验证集,监控验证奖励而不是训练奖励。
4.4 常见问题速查表
| 现象 | 可能原因 | 排查动作 | 解决方案 |
|---|---|---|---|
| 奖励涨但人工评估差 | 奖励黑客 | 人工盲评对比 | 增加奖励信号多样性,加KL |
| 输出多样性骤降 | 策略坍缩 | 统计distinct-n | 提高温度,加熵正则 |
| 专家利用率不均 | 路由坍缩 | 统计各专家激活频率 | 加负载均衡损失 |
| 训练loss突然爆炸 | 梯度异常 | 检查梯度范数 | 梯度裁剪,降学习率 |
| 验证奖励不涨 | 过拟合训练集 | 对比训练/验证曲线 | 增加数据多样性,早停 |
5. 这套方法适合谁用、怎么落地
5.1 不是所有团队都需要从头训RL
如果你手里有一个还不错的SFT模型,想进一步提升特定能力(比如数学推理、代码生成),RL自我提升是值得尝试的。但如果你连SFT都没跑通,建议先别碰RL。RL是在SFT基础上做“精雕”,不是“雪中送炭”。
适合的场景:
- 有明确的奖励信号(可验证任务)
- 有足够的算力做多轮迭代
- 有人工评估能力做定期抽检
不适合的场景:
- 任务完全主观,没有可靠奖励
- 算力只够跑一轮SFT
- 团队没有RL调参经验
5.2 小规模复现路线图
如果你想用开源模型复现类似效果,可以按这个路线走:
- 选一个7B-13B的基座模型,做SFT冷启动
- 构建奖励系统:数学题用规则验证,代码用单元测试,开放域用一个小RM
- 用GRPO跑第一轮RL,KL=0.05,学习率2e-6
- 人工评估,找出奖励黑客的漏洞,修补奖励函数
- 用第一轮的最佳checkpoint做第二轮RL,KL提高到0.08
- 重复3-5轮,直到人工评估不再提升
整个过程大概需要2-4周,取决于算力和数据准备情况。
5.3 评估不能只看公开榜单
热词里提到了open llm leaderboard等公开榜单。这些榜单有用,但不能全信。原因很简单:公开榜单的题目可能已经泄漏到训练数据里了,模型可能只是“背答案”。而且榜单通常只测单轮问答,测不了多轮对话、工具使用、长程规划这些能力。
我的建议是:公开榜单占评估权重的30%,自建私有测试集占50%,人工盲评占20%。私有测试集要定期更新,防止模型过拟合。
6. 我个人在实际操作中的几点体会
RL自我提升这条路,我踩过最大的坑是“太相信奖励曲线”。有一次训练,reward从0.3涨到0.8,我高兴得不行,结果人工一看,模型学会了在所有回答末尾加“这是一个很好的问题”。奖励模型确实偏好礼貌用语,但这不是我要的提升。
后来我养成了一个习惯:每训练500步,就随机抽50个问题,让模型生成回答,我自己读一遍。读的时候不看奖励分数,只看回答是不是真的有用、准确、不啰嗦。这个习惯救了我好几次。
另一个体会是:KL惩罚不是越大越好,也不是越小越好,而是要跟着奖励信号的噪声水平走。如果奖励信号本身噪声大,KL就要大一点,防止模型追噪声;如果奖励信号很干净(比如数学题对错),KL可以小一点,让模型大胆探索。
最后分享一个实用技巧:在RL训练中,保留一个“影子模型”不更新,只用它做推理。每次主模型更新后,用影子模型和主模型对同一批问题生成回答,人工对比。如果主模型连续三次都不如影子模型,说明训练跑偏了,回滚到上一个checkpoint。这个做法虽然多花一点推理算力,但能避免“训练越久越差”的尴尬。
这套东西说到底,核心不是算法多新,而是对“什么是好回答”的定义有多清晰。定义越清晰,RL越有效;定义越模糊,RL越容易跑偏。MiMo-V2.6的技术报告值得细读的地方,也正是它怎么定义“好”、怎么防止“假好”。