让AI自己教自己,但只教"对的能力"——Self-Policy Distillation:不用外部信号,自蒸馏性能提升16%
一个学生自学,最怕什么?不是学不会,而是把自己犯的错误当成正确答案记住,越学越偏。
大语言模型的自蒸馏(self-distillation)面临完全一样的问题。让模型生成答案,再用这些答案训练自己——听起来很美好,但模型会把自己的错误、风格偏好、格式习惯一起"学进去",就像学生把自己的错题当标准答案背。
剑桥大学的团队提出了一个巧妙的解决方案:Self-Policy Distillation(SPD)——不需要任何外部信号,模型自己就能区分"哪些能力该学,哪些该丢掉"。
自蒸馏的三重困境
先理解现有的自蒸馏方法为什么不够好。想象你是一个模型,要自己生成训练数据来提升自己。你有三条路:
第一条路:用外部信号筛选。 比如用验证器检查代码对不对,用奖励模型打分,用执行反馈判断结果。问题是:这些外部信号很贵,而且对于最强的前沿模型,你可能根本找不到比它更好的"裁判"。
第二条路:不过滤,全盘接受。 直接用所有自生成的输出来训练。简单粗暴,但模型会把自己的错误也强化了——这叫"确认偏差",越训练越固执。
第三条路:SPD——内部筛选,不靠外人。 这是本文的方案,也是唯一同时满足"无需外部信号"和"能力选择性"两个条件的方法。
核心思想:从梯度中提取"能力子空间"
SPD的关键洞察是:模型在做对和做错时,内部激活的模式是不同的。 我们可以从这种差异中提取出"能力"所在的低维子空间。
具体来说,SPD分两步走:
第一步:提取能力子空间。 用一个小校准集(比如几百道题),计算模型在"决定正确性的token"上的梯度。什么是"决定正确性的token"?对于数学题,就是最终答案那几个数字;对于代码题,就是关键输出。然后对这些梯度做SVD(奇异值分解),提取出一个低秩的投影矩阵——这就是"能力子空间"。
第二步:在能力子空间内自生成。 生成训练数据时,把模型的Key-Value激活投影到这个子空间上。这就像给模型戴了一副"能力滤镜"——只有和正确能力相关的信号能通过,风格偏好、格式习惯、常见错误都被过滤掉了。然后用这些"过滤后"的输出来微调模型。
一个关键细节:SPD用的是自策略蒸馏(self-policy),而不是离策略蒸馏。意思是,生成数据的模型和被训练的模型是同一个——不是"旧版模型教新版模型",而是"模型在自己教自己,但只学对的部分"。
实验结果:全面领先
SPD在三个领域进行了测试:代码生成、数学推理、多选QA。五个不同的LLM骨干(从1.5B到14B参数),六个数据集。
- 比最强无外部信号的自蒸馏方法:最高提升13%
- 比预训练基线:最高提升16%
- 跨域泛化:比基线好15%——这是最亮眼的数字
泛化能力为什么这么强?因为SPD提取的"能力子空间"捕捉的是通用的推理能力,而不是特定任务的表面模式。当模型在这个子空间内生成数据时,它自然会产生更通用的推理路径。
一个有趣的发现:投影后的"自我纠正"
研究者发现了一个意外现象:当模型的KV激活被投影到能力子空间后,它生成的输出质量明显提高了——即使没有外部验证,模型也倾向于生成更正确的答案。
这就像一个人在嘈杂的房间里思考,什么想法都冒出来;但如果你给他一个安静的、只保留核心思维的空间,他的想法会变得更清晰。投影操作本质上就是给模型创造了一个"安静的思维空间"。
局限与展望
SPD目前依赖"正确性定义token"的标注——对于数学题和代码题这很容易(答案和输出),但对于开放式任务(如创意写作)就不那么直接了。另外,投影操作会引入少量计算开销,虽然不大,但在超大规模部署时需要考虑。
不过,SPD的哲学意义可能比技术细节更重要:它证明了模型内部已经包含了区分"对"和"错"的信息,我们不需要外部裁判,只需要找到正确的"视角"来提取这些信息。 这对前沿模型的自进化路径有深远影响——当模型足够强,外部信号越来越难获取时,内部自筛选可能是唯一的出路。
论文链接:Self-Policy Distillation via Capability-Selective Subspace Projection
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。