← 返回 2026-05-08

用专家智能体实现自动研究:开发有效且非平凡的训练配方 Auto Research with Specialist Agents Develops Effective and Non-Trivial Training Recipes

Jingjie Ning, Xiaochuan Li, Ji Zeng, Hao Kang, Chenyan Xiong 📅 2026-05-07 👍 16 2026-07-13 08:36
Agent AutoML Closed-loop LLM Training Recipe

多专家Agent闭环迭代,实测改进三套公开训练配方。

前置知识

训练配方 (Training Recipe)

指训练一个神经网络所需的完整配置集合,包括架构、数据配比、优化器、学习率调度、损失函数、正则化、量化以及推理/系统实现等。配方的修改空间巨大,涉及诸多相互耦合的子模块。

本文把整个Python训练管线当作编辑对象,而不是只调几个超参数,读者必须先理解训练配方是多面、可代码化、可被外部评估的实体。

外部评估器 (External Evaluator)

由任务环境拥有、不可被编辑代码改写的打分/计时/合法性检查模块。它决定一次提交trial是否合法、得多少分、是否超时,以防止reward hacking(例如打印伪造分数或自报时间)。

本文整个闭环成立的前提就是评估器由环境持有、配方不能改写,这是与一锤子LLM生成研究代码的根本区别。

Lineage(共享血统记录)

跨多个trial积累的提案、代码diff、分数、状态、运行时长、崩溃原因等结构化日志,作为下一次提案Agent的prompt上下文。Lineage让后续Agent能够基于已观测事实而不是凭空猜测继续做研究。

论文核心消融(no-lineage)证明共享血统是把失败转成下一轮编辑的关键机制,理解Lineage是看懂实验设计的前提。

角色分工 (Specialist Roles)

把可编辑的训练配方表面按子模块划分给不同的LLM Agent,例如架构、优化、数据、调度、系统等,各角色拿到相同指标但不同的recipe-surface prompt,从而覆盖更广的提案空间。

这是论文对抗'单点反复拧同一颗螺丝'的设计,与generic多Agent对比实验直接对应。

研究动机

现有的自动机器学习研究(MLAgentBench、MLGym-Bench、AI Scientist等)大多把'Auto Research'当成一次性的LLM生成结果:Agent写一段训练代码、跑一次、报个分数、然后就停了。这种模式有三个具体痛点:第一,改进往往来自超参数微调而不是程序级修改,MLGym-Bench已经观察到这一点;第二,失败(崩溃、超时、撞规模上限、没过精度门槛)被当作废件丢弃,而不是当作下一轮编辑的反馈;第三,Agent无法在多次提交间积累可审计的轨迹,人类难以复核究竟改了什么、为什么有效。作者在Parameter Golf上看到一种典型场景:某个z-loss想法能把验证bpb从1.0810降到1.072431,但产物超过16 MB的artifact cap而被拒,这种'既有用又超规格'的反馈在单轮系统里彻底浪费。

本文的目标是把Auto Research重新定义成一个可审计的闭环实证轨迹:外部评估器负责打分与合法性检查,一组专家Agent在共享lineage的引导下反复提交trial,把成功与失败一起当成下一次代码编辑的依据,人只在setup阶段介入,搜索过程中不挑proposal、不改recipe、不override分数、不修复失败run。最终目标是在Parameter Golf、NanoChat-D12、CIFAR-10 Airbench96三个公开的、计算受限的训练任务上,用同一个闭环自动提升固定起点配方,跑出真实的、可复现的训练产物。

与已有工作不同的是,本文切入角度有三层独特性:第一,研究对象从'生成一篇论文或一个checkpoint'换成'一段可审计的proposal→diff→score→feedback轨迹',并把这条轨迹本身作为发布物;第二,反馈通道显式包含crash、size-block、budget overrun、accuracy-gate miss四类失败信号,并证明这些信号能让Agent做出程序级(而非scalar)的后续修改;第三,通过200-trial匹配窗口的role-swarm、generic-10、single generalist、no-lineage四组对照,把'谁贡献了什么'拆清楚——结论是shared lineage才是关键机制,role partitioning提供边界纪律和多样性。

核心方法

方法直觉上像把一个博士生团队扔进GPU集群:每个Agent是一个角色(架构/优化/数据/调度/系统),它们共用一块blackboard写下历史trial,任何一次trial被外部评估器打分后立刻回流成下一次提案的上下文。技术路线由四层组成:第一层是任务环境(Parameter Golf、NanoChat-D12、CIFAR-10 Airbench96),固化可编辑文件、评分字段与合法性规则;第二层是submitted-trial循环,每个trial=假设+可执行diff+外部结果+失败摘要;第三层是specialist角色+共享lineage,lineage选择性喂入当前最优行、本角色近行、相邻角色近行;第四层是并行迭代,通过$\tau_e = \tau_e^{run}+\tau_e^{eval}+\tau_e^{queue}+\tau_e^{log}$建模吞吐,在Parameter Golf上10个specialist实测18.15 trials/hour,相对理想10×有$\eta_{\parallel,PG}\approx 0.80$的效率。

