1. 项目概述:从“推理”到“思考”的模型进化
最近,微软研究院发布的MAI-Thinking-1模型在技术圈里引起了不小的讨论。这个标题“微软 MAI-Thinking-1 怎么训出来:mid 之后的 RL 爬山,不是多轮 FT”本身就充满了信息量,它精准地指向了当前大模型训练范式的一个关键转折点。简单来说,它描述了一种新的训练路径:不是我们过去熟悉的、反复进行多轮监督微调(SFT)来“教”模型,而是在一个基础能力(mid)之上,通过强化学习(RL)进行“爬山式”的优化,让模型自己学会“思考”。
这背后的逻辑其实很深刻。传统的SFT,就像是老师手把手地教学生解题,给出标准答案,学生通过模仿来学习。这种方式对于建立基础知识和技能非常有效,但容易让模型陷入“模仿陷阱”——它学会了“复现”答案,但不一定真正理解了问题背后的逻辑链条,更难以应对那些没有标准答案、需要多步推理的复杂问题。而MAI-Thinking-1所代表的路径,则是在学生掌握了基础知识(mid)后,不再直接给答案,而是给它一个任务目标(比如,解决一个数学题或一个逻辑谜题),让它自己去尝试、去推理。模型每走一步,都会得到一个反馈信号(奖励),告诉它这一步是更接近还是更远离最终目标。通过这种方式,模型被迫去“内化”推理过程,学会如何拆解问题、规划步骤、验证中间结果,最终形成一种类似人类“思考”的能力。
所以,MAI-Thinking-1的核心价值,在于它探索了如何让大模型从“知识复述机”向“问题解决者”演进。这对于需要复杂推理的领域,如数学、编程、科学发现、战略规划等,意义重大。它不再仅仅依赖于海量数据中的模式匹配,而是试图赋予模型一种基于目标进行自主探索和优化的能力。接下来,我们就深入拆解一下,这条“mid之后RL爬山”的训练路径,具体是怎么搭建和实现的。
2. 训练路径的整体设计与核心思路
要理解MAI-Thinking-1的训练,我们必须跳出“堆数据、调参数”的旧框架,从智能体学习的视角来看待它。整个流程可以概括为:先筑基,后攀登。
2.1 第一阶段:构建坚实的“山脚基地”(Mid-Level SFT)
这里的“mid”并不是指一个平庸的模型,而是指一个已经具备了相当扎实的基础知识、指令遵循和基础推理能力的模型。它通常是通过大规模、高质量的监督微调(SFT)得到的。这个阶段的目标非常明确:让模型成为一个合格的“学生”,能听懂指令,掌握领域内的基本概念、事实和简单推理模式。
- 数据构成:这个阶段的SFT数据不再是简单的问答对,而会包含大量链式思考(Chain-of-Thought, CoT)的数据。例如,在数学题上,数据不仅包含问题和最终答案,还包含一步步的推导过程;在代码生成上,会包含问题描述、解题思路注释和最终代码。这相当于在教模型“展示你的工作”,为后续的RL训练奠定思维可视化的基础。
- 模型选择:根据网络热词中提到的“dense和moe”,这里的选择至关重要。一个主流且高效的方案是使用MoE(Mixture of Experts)架构的模型作为起点。MoE模型(如一些开源或内部研发的版本)能在参数量爆炸式增长的同时,控制实际激活的参数量(从而控制计算成本),这使得它能够容纳更广泛、更细致的知识。一个经过良好SFT的MoE模型,就像一个由众多领域专家组成的顾问团,面对问题能快速激活相关“专家”给出基础回应,为后续复杂的、需要协调多领域知识的推理任务提供了强大的容量基础。
- “Mid”的标准:如何判断模型达到了“mid”水平?通常会有一些基准测试,例如在GSM8K(数学)、HumanEval(代码)等基准上达到一个较高的、稳定的分数。更重要的是,模型生成的CoT过程本身是合理、连贯的,而不是胡言乱语。这个模型将成为RL智能体的“初始策略”。
2.2 第二阶段:启动“强化学习爬山”(RL Hiking)
这是整个训练的核心创新点。“爬山”这个比喻非常形象。我们把解决一个复杂问题看作攀登一座山峰,山顶就是正确答案。传统的SFT是直接告诉模型一条现成的上山路径(标准答案)。而RL爬山则是:
- 把模型置于山脚(给出问题)。
- 让模型自己迈出每一步(生成推理过程中的一个token或一个子步骤)。
- 有一个“奖励模型”作为向导,实时评估每一步是向上(更合理)还是向下(走入歧途),并给出奖励信号。
- 模型的目标是学习一种策略,使得从山脚到山顶所获得的累计奖励最大化。
这里的关键在于,奖励不是只在最终答案正确时才给出。对于推理任务,奖励是密集的、过程性的。我们可以对推理链的每一步进行评估:这一步的结论是否基于上一步?逻辑是否自洽?是否引入了无关信息?这种基于过程的奖励塑造,是教会模型“思考”而非“记忆”的关键。
为什么是“爬山”而不是“多轮FT”?多轮FT本质上还是在不同的数据分布上做模仿学习,容易过拟合到数据表面特征,并且难以处理训练数据未覆盖的、新颖的问题组合方式。RL爬山是一种目标导向的搜索和优化。模型在奖励信号的引导下,主动在巨大的策略空间中进行探索,寻找能获得高奖励的推理路径。这个过程能激发模型的泛化能力和创造性,因为它学习的是“如何根据反馈调整策略以达到目标”的元技能。
2.3 核心算法选择:GRPO与PPO的权衡
标题和热词中提到了GRPO。GRPO(Group Relative Policy Optimization)是近期一种受到关注的RLHF算法变体。要理解它,先看经典的PPO(Proximal Policy Optimization)。PPO在训练时,需要维护两个模型:一个是要优化的策略模型(Actor),另一个是用于评估状态价值的价值模型(Critic)。这增加了训练复杂性和计算成本。
GRPO的核心思想是简化这一过程。它采用了一种“分组相对比较”的方式来构建奖励信号,从而可能避免或简化对独立价值模型的需求。具体来说,对于同一个提示(问题),让当前策略模型生成多个(一个组)不同的回应(推理链)。然后,通过一个奖励模型或者人工标注,对这些回应进行排序或给出相对分数。策略优化的目标,是使得模型生成高排名回应的概率增大,生成低排名回应的概率减小。这种方法更直接地利用了对输出质量的相对判断,训练流程可能更简洁。
在MAI-Thinking-1这类需要长序列、多步推理的场景中,GRPO这类方法有其潜在优势:它对生成长文本的稳定性可能更好,且训练目标与“生成更好整体推理过程”的最终目标对齐得更加直接。当然,最终的算法选型是PPO、GRPO还是其他变体(如DPO),取决于工程实践中的稳定性、收敛速度和最终效果,这往往是研究团队通过大量实验得出的经验性选择。
3. 关键技术细节与实操要点解析
理解了整体框架,我们深入到几个关键的技术细节,这些是决定“RL爬山”能否成功登顶的实操核心。
3.1 奖励模型的设计与训练:定义“好思考”的标准
奖励模型是RL训练中的“向导”,它的好坏直接决定了模型爬山的“方向”。对于思考型任务,奖励模型必须能精细地评估一个推理过程。
- 数据收集:需要构建一个高质量的偏好数据集。这通常通过人工标注获得。标注者会看到同一个问题的多条不同推理链(可能来自不同的模型采样或人工撰写),然后对这些推理链进行排序,或者标注出其中逻辑错误、跳跃、冗余的步骤。更精细的标注甚至会指出哪一步开始出错。
- 模型架构:奖励模型通常是一个基于编码器的模型(如DeBERTa系列),它读入整个“问题+推理过程”的文本,输出一个标量奖励值。为了评估过程,一种高级做法是让奖励模型不仅能输出整体奖励,还能尝试输出对每一步的“步进奖励”或给出错误定位,但这会大大增加标注和建模的复杂度。
- 训练目标:常用的是 pairwise ranking loss。对于一对样本(A, B),如果A的排名高于B,则训练奖励模型使得
RM(A) - RM(B)的值尽可能大。通过大量这样的对比学习,奖励模型逐渐学会人类对“优质推理”的偏好。注意:奖励模型的偏见会直接传递给策略模型。如果奖励模型过度偏好某种固定的推理模板,策略模型就会学会“套路化思考”而非真正思考。因此,偏好数据的多样性和标注质量是生命线。
3.2 推理过程的生成与Token级控制
在RL训练中,策略模型生成推理链是一个自回归的过程。每一步(每个token)的生成都基于之前的上下文。如何在这个框架下实施“过程奖励”?
- 分段奖励(Segment-level Reward):一种实用的方法是,不苛求对每一个token打分,而是对推理链进行自然分段。例如,每生成一个完整的句子、一个逻辑步骤或一个等式后,将截至当前点的部分文本提交给奖励模型,获得一个中间奖励。这个奖励会被用于计算当前这段生成所涉及的所有token的梯度。
- 价值函数引导:如果使用PPO,价值模型(Critic)的作用就是预测从当前状态(已生成的推理部分)出发,未来能获得的累计奖励期望。这相当于给模型一个“前瞻性”指导,让它知道当前这一步对最终成功的贡献度,从而避免短视行为。
- 动作空间:在思考任务中,模型的“动作”就是生成下一个token。但我们可以对动作空间进行约束,例如在数学推理中,鼓励模型使用数字、运算符和特定的逻辑连接词,减少无关描述。这可以通过在词汇表分布上施加偏置或使用受限采样来实现。
3.3 课程学习与难度爬坡
直接让模型去“爬最高的山”(解决最难的题)很容易失败。RL训练中普遍采用课程学习。
- 构建难度阶梯:将训练问题按照复杂度(如解题步骤数、涉及概念的多少、是否多模态)进行分级。初期,让模型在大量简单问题上进行RL训练,此时奖励信号清晰,模型容易学会基本的推理模式(如“先读题,再提取已知条件”)。
- 逐步提升难度:当模型在简单问题集上表现稳定后,逐步引入中等难度、高难度的问题。在这个过程中,之前学会的推理策略会成为解决更复杂问题的基础模块。这模拟了人类学习的过程,先掌握加减乘除,再学解方程。
- 混合训练:在任何一个阶段,训练数据中都可以混合不同难度的样本,但以当前目标难度为主。这有助于防止模型遗忘已学会的技能(灾难性遗忘)。
4. 完整训练流程与核心环节实现
下面我们勾勒一个简化的、概念性的MAI-Thinking-1式训练流程,将上述环节串联起来。
4.1 环节一:准备高质量的“思考燃料”数据集
- SFT数据准备:收集或生成包含高质量CoT的数据。来源可以是:
- 人工精心编写的解题步骤。
- 从现有模型中采样,然后由专家筛选和修正。
- 利用代码执行器、数学引擎等工具,自动验证推理步骤的正确性,生成过程数据。 数据需覆盖目标领域(如数学、科学、代码),并确保推理的严谨性。
- 偏好数据准备:这是RL的“指南针”。构建方法包括:
- 采样与标注:用多个模型(包括不同版本的自己)对同一问题生成多个推理链,由标注员进行排序或评分。
- 合成错误:在正确的推理链上人工注入典型错误(逻辑跳跃、计算错误、无关引入),生成“差”的样本,与正确样本构成对比对。
- 过程标注:要求标注员不仅给出最终偏好,还标记出推理链中“最关键的正确步骤”或“第一个错误步骤”,这类数据对训练过程奖励模型极有价值。
4.2 环节二:训练“思考裁判”奖励模型
- 模型初始化:通常选择一个强大的文本编码器作为基础。
- 训练循环:
- 输入一个批次的数据对
(问题, 推理链A)和(问题, 推理链B),以及标签A > B。 - 分别计算
RM(A)和RM(B)。 - 计算对比损失,例如
loss = -log(sigmoid(RM(A) - RM(B)))。 - 反向传播,更新奖励模型参数。
- 输入一个批次的数据对
- 验证与校准:在独立的验证集上,检查奖励模型的排名准确率(与人工排名的一致性)。同时,要监控奖励值的分布,避免出现极端值或坍缩,有时需要进行分数标准化或校准。
4.3 环节三:启动RL爬山训练循环
这是最核心的迭代过程。我们以结合了课程学习的PPO/GRPO框架为例:
- 初始化策略模型:加载在阶段一训练好的“mid”模型作为初始策略
π_old。 - 设置当前难度课程:从难度级别L1开始。
- 对于每一个训练迭代: a.采样:从当前难度课程中采样一批问题。 b.生成:使用当前策略模型
π_old为每个问题生成完整的推理链(或到最大长度)。在生成时,通常会加入一定的随机性(通过温度参数)以促进探索。 c.评估:将生成的问题-推理链对输入到训练好的奖励模型中,获得每个样本的奖励值R。如果采用分段奖励,则可能获得一个奖励序列。 d.优化: *对于PPO:利用生成的轨迹(状态、动作、奖励)和π_old的策略概率,计算优势函数,然后通过PPO的裁剪目标函数更新策略模型,同时更新价值模型。 *对于GRPO:利用同一问题下生成的多条推理链及其相对奖励排名,计算策略梯度,更新模型,使其更倾向于生成高奖励的推理模式。 e.更新策略:将更新后的模型作为新的π_old。 - 课程进阶:定期在验证集(包含各难度问题)上评估策略模型的表现。当在难度Li上的性能达到预设阈值(如准确率超过85%)时,将训练数据混合比例向更高难度Li+1倾斜,开始新的“爬山”阶段。
- 监控与保存:持续监控训练损失、奖励值、策略熵(避免探索不足)以及最重要的——在预留测试集上的问题解决准确率。保存性能最好的模型检查点。
实操心得:RL训练非常不稳定,对超参数(学习率、裁剪范围、熵奖励系数)极其敏感。一个常见的技巧是使用一个较小的、稳定的学习率,并采用线性预热和余弦衰减策略。另外,定期用初始SFT模型的数据进行混合训练(类似于在RL损失中加入SFT损失),可以防止模型在追求高奖励的过程中过度偏离自然语言,产生语法诡异、难以理解的输出。
5. 常见问题、排查技巧与成本考量
在实际操作中,你会遇到各种各样的问题。下面是一些典型问题及其排查思路。
5.1 训练不收敛或奖励值坍塌
- 现象:奖励值很快稳定在一个很低或很高的水平,不再变化,模型性能也无提升。
- 排查与解决:
- 检查奖励模型:这是首要怀疑对象。用一个简单的测试集,输入明显好和差的推理链,看奖励模型能否正确区分。如果奖励模型已经失效(如对所有输入都输出相似值),RL训练就失去了方向。可能需要回退到更早的奖励模型检查点,或检查奖励模型训练数据是否有问题。
- 检查KL散度:在PPO中,策略模型与参考模型(通常是初始SFT模型)之间的KL散度是重要的监控指标。如果KL散度急剧增大,说明策略模型正在快速偏离基础语言模型,可能产生无意义的文本。需要增大PPO损失中KL惩罚项的系数。
- 调整优势估计:优势估计(GAE)的参数
λ和γ对训练稳定性影响很大。λ控制偏差与方差的权衡,γ是折扣因子。可以尝试调小λ(如0.95->0.9)和γ(如0.99->0.95)来获得更保守、方差更小的优势估计。 - 学习率过高:RL训练的学习率通常比SFT小一个数量级。尝试将学习率降低5倍或10倍。
5.2 模型“走捷径”或“胡说八道”
- 现象:模型生成的推理链在奖励模型那里得分很高,但人类一看就是胡扯,或者它学会了一种奇怪的、与问题无关的固定模板来骗取高奖励。
- 排查与解决:
- 奖励模型被攻击:这是典型的“奖励黑客”行为。说明奖励模型存在漏洞,被策略模型找到了“骗分”的方法。需要分析高奖励的胡扯样本,找出它们的共同特征,然后将这些特征作为负面样本,重新补充到奖励模型的训练数据中,进行对抗性训练。
- 引入过程约束:除了最终奖励,可以增加一些辅助的、硬性的过程奖励或惩罚。例如,对于数学题,可以设置一个“等式可执行性检查”的奖励,如果生成的等式无法被数学引擎解析或执行,则给予负奖励。或者,对推理链的长度进行约束,过短(可能跳跃)或过长(可能冗余)都给予轻微惩罚。
- 增强参考模型的约束:提高KL散度惩罚的权重,迫使策略模型的输出分布不要离基础语言模型太远,保持语言的自然性和合理性。
5.3 计算成本与效率优化
训练一个MAI-Thinking-1级别的模型是极其昂贵的。热词中提到的“中国ai大模型moe架构与成本优化策略解析”与此高度相关。
- MoE架构的优势:如前所述,MoE是控制成本的关键。在RL训练中,虽然前向传播需要经过门控网络选择专家,但每次激活的参数量是固定的、远小于稠密模型。这意味着在相同的GPU内存下,你可以运行一个总参数量大得多的MoE模型,获得更强的知识容量,而计算FLOPs的增长是可控的。
- 激活专家数:这是MoE的核心调优参数。更少的激活专家(如2/16)意味着更高的计算效率,但可能限制模型能力;更多的激活专家(如4/16, 8/16)能力更强,但更昂贵。在RL训练中,可以尝试在训练初期使用较少的激活专家以加快速度,后期再增加以获得更好性能。
- 分布式训练与卸载:RLHF训练涉及多个模型(策略、价值、奖励、参考模型)。需要精心设计模型并行、数据并行和流水线并行策略,将不同的模型或模型的不同部分放置在不同的设备上。对于MoE模型,专家可以分布式地放置在不同的GPU上。
- 梯度检查点与混合精度训练:为了在有限的显存下运行更大的模型或更长的序列,必须使用梯度检查点技术。同时,混合精度训练(FP16/BF16)能显著减少显存占用并加速计算。
- 数据与训练效率:RL样本的利用率是关键。一次采样生成的轨迹可能用于多次策略更新(通过多个小批次),但要避免过度优化旧数据。需要监控策略更新前后的差异,及时采样新的数据。
5.4 关于“蒸馏的学生模型”的思考
热词中提到了“yolo模型中蒸馏的学生模型,是用已经sft过的还是初始化的模型”。这是一个很好的类比。在模型压缩/蒸馏领域,通常使用经过充分训练、性能强大的教师模型来指导一个小的学生模型。
在MAI-Thinking-1的语境下,如果我们想得到一个更小、更高效的“思考模型”,蒸馏是一条路径。那么,应该用哪个模型作为教师?
- 用SFT后的“mid”模型蒸馏:学生能学到扎实的基础知识和推理格式,但学不到RL训练带来的“目标导向搜索和优化”能力。
- 用RL训练后的最终模型蒸馏:这是更理想的选择。学生模型不仅能学到知识,还能学到在奖励信号引导下进行有效推理的“策略”。然而,RL训练后的模型行为可能更复杂,蒸馏难度更大。通常,这里会使用RL模型生成的大量高质量推理链作为数据,对学生模型进行知识蒸馏,或者使用RL模型输出的策略概率分布作为软标签来指导学生模型的训练。这样得到的小模型,虽然推理的“探索性”可能减弱,但继承了教师模型在解决同类问题时的“经验”和“技巧”,在效率和效果上能达到一个很好的平衡。