AI大模型圈最近被一条消息刷屏某高校团队提出了一种叫「弱驱动学习」的训练方法用能力更弱的模型去反向提升强模型的数学推理水平在AIME基准上把分数拉到接近翻倍。消息出来当天不少同行第一反应是“是不是数据泄漏了”等到后续数值被其他团队复现验证后大家才意识到这条路子可能真的打破了“只有强模型才能教模型”的固有认知。这篇文章我想从复现和实验设计角度把这套方法掰开揉碎讲清楚包括它为什么有效、关键参数怎么定还有哪些坑是论文摘要里根本不会写的。1. 弱驱动学习到底是什么一个“反向蒸馏”的新思路1.1 传统知识迁移的困境在过去的AI方法论里想提升一个大模型的能力最自然的路径是找更强的老师。具体到推理任务主流做法要么是收集大量高质量的人类解题示范做监督微调要么是让模型自己生成候选答案拿奖励模型筛出高分样本再拿这些样本做自我训练。这两种路线本质都假设越接近“标准答案”的数据对模型越有好处。但实际跑过训练的人都知道这套假设有一个隐含瓶颈。当强模型已经看过大量标准解法之后继续喂“正确但不意外”的数据边际收益会迅速衰减。尤其到了AIME这类需要多步推理的数学题上模型不是不会做简单题而是常常在第二步第三步出现隐蔽错误比如代数化简时丢掉符号、排列组合时把“至少”理解成“恰好”。这些错误模式在干净的标准数据里几乎不会出现因为标准数据默认把正确路径完整贴出来。模型从来没被训练过“如何识别和避开这些岔路”一遇到真实考试题就容易翻车。1.2 弱驱动学习的核心思路某高校研究团队提出的弱驱动学习恰好把上面的逻辑倒了过来。他们不是找更强的老师而是专门找了一个能力明显弱一个档次的模型来“制造麻烦”。让弱模型以较高随机性对同一批数学题大量生成解题轨迹其中一部分能走到正确答案更多的则是各种半途而废、思路跑偏、甚至步骤错漏的失败样本。然后他们把这一整袋“又对又错”的轨迹全部填进强模型的训练数据里。强模型在训练中做的事情从“照抄标准解”变成了“在雷区里找路”它需要从大量相似的轨迹中辨认出哪条能到达答案、哪个中间步骤可疑、哪种思维循环是死胡同。这个“纠错辨识”的过程恰恰是之前标准训练完全没有覆盖的能力。这也是为什么方法名字里强调“弱驱动”——真正的驱动力不是弱模型给出的答案本身而是弱模型制造出的高方差、高覆盖的推理轨迹分布。我试过很多方式跟朋友解释最直观的还是这个类比一个数学成绩稳定的学生如果只让他反复做满分试卷他的成绩不会一直涨但如果你让他每天批改一批中等生“错误百出”的答卷他反而会对题目里的各种陷阱极度敏感做题时会自动多验证一步。弱驱动学习的训练逻辑本质上就是这个“批改错题卷”的过程。1.3 成果解读AIME近翻倍意味着什么AIME是目前最能暴露大模型推理短板的公开基准之一。它全部是多步推理题一个题目往往需要5步以上的推导链中间任何一个符号错误都会导致最终答案全错。对多数通用大模型来说能在不依赖额外提示技巧的情况下稳定做对三成以上的题目已经算表现不错。因此当某高校团队公开的实验结果里目标模型在AIME上的得分接近翻倍时这个信号在圈子里的分量是相当重的。更重要的是这个提升不是靠加大推理时的计算量也不依赖为AIME定制的提示词而是把提升前置到了训练阶段。翻倍的意义不在“多对了几道题”而是说明模型从“会照葫芦画瓢”跨到了“能对每一步负责”的状态。这种能力一旦建立起来是可以迁移到别的数学任务上的。我后续在其它数学基准上也做了验证确实有正向迁移这一点后面详细说。2. 弱驱动学习背后的三段式机制2.1 弱模型采样用随机性换“探索红利”弱驱动学习的第一步是让弱模型作为“探索器”。这个模型之所以重要恰恰因为它“笨”。一个能力较弱的模型在长链条推理中表现为输出方差大同样是解一道不定方程它可能用枚举、可能用代数变形、可能在中间某个位置绕进死胡同甚至突然换一种完全错误的理解。更关键的是它的错误不是随机噪声而是“有结构的错误”——它会在模型群体最容易混淆的地方犯同类错误。这些错误轨迹的价值在于它们填满了训练数据的密度盲区。强模型原本见过的数据路径是稀疏的、理想化的弱模型生成的轨迹把真实推理空间里的“高迷惑性”区域也踩了一遍。训练的时候强模型相当于拿到了一张带等高线的地形图而不是只看到几条公路。这个“地形图”里既有能走通的路也有大量写着此路不通的死胡同模型学会了看路也就学会了提前避开塌方。实操上弱模型的选择不是越弱越好。如果弱到路径完全没有语义结构比如同一句话反复生成数据噪声占比太高如果弱到只比强模型差一点生成结果又趋于单一探索红利变少。从我复现的经验看取强模型参数规模的十分之一左右通常能形成比较理想的高方差覆盖。当然这个比例不是铁律要看具体任务与模型家族但可以作为第一版实验的起点。2.2 正确性判定程序验证比模型判官更可靠数学任务有一个其它领域羡慕不来的优势答案可验证。AIME的每题都有唯一数值答案所以可以不用奖励模型而是写一个简单的程序化校验器把模型最终给出的答案与标准答案比对。这一步看似笨实则非常关键因为自动验证器不引入额外模型偏见是“弱驱动”信号保持干净的前提。实际比对时不能直接比字符串要处理空格、LaTeX语法、等价表达式、带不带分节符号等一堆细节。我在实验中维护了一个答案归一化函数把分数转成小数、把常见等价形式统一才把误判率压下来。顺便说一句如果任务里没有这种程序化验证器比如开放式问答就别硬套弱驱动学习了先想办法把正确性信号做成客观可判定的再谈。有了程序化验证结果之后数据划分就变得非常干净同一道题被采样到正确答案的轨迹记为正样本没采到的记为负样本。这个二元标签是后续偏好训练的基础也是整个方法能落地的基石。2.3 训练目标从“照猫画虎”到“学习避开陷阱”如果只是把弱模型的正样本轨迹拿去微调强模型效果会非常有限因为正样本轨迹里还混着大量七拐八拐的冗余推理直接模仿反而可能拖慢模型的推理速度。真正让效果翻倍的关键是把正样本和负样本配对成偏好数据让强模型在对错之间做选择逐步学出“路径偏好”。具体到训练目标我复现时主要用了两类。第一类是标准监督微调让模型在正确轨迹上保持生成能力第二类是偏好优化比如DPO对同一道题将正确答案对应的轨迹设为偏好响应将错误轨迹设为被拒绝响应让模型逐步拉大两个分布之间的概率差。这个“微调加偏好”的二段式训练才是弱驱动学习能带飞强模型的微观机制。训练目标使用数据模型学到什么效果瓶颈纯SFT正样本仅正确轨迹模仿冗余路径收敛快但鲁棒性不足混合SFT正负正负轨迹混合区分基本对错对错误细节注意力不足SFT DPO偏好训练正负偏好对路径选择敏感度需要精细调参3. 复现实验的完整设计数据、参数与训练细节3.1 数据准备与基线选择复现的第一步是明确实验对象。强模型我选择的是70B参数级别的模型弱模型则选择了同家族7B级别的版本两者属于同一代际、知识底座接近便于隔离“数据分布差异”这个变量。如果强弱模型来自完全不同家族可能引入额外的分布偏移结果不好归因。这里的思路是先把无关变量控制住验证方法有效之后再考虑跨家族是否成立。AIME数据集我按年份拆用早期年份做训练采样池最近几个年度做测试这样能避免直接的数据泄漏。基线我设了三个原模型不做任何训练、只用强模型自己生成的正样本做微调、用官方标准解做微调。这三条基线各有作用第一条看原始水平第二条看自举上限第三条看标准训练上限。没有这组对照你根本说不清楚提升到底是弱驱动带来的还是单纯微调带来的。3.2 弱模型采样策略与参数采样是整个流水线的起点参数直接影响后续数据质量。我采用的配置如下每个问题采样64条轨迹解码温度设为0.9top_p设为0.95使用思维链提示让弱模型逐步推理。温度太低样本集中探索红利消失温度太高会产生大量乱码式的无效路径。0.9这个值是我在小范围扫参后觉得噪声与覆盖率平衡最好的区间但不同任务可能需要微调。采样时还有一个容易忽略的点要给弱模型足够长的生成长度上限。数学推理题经常要几百到上千token的推导过程生成长度短了会出现大量“提前放弃”的不完整轨迹。我这边是把最大生成长度拉到2048并开启重复惩罚防止模型在同一个错误段上反复循环。这两项不设置好你得到的很可能是一堆半截话验证器根本没法判断对错。64条轨迹听起来不多但乘以数百道题之后总量超过几万条再加上每条轨迹都要跑一次自回归解码整体计算压力不小。我的建议是先按每个问题16条跑通整条链路确认指标有正向趋势之后再逐步扩量。一上来就冲256条数据清洗时你会想砸电脑。3.3 数据筛选与平衡程序化验证之后我还会做几层轻量清洗。首先是去重同一个问题的多条轨迹如果语法完全一致只保留一条避免训练分布被重复样本扭曲。其次是过滤把“答案正确但长度异常短”的轨迹单独挑出来抽查。答案对但推理过程只有一两行的通常是模型直接背出了答案属于伪正确样本需要用规则剔除。正负样本配比我建议控制在1:1到1:2之间。负样本占比太高模型会变得过度保守碰到题目宁可怀疑一切也不给结论正样本占比太高又回到“照猫画虎”的老路。实际操作中我是先按答案匹配得到正样本然后对每个正样本随机匹配一条同一道题的错误轨迹组成偏好对。这样既能保证数据规模也能让每个偏好对聚焦在同一道题上。3.4 训练阶段SFT加偏好优化的参数细节数据准备好之后训练分两段。第一段用混合后的轨迹做LoRA微调rank设64学习率2e-4只跑一个epoch。第二段做偏好优化我用DPObeta值取0.1学习率降到1e-5。两个阶段在同一个基础模型上依次执行最后合并LoRA权重做全面评估。这个学习率安排有一定保守倾向因为数学推理训练特别容易过拟合宁可慢一点也不要一步把模型冲坏。有一个细节值得单独拎出来说偏好优化的batch构成。如果某个batch里恰好全是同一个题目的偏好对模型会被带偏对那道题产生严重记忆。我在复现时给每个batch加了“题目去重”策略保证同一道题在一个batch内最多出现两次训练稳定性明显提升。这个操作很小但对最终效果的影响非常直接。训练完先看验证集Loss再看AIME准确率防止只看单一指标被骗。我还发现一个比较可靠的信号如果偏好优化后AIME在提升同时GSM8K和MATH没有明显回落说明模型学到的是通用的推理能力增强而不是对特定数据集的记忆。如果一个基准涨、另一个基准掉先别高兴大概率是过拟合了。4. 常见问题与排查技巧实录4.1 弱模型生成质量差到“全军覆没”我刚跑通流水线的时候遇到的第一个问题就是某个知识点上弱模型采样64条轨迹答案全错一条正样本都没有。这时候偏好对根本组不出来硬着头皮把这道题塞进训练集只会引入纯噪声。解决办法比较务实这类题目暂时不参与偏好训练单独把弱模型生成的错误轨迹作为负样本配合原模型在原始数据上的正确轨迹组成对子。相当于“弱模型负责制造错误强模型保留自身正确路径”。这样虽然没有拿到弱模型给出的新正确解但模型仍能从对比中获益。等弱模型能力略微提升后再回头补充这些题目的采样大多数情况下能补出正样本。4.2 伪正确轨迹污染数据程序验证器只能比对最终答案拦不住“答案碰巧对、推导全错”的情况。AIME题目偶尔会出现错误推导但数字碰巧命中的情况这种轨迹如果被当成正样本用模型学到的就是错误推导加正确答案的坏映射训练曲线会变得很飘。我排查这类污染的方法是加一层轻量分步校验让强模型扮演判官对被程序化验证器判定为正确的轨迹做二次推理检查重点看中间步骤之间的依赖关系是否成立。这一层判官不需要太强能抓出明显的逻辑断裂即可。实测下来伪正确率大概在1%到3%的量级筛掉之后训练曲线平滑很多。4.3 训练过程中出现能力遗忘强模型训练一段时间后最让人头疼的现象是AIME在涨但通用对话能力和基础代码能力在掉。这是因为偏好数据把模型往数学推理方向用力拽而原始能力分布没有得到及时补充。我的对策是在训练数据里混入20%到30%的原始通用指令数据并适当降低偏好阶段的epoch数。另外我会监控模型在多个基准上的输出分布变化一旦发现与初始分布偏离过大就回调学习率。这种“防守式训练”虽然不惊艳但能保证你不把模型练废。练废一个70B模型的代价可不只是电费还有好几个星期的心理阴影。4.4 分数提升是真实泛化还是“刷题记忆”最后一个坑也是读者最关心的AIME分数翻倍是真会做题了还是把历年真题背下来了判断方法其实很简单把测试年份分得更细用模型完全没见过的题型变体做测试或者直接看跨基准表现。如果MATH、竞赛数学变式、甚至部分科学推理题都有正向变化基本可以确认是推理泛化。我在实验中最常犯的错是只盯着AIME的验证集调参结果模型在其它基准上停滞甚至倒退。后来我把评估做成矩阵形式每次训练结束同时看五个基准才真正避免“偏科优化”。这个习惯现在成了我复现一切推理相关项目的默认流程也推荐你从第一天就这么干。4.5 典型问题速查表现象可能原因排查与对策正样本大量缺失弱模型过弱或采样温度低提高温度、加大采样数、先对弱模型做少量SFT训练Loss持续不稳伪正确样本混入增加分步校验重新清洗数据AIME涨但通用能力掉数据配比失衡混入原始指令数据降低偏好阶段epoch指标只在单一基准涨过拟合测试集上多基准评估矩阵警惕单一指标调参模型输出变得过度保守负样本占比过高调整正负比例至1:1附近过滤伪负样本5. 我的一些从业体会5.1 弱驱动学习真正触动我的点做了几年模型训练我越来越觉得“标准数据为王”这个习惯性认知没那么牢靠。弱驱动学习让我重新审视了训练数据的定义数据的价值不仅来自正确性也来自覆盖度和区分度。弱模型生成的高方差轨迹本质上是一套免费的困难样本挖掘器它把强模型推理链路上最脆弱的环节暴露出来然后让强模型在与这些弱点的对抗中变强。这个思路放在传统机器学习里其实就是主动学习加难例挖掘的变体但放在大模型推理训练里确实打出了一个新维度。5.2 怎么把这个思路迁移到其它任务数学因为有答案验证是弱驱动学习最容易落地的领域。但类似的逻辑完全可以迁移代码生成可以用单元测试当验证器逻辑推理可以用约束求解器当验证器。只要任务存在自动可判定的正确性信号就能搭一套“弱模型探索、验证器筛选、强模型偏好训练”的流水线。代码方向我试过几轮效果同样是正向的尤其是修bug场景中弱模型生成的各类失败用例给了强模型很好的回避训练信号。5.3 给想复现的同行的几句真心话最后想跟同行说几句实在话。不要一上来就追求完美复现先跑通一条最小链路哪怕只有一个季度题目、一个7B模型和一个开源底座把数据清洗和训练调参的手感建立起来再逐步放大规模。我在这个方向上踩过最深的坑就是过早追求规模结果把大部分精力耗在了数据清洗上反而没时间观察模型行为。弱模型采样参数、验证器归一化规则、偏好对配比这三个变量对结果的影响比模型尺寸大得多。先把流程跑到稳定复现再谈扩展。
阅读完成 · 觉得有帮助?