核心创新点是把'自动研究'从单次生成变成审计友好的实证闭环,并显式区分两种机制——shared lineage负责把已测事实传递到下次编辑,role partitioning负责让提案流不集中。论文的no-lineage消融跑200个trial只找到3个有效改进(best 1.077413,125次撞eval预算上限),而lineage-on的role swarm在相同窗口找到16个有效改进(best 1.073142),且specialist贡献keep数从8/10跌到2/10,说明lineage是让失败反馈转成程序级修改的主动研究状态,而不是被动的log文件。

方法步骤详情

执行流分五步:(1)任务固化与校准,Parameter Golf固定FineWeb切片+16 MB cap+10 min/8×H100;NanoChat-D12校准d12到CORE 0.1618;CIFAR-10校准到26.3560 s,提前备好tokenizer和shards避免trial联网。(2)Agent会话是有tool-turn cap的LLM SDK调用,启动收到fresh lineage,可能提交多trial后终止。(3)trial执行:读lineage→提假设→改recipe→调harness提交。(4)外部评估器独立打分并分配status(valid/budget_overrun/crash/size_block/disqualified),recipe不可改写以防reward hacking。(5)结果回写lineage,下次prompt挑compact slice(最优行+本角色近行+相邻角色近行);匹配200-trial窗口实测role swarm 18.15/h、generic-10 16.79/h、single 2.26/h。

技术新颖性

技术新颖性体现在三方面:第一,把评估器-不可改写的约束显式建模为可复用的harness,而不是单点prompt,从而把reward hacking面缩到接近零;第二,lineage的selective slice机制(current-best+per-role+neighbor)兼顾前沿保留和失败可见性,比全文重放更省token也比单行best score信息更密;第三,在Parameter Golf上做了role swarm vs generic-10 vs single vs no-lineage四组匹配对照,用$\eta_{\parallel}$把组织差异和吞吐差异解耦——前者贡献提案多样性和边界纪律(generic-10只有41.1 effective clusters,role swarm有134.8),后者在匹配窗口几乎相同,说明改进主要来自lineage反馈,而不是'人多力量大'。

Closed-loop auto research trajectory. Submitted trials connect proposals, executable edits, external measurements, feedback, and the next research move.
Figure 1: Closed-loop auto research trajectory. Submitted trials connect proposals, executable edits, external measurements, feedback, and the next research move.

实验结果

主实验跑1197 headline-trial(PG 900+NC 200+CIFAR 97)再加600对照trial,全程人类不挑提案、不改recipe。Parameter Golf:角色群从公开起点1.0810降到1.07221(-0.81%);匹配200-trial窗口role swarm到1.073142(16 drops),no-lineage仅3 drops停在1.077413(125次撞eval预算)。NanoChat-D12:calibrated起点0.1618 CORE,角色群达0.2244(+38.7%);关键trial 007把SSSL注意力路径换成L并把12层搬上Flash SDPA省出wallclock,trial 020用省出预算拉token预算拿到+0.0334 CORE跳,trial 025/156锁在0.2241/0.2244。CIFAR-10 Airbench96:从26.3560 s降到25.1464 s(-4.59%),accuracy gate≥0.96始终满足;架构域严格审计识别157/1197 trial(13.1%)属于架构域改动。

Main experimental summary. Reference rows give external numbers, starting-point rows give the fixed search recipe and denominator for relative change, and run rows report change against that start.
Table 1: Main experimental summary. Reference rows give external numbers, starting-point rows give the fixed search recipe and denominator for relative change, and run rows report change against that start.
Compact representative submitted program transformations. Rows include valid and failed trials because they summarize generated research ideas, not only final-best contributors.
Table 2: Compact representative submitted program transformations. Rows include valid and failed trials because they summarize generated research ideas, not only final-best contributors.
Submitted-proposal entropy and information sharing in Parameter Golf controls.
Table 3: Submitted-proposal entropy and information sharing in Parameter Golf controls.
Best-so-far score over submitted trial index. Points are valid measured trials only; ineligible trials are omitted. The bold line shows best-so-far.
Figure 2: Best-so-far score over submitted trial index. Points are valid measured trials only; ineligible trials are omitted. The bold line shows best-so-far.
Parameter Golf controls over the first 200 trials. The y-axis is delta validation bpb, lower is better.
Figure 3: Parameter Golf controls over the first 200 trials. The y-axis is delta validation bpb, lower is better.
查看结构化数据
任务指标本文基线提升
Parameter Golf (FineWeb val_bpb, 越低越好) validation bits per byte (val_bpb) 1.07221 (900-trial角色群完整跑) 1.0810 (OpenAI public starting recipe) -0.81% 相对起点;同期 single generalist 只到 1.075384 (-0.52%), no-lineage 到 1.077413 (-0.33%)
NanoChat-D12 (固定预算pretraining) CORE score (DCAR-LM, 越高越好) 0.2244 (200-trial角色群) 0.1618 (calibrated upstream d12 at pinned commit) +38.7% 相对校准起点
CIFAR-10 Airbench96 (精度门槛≥0.96下的训练时长) shell-measured wallclock (秒) 25.1464 s (97-trial角色群) 26.3560 s (calibrated upstream Airbench96, 10-seed cold-process) -4.59% wallclock reduction, 同时精度门≥0.96 始终满足
Parameter Golf 对照 (200-trial匹配窗口) val_bpb / valid drops / effective clusters Role swarm 1.073142, 16 drops, 134.8 eff. clusters Generic-10: 1.074495/10 drops/41.1; Single: 1.075384/14 drops/61.9; No-lineage: 1.077413/3 drops/121.7 Lineage feedback使valid drops从3涨到16(5.3×),parent tree从3 active heads扩到15,specialist贡献keep从2/10涨到8/10

