AI 自我改进最诱人的地方,是它可能把模型研发变成一个会加速的循环。模型参与生成数据、设计奖励、编写实验并运行训练,再把结果送回下一轮。每转一圈,系统就能尝试更多方案,更快拿到反馈,也可能花更少的钱。
不过,AI 参与研发,离 AI 自己推动下一代模型进步还有一段距离。今天的智能体已经能写代码、跑实验,但研究什么、怎样评分、给多少算力、最后是否接受结果,通常仍由人决定。严格意义上的自我改进要求更高:系统不仅要提升下一代模型的核心能力,还要让这种提升在后续迭代中保留下来。现有公开证据主要支持前一种能力,也就是研发自动化。
过去几年已经有不少公开原型,只是各自接上了不同的一段。Eureka 让大模型编写奖励函数,再用强化学习训练内层策略,但写奖励的外层模型并不会随结果更新。AI Scientist 打通了从想法、实验到论文的流程,负责科研的智能体本身却是静态的。AlphaEvolve 能搜索和优化训练内核,Gemini 自己并不在循环里学习。允许智能体修改代码库的 DGM,同样冻结了基础模型。PostTrainBench 则把自动后训练做成基准测试,结果显示智能体仍明显落后于官方指令微调基线。
Dan Austin 在 2026 年 7 月 14 日发布的 ai-trains-ai v0.1,把这些分散的环节放进了同一个公开项目。它不是第一个 AI 训练 AI 的实验,外部研究者也无法完整重放整个过程。但在一个仓库里,我们同时看到了外层策略如何学习、内层模型如何训练、结果能否迁移、运行中出了什么问题、作者报告了多少成本,以及评估器有没有量对。这个项目因此很适合回答一个更具体的问题:所谓自我改进,究竟在哪些地方已经形成反馈循环,又在哪些地方还依赖人类搭好的轨道。
图
1:自我改进在成果持久性、代码搜索、权重更新和科研自治等层级的划分。
项目代码公开在 GitHub,训练后的外层 LoRA 权重放在 Hugging Face。发起人 Dan Austin 在公开履历中自述为微软首席软件工程师,也是仓库里唯一可见的人类维护者。README 同时写明,Fable 5 编写了项目的每一行代码。Dan 此前做过计算器强化学习任务、TerminalBench 基础设施和多智能体评估框架,这些工作最后汇合到了这个项目里。
外层智能体使用 Qwen3.6。它收到的任务类似“训练一个小模型,让它学会处理多步查询”,但它不直接修改模型权重。它要先交出一份完整的后训练方案,其中包括两类文件:一类定义训练数据、模型可以调用的工具和训练时使用的奖励规则;另一类决定从哪个基础模型开始,以及学习率、训练步数、batch size 等超参数。
这里的基础模型,是内层训练开始前的起点。项目只允许它在 Qwen3-0.6B 和 Qwen3-1.7B 之间选择。选定以后,GPU 才会从这份原始 checkpoint 开始做后训练。因此,“选择 1.7B”不是在两个训练结果中挑赢家,而是在训练开跑之前决定把哪一个模型送进训练流程。
真正执行内层训练的是
prime-rl。它是一套运行强化学习后训练的框架,项目默认已经给好了训练配置。外层智能体也可以在作业里的
[prime_rl]
配置表中修改采样温度、优化器、算法变体、学习率调度和
loss。换句话说,prime-rl
不是另一个被选择的模型,而是负责把这份训练方案实际跑起来的工具。
作业通过预验证后进入 GPU 队列,而且只能训练一次。外层智能体看不到训练结果,也没有机会根据结果回来修改方案。训练结束后,隐藏评估程序用一组未公开题目测试小模型,记录训练后的绝对表现,以及它比最佳未训练基线提高了多少。这两项结果再和验证效率、训练速度合成外层 reward,用来更新智能体的 LoRA。
所以这个实验里有两层学习。内层小模型按照智能体写出的方案接受后训练;外层智能体则根据每份方案最后拿到的 reward,逐渐改变自己以后会写出什么方案。人仍然预先规定了任务类型、评估方式、奖励公式、可选模型、工具链和预算。它更像一个正在学习怎样设计后训练实验的智能体,还不是能够独立决定研究方向的科学家。
图 2:外层智能体生成作业与内层真实训练嵌套构成的反馈回路。
整个外层训练一共进行了 54 步。作者报告的综合 reward 在第 50 步达到最高值 0.627,第 54 步结束时为 0.549。这个 reward 不是 loss,也不是科研能力百分比。它是作者为这个环境设计的训练信号:验证效率占 0.35,内层训练结果占 0.60,训练速度占 0.05。它的绝对值不能和别的项目比较,作用只是让 GRPO 知道哪些训练方案以后应该更常出现。
把综合 reward 分开以后,学习过程出现了两个阶段。早期的变化主要是实验更常跑通。无效提交减少,通过验证并完成 GPU 训练的作业增加,但训练后的小模型并没有明显变好。换句话说,外层智能体先学会了怎样交出一份能执行的训练方案。
后半程才开始出现和模型效果有关的变化。这里有两个容易混淆的指标。训练后得分,是内层小模型完成后训练以后,在隐藏题目上的表现。训练作业质量分,则把这个训练后得分和“相对最佳未训练模型提高了多少”合成到一起。这里的最佳未训练模型,指 0.6B 和 1.7B 在没有接受这次后训练之前,隐藏评测得分较高的那个。按作者的批次聚合口径,作业质量分大约从 0.30 升到 0.41,训练后得分也从约 0.04 的噪声水平进入 0.22 到 0.48 的区间。这才是实验中更接近“训练方案开始产生效果”的定量信号。
这组数字仍要谨慎解释。项目没有公开每次迭代的完整产物,我们无法独立重建每一阶段为什么上涨。训练后得分也只来自项目自己的隐藏合成任务,不代表真实世界里的通用能力。
模型选择的变化,可以帮助我们看见外层策略具体改了什么。早期只有 42%
的训练作业从 Qwen3-1.7B 开始,后期这个比例升到 95%。1.7B
参数更多,通常能力也比 0.6B
强,但训练更慢、成本更高,而且更大并不保证在有限训练预算下获得更大的提升。智能体可以调用
get_baseline_scores
查看两个模型训练前的起始表现,因此这次变化并不深奥:它学会了读取已有信号,把大部分训练预算转向更可能得到高分的起点。这证明外层
reward 的确改变了策略行为,但还不能算研究品味。
[prime_rl] 的使用比例从 21% 升到接近
78%,则说明越来越多的作业不再完全接受默认训练参数,而是主动设置采样温度、优化器、算法变体、学习率调度和
loss。它再次证明训练方案的写法发生了变化,但作者没有做消融实验,无法说明其中哪个配置真正改善了结果。
最后再看没有参与外层训练的任务。项目保留了一个名为 triage 的任务,四个阶段各测试 10 次,平均分依次是 0.399、0.438、0.545 和 0.492。第 34 步明显高于起点,第 54 步又有所回落。这条曲线只支持有限、非单调的迁移:外层策略学到的部分做法可以带到同一类新任务,但现有数据不足以证明稳定而广泛的泛化能力。
图 3:外层综合奖励变化与 triage 保留任务测试的分数走势。
项目的评估器复盘记录了一个很具体的错误。旧版工具使用检测器读取函数名时,寻找的是
.function.name,真实运行对象里却只有
.name。早期单元测试和验证脚本用了另一种数据结构,没有走到这条真实路径。结果,占奖励权重
0.4 的工具使用得分,在早期测试中一次也没有触发。
作者写道,旧版实验里看见的奖励上涨,其实发生在这个测量错误制造的假象中。这不能解释成智能体故意作弊。它说明的是另一件事:只要反馈定义有问题,强化学习仍然可以调出一条不断上涨的奖励曲线。评估器不只是实验结束后的计分工具,它本身就是学习环境的一部分。
发现错误后,作者废弃了旧检查点,重新设计任务和评估标准,并从零开始训练。现在公开的 54 步曲线,来自修复后的重跑。
ai-trains-ai 最有意思的结果不是 reward 达到了
0.627,而是外层强化学习确实改变了一个训练智能体的行为。它先学会减少无效作业,再逐渐改变基础模型与训练配置的选择;内层小模型完成了真实训练,隐藏评估结果也会反过来更新外层策略。在没有参与训练的
triage 任务上,这种变化还出现了有限的迁移。
但这个结论只在项目预先搭好的环境里成立。任务由人选择,reward 由人设计,工具与预算由人提供。外层智能体学会的是怎样在这套规则下写出更高分的训练作业。现有证据还不足以说明它获得了通用的研究品味,更不能说明它已经能够自主设计下一代模型。
以后再看到 AI 自我改进实验,最先应该问的不是 reward 涨了多少,而是三件事:
这三个问题把代理指标、行为变化和真实结果分开。ai-trains-ai
已经把前两步接了起来,也给出了第三步的初步信号。它展示的不是一个已经完成的自我进化系统,而是一次边界清楚、可以继续验证的局部闭环。