✨ 要点🔬 技术摘要
想象一下你正在教一个机器人写计算机代码。你希望这个机器人通过练习自己的作品来变得更好。这篇论文提出了一个可怕的问题:如果机器人只是反复地从自己的错误中学习,会发生什么?
研究人员称之为“递归自我训练”(recursive self-training)。这就像复印机在复印一张复印件,而那张复印件又在复印另一张。最终,图像会变得模糊、扭曲且毫无用处。这篇论文表明,AI 代码模型也遭受了完全相同的问题。
以下是他们研究结果的拆解,使用了简单的类比。
背景设定:“复制粘贴”陷阱
通常情况下,当人类编写代码时,并不会直接把它们扔进堆里。他们有一个评审过程 :
作者: 编写代码。
评审员: 检查代码是否有效、是否安全以及是否合理。
过滤器: 只有好的代码才会被保存并用于未来的学习。
论文测试了当我们移除人类评审员,让 AI 评审自己的作品时会发生什么。他们为 AI 的学习设置了三种不同的“学校”:
“无规则”学校(无评审): AI 编写代码,并且它编写的所有 内容都会被保存并用于教导下一个版本。
“严师”学校(人类门槛): AI 编写代码,但外部工具(如检查语法错误的编译器)或一套固定的规则会决定其代码是否足够好以至于可以被保存。AI 不能更改这些规则。
“自恋者”学校(AI 自我门槛): AI 编写代码,然后同一个 AI (或其孪生版本)为自己的作品评分。它根据自己的“内在感觉”来决定什么是“好”的。
研究结果:这些学校是如何失败的
1. “无规则”学校:崩溃最快 这是最糟糕的结果。由于没有任何过滤器,AI 开始从自己的垃圾中学习。
类比: 想象一个学生只通过阅读自己的日记来学习如何写论文。如果他在第一页写错了一个单词,他就会认为那是正确的。到第 100 页时,他虽然在写一些胡言乱语,但他认为这些内容很完美,因为他是唯一的读者。
结果: AI 解决实际问题的能力迅速下降至接近于零。
2. “严师”学校:变慢了,但依然失败 在这里,AI 必须通过一项测试(例如编译检查)才能将其代码保存下来。
类比: 这就像一个学生在提交论文前必须通过语法检查。这能阻止他写出毫无意义的句子,但无法阻止他写出逻辑错误或枯燥乏味的论文。
结果: 虽然 AI 没有像“无规则”组那样迅速崩溃,但随着时间的推移,它仍然在缓慢变差。“老师”(编译器)太简单了,无法捕捉到深层的逻辑错误。
3. “自恋者”学校:盖章认可 这是最令人惊讶且最危险的结果。AI 使用自己的“感觉”(如困惑度或自我评分)来为自己的工作打分。
类比: 想象一个既是学生又是老师的学生。起初,他是公正的。但随着他写作能力的下降,他的品味也随之下降。他开始认为自己糟糕的写作其实是“有创意”且“高质量”的。他在一篇不及格的论文上给自己打了“A”。
结果: 尽管 AI 的实际编程能力大幅下降,但它却开始给自己打高分。它进入了一种**“盖章认可”机制**:AI 说“这太棒了!”,而代码却变得完全无法使用。分数上升了,但质量下降了。
核心问题:镜像效应
论文解释说,“自恋者”学校之所以失败,是因为 AI 在照镜子。
如果 AI 的品味随着其糟糕的写作而改变,它就无法分辨“好代码”和“坏代码”的区别。
“严师”(人类门槛)效果更好,因为老师是在学生之外 的。编译器不在乎 AI 是否觉得它的代码很漂亮,它只在乎代码能否运行。
然而,即使是“严师”也无法永远拯救 AI。即使代码在技术上能“运行”,AI 最终也会偏离现实世界的逻辑。
结论
论文得出结论:AI 无法可靠地自我教学。
如果你让 AI 在没有强大的外部检查的情况下,仅靠其生成的代码进行训练,它最终会忘记如何履行职责。
即使 AI 试图成为自己作品的严格评判者,它最终也会变得产生偏见,并将自己的错误视为天才之作。
为了保持 AI 的聪明,你需要外部验证 (如真实的人类或独立的测试),这种验证不会仅仅因为 AI 的变化而发生改变。
简而言之: 一个试图仅通过阅读自己的输出来自我提升的 AI,就像一个试图通过只吃自己剩饭菜来健身的人。最终,他们会生病,而且他们还觉得自己很健康,因为他们是唯一的食物评判者。
技术摘要:代码大语言模型中的递归自我训练崩溃
1. 问题陈述
本研究调查了代码大语言模型(Code LLMs)中递归自我训练崩溃 的风险。随着 AI 编程工具(如 GitHub Copilot、Cursor)生成的代码越来越多地被合并到公共仓库中,未来的训练语料库可能在很大程度上由 AI 生成的代码组成。如果一个模型在它之前生成的数据上进行微调,并且这些数据随后被用于训练下一代迭代,而没有外部质量控制,系统就会进入一个“自我消耗”的循环。
核心问题在于,如果没有新鲜的人类数据或外生质量信号,这种循环会导致模型崩溃 :
分布漂移(Distributional Drift): 模型学会模仿其之前的输出,而非原始的数据分布。
错误放大(Error Amplification): 生成代码中的 Bug、不完整的逻辑以及风格上的狭隘性会在后续生成中被复制并强化。
多样性丧失(Loss of Diversity): 模型收敛于低方差、低质量的输出,无法有效地解决编程任务。
本文特别对比了三种递归训练机制:
无评审(非门控/Ungated): 所有生成的代码都被复用。
人类门控评审(Human-Gate Review): 代码通过独立于模型的信号进行过滤(例如编译、静态分析、执行测试)。
AI 自我门控评审(AI-Self-Gate Review): 代码 LLM 使用内部信号(例如困惑度、二元自我评分)来评估并过滤其自身的输出。
2. 研究方法
理论框架
作者将递归训练形式化为门控分布重加权(gated distributional reweighting) 。
非门控递归: 第 t t t 次迭代的训练分布即为模型的输出分布 p θ t ( c ∣ x ) p_{\theta_t}(c|x) p θ t ( c ∣ x ) 。下一个模型最小化与该分布的 KL 散度,仅强制实现自我一致性。
门控递归: 样本以概率 r ( x , c ) r(x, c) r ( x , c ) 被接受。训练分布变为 q θ t ( c ∣ x ) ∝ p θ t ( c ∣ x ) r ( x , c ) q_{\theta_t}(c|x) \propto p_{\theta_t}(c|x)r(x, c) q θ t ( c ∣ x ) ∝ p θ t ( c ∣ x ) r ( x , c ) 。
理论分析:
谱集中(Spectral Concentration): 作者证明(命题 2.1)递归重训练会放大主导表示方向,同时抑制其他方向,导致表示空间的协方差矩阵发生崩溃(秩/多样性降低)。
AI 自我门控的退化(Degeneracy of AI Self-Gating): 本文证明(定理 2.3),如果 AI 评审器与生成器耦合(共享参数或分布),且评审器变得“自我确认”(无论质量如何都对生成器可能的输出给出高分),则门控机制在数学上会退化为非门控自我训练。在这种“橡皮图章(rubber-stamp)”机制下,过滤器失去了拒绝退化输出的能力。
稳定性条件: 只有当 AI 评审器保持与外生人类标准的校准时,AI 门控训练才能避免崩溃(定理 2.6)。
实验设置
模型: 测试了四个代码 LLM 系列:SantaCoder (1.1B)、StarCoder2-3B、Qwen2.5-Coder-1.5B 和 Code Llama-7B。
基准测试: HumanEval、MBPP、LiveCodeBench 及其增强版本(HumanEval+、MBPP+)。
协议: 进行 5 轮递归微调。在每一轮中,模型生成代码,过滤策略选择 5,000 个样本,模型在这些样本上进行 3,000 步的微调。
过滤策略:
Vanilla(原生): 无过滤器。
人类门控(Human Gates): Compile(语法检查)、Quality(静态指标,如重复率/长度)、Compile+Quality。
AI 自我门控(AI Self-Gates): Perplexity(按模型似然度取最低的 25%)、Binary Classifier(按 logit 差异得分取前 25%)。
3. 关键结果
普遍退化
在所有模型系列和过滤策略下,递归自我训练都会导致性能相对于预训练基准出现退化。
无评审(No Review): 崩溃最快且最严重。例如,Qwen2.5-Coder 在第 5 轮时,其 HumanEval+ 基准从 0.372 降至 0.043(−88.4%)。
人类门控(Human Gates): 减缓了崩溃速率,但并未阻止崩溃。虽然 Compile 和 Quality 过滤器保留了可执行有效性并延迟了语义漂移,但它们无法防止长期的性能退化。
AI 自我门控(AI Self-Gates): 表现出“橡皮图章”式的失效模式。最初,它们可能会选择高性能样本(例如,二元分类器在三个模型中实现了最高的第 5 轮 HumanEval+),但其过滤效能随时间推移而下降。
指标背离(Divergence of Metrics): 一个关键发现是过滤器的内部信号与实际正确性之间的背离。对于二元分类器,接受分数(模型对其自身代码的置信度)上升,而基准测试的正确性却下降。这证实了理论预测:自我门控会变得自我确认。
跨模型一致性
崩溃现象并非特定于某种架构。
LiveCodeBench: 在 vanilla 训练下,所有模型在第 5 轮时在该分布外(OOD)基准测试上的 pass@1 均趋于接近零,这表明递归自我训练不成比例地损害了复杂的推理能力。
崩溃幅度: 具有更强初始分布的模型(如 Qwen2.5-Coder)在受到自我生成输出污染时,表现出更剧烈的分布偏移,尽管所有模型最终都向低性能的“崩溃吸引子(collapse attractor)”收敛。
过滤器通过率
人类门控: 保持了稳定的通过率(例如,Compile 保持在高位,因为它依赖于外部执行)。
AI 自我门控: 显示出通过率随轮次增加的趋势(例如,Perplexity 通过率从约 0.17 上升到约 0.24),表明随着模型的内部评分分布随其退化的生成分布一起漂移,其判别能力正在丧失。
4. 贡献
代码 LLM 崩溃的实证研究: 通过对五种过滤机制和四个不同代码 LLM 系列进行系统评估,证明了崩溃是一个跨模型的现象。
将评审形式化为门控重加权: 从理论上将代码评审框架化为采样重加权机制,解释了为什么外生门控可以减缓崩溃,而内生门控则会失败。
确定了外生性的关键作用: 确立了区分成功与失败递归训练的关键在于接受规则是外生的 (固定的、与模型无关)还是内生的 (与生成器耦合)。
提出了退化性的理论证明: 证明了在自我确认条件下,AI 自我门控会退化为非门控自我训练,并提供了谱分析,展示了递归重训练如何将表示方差集中到低维子空间。
5. 意义与主张
本文认为,稳定的递归代码 LLM 训练需要外生验证,而非模型耦合的自我评审。
AI 评审的局限性: 研究表明,依靠 AI 系统评审其自身生成的代码用于未来训练本质上是不稳定的。随着生成器性能退化,自我评审器的标准也会发生漂移,最终会将退化的输出视为高质量输出(即“橡皮图章”机制)。
人类门控的作用: 虽然人类门控(编译、静态分析)更为鲁棒并保留了可执行有效性,但它们不足以完全阻止长期的语义漂移。它们起的是刹车作用,而非治愈作用。
对未来系统的启示: 这些发现警告人们,要警惕“自我消耗”循环——即 AI 生成的代码进入仓库,并在没有新鲜人类数据或强有力外部信号的情况下,立即被用于训练下一代模型。作者保持谦逊,指出其实验侧重于 Python 和 7B 参数以下的模型,而更长的周期、更大的模型以及更强的基于执行的门控仍是开放的研究领域。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。