局限与改进

作者明确承认的局限有两点:第一,本文的闭环最适合失败能被自动验证、per-trial成本受控、结果能即时回来的环境,不适合主观或不可自动验证的开放问题;第二,论文观察到的是'组合现有已知技术',没有产生像原始Transformer那样的范式级架构发明,架构域trial占157/1197(13.1%)是保守下限,sys/opt/loss角色也常做程序级编辑(如NanoChat attention-kernel path rewrite)。基于我自己的观察:评测集局限于Parameter Golf/NanoChat-D12/CIFAR-10三个相对受控的环境,这些环境的反馈信号已经被人为结构化成(bpb, CORE, s)这种scalar,如果换到NLP开放式benchmark或RL任务,evaluator设计本身就是开放问题;另外角色分工的taxonomy是事先固化好的,文章没有给出taxonomy自动选择或演化的机制,如果换到未知任务需要重新设计;最后整个实验依赖8×H100级别GPU与几百小时机时,即便每个trial便宜,但总开销门槛对普通研究者来说仍然显著。

独立分析的弱点

独立分析三处可改进点。第一,共享lineage目前是selective slice,但具体'挑哪几行、怎么neighbor'靠手工启发式,在trial 587→596这种size-block→keep的转化中能work,但当评估预算上限和artifact cap同时压顶时,有可能把Agent引导进局部最优;改进方向是引入lineage摘要模型或显式的'失败类型→修复模板'索引。第二,角色taxonomy是每个run预先固化的,Parameter Golf用10个角色、NanoChat用5个、CIFAR用5个,如果未来任务结构变化,需要重新设计prompt且没有自动验证机制,改进方向是让角色数量与边界通过小规模calibration自动选择。第三,论文主要指标是end-of-run分数,但缺少对轨迹稳定性的统计检验,800 trial的no-lineage和lineage对比只用一组运行,改进方向是多次随机种子下复现parent-tree breadth等指标并报告置信区间,这样对'lineage是关键机制'的因果论断会更强。

未来方向

作者提出的未来方向包括:把闭环扩展到图像、语音、强化学习等其他计算受限的recipe任务,只要trial便宜且外部可验证即可;用更长(数周连续GPU时间)的run和Eq.(1)的并行模型去研究跨角色组合是否会涌现;更强的未来Agent可能提出范式级想法,同一evaluator-driven闭环可以测量它们是否站得住;开放trace也支持追溯性的人vs Agent比较。本人可延伸的方向有四点:第一,把lineage从纯文本扩成结构化经验库(类似case-based reasoning),让Agent跨run重用;第二,把Evaluator本身变成可配置组件,研究evaluator严格程度对Agent改进幅度的影响;第三,尝试把角色taxonomy与LLM fine-tune结合,让specialist变成领域微调模型而不是prompt角色;第四,把no-lineage反例的'3 drops / 125 crash'模式与奖励欠塑形联系起来,设计一种训练阶段的'lineage-pretraining'目标。

复现评估

GitHub仓库https://github.com/cxcscmu/Auto-Research-Recipes已发布harness、prompt templates、static knowledge files、specialist taxonomy和最终recipes,所有trial记录含proposal summary、code-diff summary、measured score、status label、timing record、failure summary,不依赖私有模型状态,可独立审计。算力方面:PG用8×H100跑10 min/trial,900-trial headline run加600对照trial合计数千卡时;NC每次跑完整d12 pretraining预算可观;CIFAR-10每trial单卡26 s级别相对便宜。复现难度主要不在代码而在算力门槛,且PG的public starting recipe(1.0810)与naive reference(1.2244)是独立baseline,论文用前者作分母,复现者需对齐。