资讯详情

当模型学会了三门武艺,却在互相拆招

📅 2026/10/23 23:04:20 | 华诺云谱 👁 阅读
当模型学会了三门武艺,却在互相拆招
先说一件挺反常识的事。你可能觉得让一个AI模型同时学会数学、编程和逻辑推理应该是技能越多越强就像一个人多学几门手艺不会互相打架。但事实恰恰相反当研究者试图用多个老师模型同时教一个学生模型三种能力时学生往往学了这个、忘了那个某个能力刚练上去另一个能力就掉下来了。这种现象有个挺形象的名字叫能力跷跷板。这背后藏着一个正在被越来越多公司使用的技术叫多教师同策略蒸馏。多教师同策略蒸馏MOPD*先用强化学习分别训练出数学、编程、推理三个专家模型作为老师再让一个共享的学生模型去学习这些老师的行为最终得到一个同时具备多种能力的模型省去了部署多个专家模型分别调用的麻烦。这套思路听起来很美好一个模型顶三个专家用省钱省算力。但问题来了三个老师同时给一个学生的大脑也就是模型参数打补丁谁的补丁会盖掉谁的这篇来自蚂蚁集团团队的论文,就是冲着这个问题去的。核心问题参数是共享的方向却各不相同要理解这个矹尬的处境得先明白一件事语言模型的知识存在参数矩阵里学数学也好、学编程也好本质上都是在调整这些参数。同策略蒸馏OPD*不同于传统蒸馏简单模仿老师的输出分布OPD让学生自己先生成一段回答再让老师针对学生实际走过的这段路径给出逐字打分这样能减少训练和实际使用时的不一致。问题的关键在于数学老师想往一个方向调参数编程老师想往另一个方向调推理老师又想往第三个方向调。论文里做了个特别直观的实验在同一个模型检查点上画出数学、编程、推理三个任务各自最想要的更新方向结果这三个箭头几乎指向完全不同的地方。这就好比三个室友合租一套房子每个人都想按自己的喜好重新装修客厅。数学老师想把墙刷成蓝色编程老师想装书架推理老师想挪沙发。如果不做任何协调直接三个人轮流按自己的想法动手,最后客厅可能谁的风格都不完整,蓝墙被书架挡住一半沙发挪歪了还占了刷墙的地方。如果只按时间顺序轮流装修却互不沟通,最后的结果就是普通的多任务混合训练:每个人都干了活但成果互相抵消谁也没达到自己想要的效果。论文里测的普通MOPD方法正是这样,训练轨迹在三个任务的联合损失地形图上来回震荡,没能稳定地往低损失的方向走。那有没有办法既让三个人都装修,又不互相拆对方的活?论文给出的答案很巧妙先搞清楚每个人的改动痕迹主要集中在哪个区域然后后面的人动手时绕开已经装修好的那块地方就行。这就是PMOPD的核心思路。PMOPD到底做了什么把参数更新的痕迹记下来绕着走论文首先发现了一个关键的几何规律模型在学习某个任务的过程中参数的累积变化会迅速collapse到一个低维的子空间里,而且这个子空间在训练早期就基本稳定了。低维子空间*想象参数空间是一个几百万维的巨大房间但某个任务真正用到的改动方向可能只集中在其中十几个维度上这十几个维度构成的小范围就是子空间。论文用具体数字验证了这一点只训练了20%的数据量后提取出的子空间,跟训练结束后的最终子空间,平均相似度已经达到0.62。这说明一个任务真正在意的参数改动方向,很早就定型了,后面大部分时间只是在这个方向上继续深挖,而不是到处乱跑。更有意思的是不同任务之间子空间的重叠程度。论文测出数学、编程、推理三个任务两两之间的子空间相似度,只有0.133到0.151之间,几乎互不相关。这个数字意味着什么意味着三个任务真正需要调整的参数方向,大部分是彼此独立的,只有一小部分会打架。这就给了研究者一个思路不需要把整个参数空间都锁死,只需要精确识别出那一小块会打架的区域,然后在训练后面的任务时,把这块区域的更新量给扣掉。具体怎么扣论文设计了一套流程。先用截断的奇异值分解一种从一大堆数据里挑出最重要的几个方向的数学方法从每个任务训练完之后的参数变化量里,提取出top-16个最重要的方向,组成一个记忆库。学习下一个任务时,先算出普通的梯度模型往哪个方向调整参数的原始信号,再把这个梯度里跟记忆库方向重合的部分砍掉,只留下跟记忆库垂直的部分去更新参数。这里有一个特别值得展开的细节为什么不能只处理梯度还要处理优化器更新的结果这涉及到一个叫Adafactor的优化器。Adafactor*一种节省显存的自适应学习率优化算法,它会对参数的每个维度分别调整学习步子的大小,常用于训练大规模语言模型。问题在于,Adafactor这类自适应优化器会对梯度的每个元素做独立的缩放。原本已经被扣掉打架方向的梯度,经过这么一缩放,方向又可能被悄悄转回到之前被禁止的那个区域里。这就好比你精心把客厅里跟别人装修方案冲突的部分标记出来不去动,但工人在实际施工时,因为工具的角度问题,手一抖又碰到了那个区域。如果不做二次检查,前面的标记就白费了。所以PMOPD在梯度投影之后还要对Adafactor算出来的实际更新量再做一次投影,确保最终真正写入参数的改动,依然跟记忆库保持垂直。这套双重投影的设计,让论文的消融实验结果很清楚地呈现出来。在Qwen2.5-7B上,完全不做投影时三个任务的平均分是63.85,只做梯度投影能提到66.22尤其是推理和编程任务提升明显再加上优化器更新投影后进一步提高到66.97。两步加起来比不做任何投影高出3.12分。任务顺序也有讲究谁先谁后是有科学道理的光有投影机制还不够,论文还发现了一个容易被忽略的问题三个任务的学习顺序会显著影响最终效果。三个任务排列组合一共有六种顺序,论文全部跑了一遍做对比。结果显示编程→推理→数学这个顺序拿到了最高平均分65.81,而推理→数学→编程只有62.84,两者差了将近3分。为什么顺序会有这么大影响这跟PMOPD的保护机制本身有关。一旦某个任务的更新方向被写进了记忆库,后面所有任务的梯度都要在这个方向上让路。如果先保护的任务本身跟其他任务冲突特别大,后面的任务就要被迫让出更多空间,腾挪的代价就更高。反过来如果先写进记忆库的任务跟别的任务冲突比较小,后面任务需要绕开的区域就少,训练效率自然更高。这就像团队开会排议程。如果先讨论一个跟所有议题都密切相关、容易引发争议的话题,后面讨论其他议题时,大家会一直惦记着刚才那个话题定下的框框,反而束手束脚。但如果先讨论一个相对独立、不太会波及别的议题的话题,把它定下来后,后面讨论者能腾出的空间就更大,整体效率更高。如果不管顺序随便排,议程效率就完全靠运气。为了不用每次都跑六种排列组合去试(这在任务更多时会指数级增长),论文设计了一个轻量级的探针方法提前算出每个任务跟其他任务的平均无向冲突分数,分数低的排在前面。用这套探针,论文只用60个样本一折,跑了十折测试,结果全部十折都一致地测出编程的冲突分数最低(28.04%)推理次之(35.75%)数学最高(36.97%)排序结果跟穷举试出来的最优顺序完全吻合。这说明不用真的跑完整训练,提前用小样本探一探,就能大致判断出该按什么顺序训练。循环次数既要让子空间站得住,又不能拖太久才回头看除了任务顺序,论文还发现了另一个隐藏的调参维度训练要分成几个循环来做。所谓循环,就是把编程→推理→数学这个顺序当作一轮,重复跑几轮。论文测试了1、2、4、5、8、10轮不同的循环次数,固定总训练数据量不变。结果出现了一个不是线性的规律平均分从1轮的65.81,涨到4轮的66.97达到最高点,然后再往上加到10轮反而跌到65.37。这个非单调的现象要怎么解释?论文引入了另一个诊断指标叫子空间一致性就是比较同一个任务在不同轮次里提取出来的子空间到底像不像。测出来的规律跟平均分几乎完全同步2轮时一致性0.487,4轮时飙到最高0.525,之后一路下滑到10轮的0.424。这背后藏着一个两头受限的权衡。如果循环次数太多,每个任务分到的训练数据块就变短,累积的参数变化量还没稳定就被切断去做下一个任务了,提取出来的子空间自然不够可靠。但如果循环次数太少,每个任务连续训练的时间段拉得太长同一个任务反复学习时,模型自身的轨迹会漂移得比较远,前后两次估计出来的子空间也会出现偏差。这就像写日记的频率选择。天天写一句流水账,内容太碎,回头看根本看不出这段时间自己经历了什么有意义的变化。但如果一年才写一次,中间发生的事情太多太杂,写出来的东西也很难抓住重点,记忆已经模糊变形。四五天写一次可能刚好,既有足够的内容沉淀出规律,又不会因为拖得太久而失真。四轮循环刚好踩在这个平衡点上短到足够及时回顾各个任务,长到足够让每次的子空间估计站得住脚。实验结果全面开花,不是拆东墙补西墙论文在两个不同的模型家族上验证了这套方法Qwen2.5-7B和Llama-3.1-8B。在Qwen2.5-7B上普通MOPD方法能拿到平均64.43分而PMOPD拿到66.97分涨了2.54分。更关键的是这个涨分不是靠某一项暴涨、另一项掉分换来的,数学、推理、编程三项全都涨了分别涨了2.22、1.72、3.67分。在Llama-3.1-8B上同样的趋势重复出现PMOPD平均41.04分比普通MOPD的38.95分高出2.09分三项能力也全部提升。论文还对比了另外几种方法包括简单的参数平均合并、按批次混合任务数据的变体、以及另一篇同期工作Open-MOPD提出的能力平衡方法。这些方法里表现最好的批次混合变体也只能拿到64.83分跟PMOPD的66.97分还有2.14分的差距。这说明单纯靠调整数据混合顺序或比例,是没办法真正解决任务之间的方向性冲突的,得靠精确识别并绕开冲突方向的几何手段才行。写在后面读到这篇论文时,让我印象最深的其实不是最终的分数提升,而是那张三任务箭头图。看到数学、编程、推理三个任务在同一个检查点上指向几乎完全不同的方向,我才真正理解为什么多任务学习就是简单叠加这个直觉是错的。这三个箭头不是稍微偏一点,而是方向性上几乎没什么关联,这解释了为什么简单混合数据训练效果总是不稳定,不是数据配比没调好是根本没处理方向冲突这件事。另一个让我觉得挺妙的细节是关于Adafactor优化器那个梯度被投影后又被转回去的问题。这提醒我一件更普遍的事在深度学习系统里任何一个环节的聪明优化都可能悄悄破坏另一个环节做的保护措施。自适应学习率本来是件好事能让训练更快更稳但它跟子空间保护机制放在一起时反而成了漏洞。这种跨模块的隐性副作用恐怕在很多复杂系统设计里都值得多想一层。论文里那个用60个样本就能预测任务冲突排序的轻量探针也让我想起做产品决策时常见的困境想知道一个方案好不好得先跑一遍完整流程才知道成本太高。这篇论文示范了一种思路用一个便宜的代理指标去提前预判虽然不完美但至少能避免盲目试错。这个思路或许能用在很多别的场景里先想清楚有没有一个成本更低、信号方向差不多的替代测量。还没解决的问题是这套方法目前只测了三个任务如果任务数量增加到十个二十个任务之间的排列组合会指数级爆炸那个轻量探针能不能扛得住这种规模论文里没有给出答案。QAQ1PMOPD是什么APMOPD是一种改进的多教师同策略蒸馏方法通过记录不同任务在参数空间中的更新方向并在训练新任务时把梯度和优化器更新中跟已保护方向冲突的部分去除从而减少多任务训练中的能力跷跷板现象。Q2PMOPD相比普通MOPD效果提升有多少A在Qwen2.5-7B上平均分提升2.54分在Llama-3.1-8B上提升2.09分而且数学、编程、推理三项能力全部同步提升不存在拆东墙补西墙的情况。Q3为什么多教师蒸馏训练中会出现能力跷跷板A因为不同任务在共享参数空间中偏好的更新方向差异很大论文测得数学、编程、推理三任务的更新子空间相似度只有0.13到0.15左右几乎互不相关改进一个任务容易覆盖或干扰另一个任务已学到的能力。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