如何避免autoresearch循环假停止
我们让一个AI智能体通宵运行。第二天早上,它放弃了我们的实验,开始了自己的实验。在71个实验和两个非常不同的问题上:训练优化和模型压缩,我们学到了当循环被严格限制范围时,自动研究可以可靠地发现真实结果。放松护栏,智能体在几小时内就会漂移。瓶颈不是智能,而是它周围的一切。
我们构建/运行的所有内容都是开源的:
- codex-autoresearch-harness,Bash包装器,强制Codex进入具有内置A/B测试的研究循环(实验1)
- reap-expert-swap,专家剪枝+动态交换,将BF16格式的Kimi-k2.5(2.5 TB)装入8× RTX 3090(实验2)
我们让AI智能体在两个研究实验上通宵运行。第二天早上检查时,它已经停止了我们要求它做的事情。它没有优化内存使用,而是开始了自己的支线任务——调查实际需要多少模型权重才能保持性能。十二小时的计算,指向了错误的方向。
这个经历捕捉了自动研究现在的两面性:它强大到可以自主发现真实结果,也散漫到如果你不注意就会浪费一整晚的GPU时间。
1、Andrej Karpathy的Autoresearch
Karpathy上周发布了autoresearch,一个让AI智能体自主运行实验的框架。给它一个目标、一些要跟踪的指标和一个代码库。
让它提出更改、测试它们、保留或撤销、重复。他在Nanochat上运行了两天,这是一个小型模型,以约100美元的计算成本达到GPT-2性能。Codex通过自己的研究将计算时间减少了10%。
设置很简单,只有3个文件:
每次迭代,智能体读取程序和结果日志,向train.py提出更改,提交,训练,评估。只有当达到更好或相等的指标时才会接受更改。其他所有内容都通过git reset撤销。
我们想知道:这在演示之外是否成立?我们运行了两个实验,将自动研究推向不同领域,一个在训练上,一个在推理上,来找出答案:)
2、我们运行了什么
实验1:训练优化
我们将Codex包装在bash循环中(codex-autoresearch-harness),并对两个不同的LLM作为"研究者"进行A/B测试,GPT-5.4和Codex-Spark,在Karpathy的nanochat模型上。Codex本身不支持循环,所以我们构建了一个harness来强制它循环。我们的问题是:自动研究能否真正进行自主研究,不同的模型如何表现/影响最终模型?
实验2:推理优化
我们将自动研究指向一个完全不同的问题,将BF16格式的Kimi-k2.5装入8000美元的消费级GPU(reap-expert-swap)。我们的问题是:智能体能否弄清楚如何在不破坏推理能力的情况下压缩模型?
这是发生的事情。
3、实验1:让Codex循环
Karpathy注意到Codex与自动研究不太兼容,codex exec运行一次就退出。没有内置的循环模式。所以我们构建了一个。
Harness
codex-autoresearch-harness将codex exec放入具有内置A/B测试的bash循环中,每次调用一个实验。每次迭代从磁盘读取程序和结果,提出代码更改,提交,训练5分钟,评估,保留或撤销,记录到TSV,然后退出。Bash捕获退出并启动新的调用。
对于A/B测试,launch_ab.sh运行模型A N小时,然后从相同基线运行模型B N小时,compare_results.sh生成并排分析。
每次调用一个实验是一个有意的架构选择:它防止上下文窗口溢出(训练输出很冗长),提供干净的错误恢复(崩溃只意味着下一次迭代重新开始),并通过git历史和持久日志保证状态分离。
设置陷阱
一些发生的恼人事情以及你如何修复它们:
每一个都是相同的差距:当前的沙箱将GPU访问和长进程视为威胁。自动研究将它们视为需求。
结果:收敛发现和提案质量
每个模型在相同的H100上获得6小时,相同的基线:
两个模型独立发现了相同的优化,提案质量远比推理速度重要。两个模型独立地收敛到学习率预热调度作为主要杠杆。GPT-5.4系统地从0.5到0.95爬坡预热比率。Spark发现了相同的策略,但提案更混乱。这种收敛表明,对于小训练改进,搜索景观具有真实结构——不同的智能体找到相同的峰值。
接受率告诉我们更多。GPT-5.4接受了67%的提案。Spark接受了17%。不是因为Spark提出了糟糕的想法,它提出了更多的想法,其中许多是大胆的。但每个被拒绝的提案仍然会消耗5分钟的GPU时间。Spark的速度优势(每次调用快约35秒)让它尝试了几乎两倍的提案,但大多数是浪费的训练运行。
当每个实验都花费真实计算时,提案质量主导总成本。一个提出更少、更有针对性更改的模型,至少在严格的门槛面前,胜过广泛探索的模型。
4、实验2:将巨型模型压缩到消费级GPU上
第二个实验(reap-expert-swap)解决了一个不同的问题:在显存太小的硬件上运行一个巨大的AI模型。
目标模型需要约2.5 TB的显存。我们的硬件:8× RTX 3090,总共192 GB。大约小了13倍。用美元计算,约30万美元的GPU对约8000美元。
我们的方法有两个阶段:首先,将模型永久压缩以适应我们的硬件。然后,看看我们是否可以通过根据实际需要动态加载和卸载模型部分来更进一步。
第一阶段:静态压缩,这有效(不是自动研究)
使用REAP(来自Cerebras的专家剪枝)加INT4量化,我们将模型从717 GB压缩到92 GB。这是7.8倍压缩,足以装入我们的消费级GPU。
作为背景,原始BF16格式的GLM-4.7需要4个B300,每小时约20美元。GLM-4.7-Reap只需要1个H200,成本降低10倍,完整上下文。
静态压缩是一个永久性的决定——你选择保留模型的哪些部分,然后就永远这样了。问题是:你能否通过根据模型实际需要动态选择使用哪些部分来做得更好?
第二阶段:动态专家交换(使用自动研究)
我们分析了模型如何将其"专家"路由到token——每个专家是专门处理不同类型输入的子网络。结果是疯狂的:每层只有约7.6%的专家承载50%的路由流量。这意味着在256个每层专家中,只需要约19个就能覆盖一半的token。模型很大,但在任何给定时刻活动的切片很小。
我们不是永久删除专家,而是构建了一个动态交换它们的系统,就像一个智能缓存。加载你需要的,卸载你不需要的。
这个想法在社区中正在获得关注(llama.cpp, vLLM)。交换性能很有希望:在两个配置之间转换只需0.151秒。初始设置后亚秒级交换。
在这一步,我们使用自动研究来测试自主智能体能否弄清楚何时交换哪些专家。
自主搜索:19个实验,以及它们真正教会了我们什么
我们设定了一个激进的目标:仅以模型内存占用量的20%运行。GPT-5.4-Pro、GPT-5.4和Codex-Spark作为研究工作节点,提出配置、测试和记录结果。
在19个主要实验中,最佳结果:38%的保留准确率。实际发生的是智能体漂移了。它没有坚持我们的原始目标,而是自己决定回答一个不同的问题:*你实际上需要多少模型才能保持95%+的准确率?*它通过在内存中屏蔽专家来测试,这意味着模型正在失去智能而没有实际的内存节省。
发现本身是有用的(约37%的专家覆盖95%的用例),但它污染了仓库上下文,并将所有后续迭代送入了更远的歧途。
12小时无人值守后,实验漂移得更多。修复方法:清除分散注意力的上下文环境,为每个实验创建干净的隔离目录,添加更严格和更频繁的验证检查点,并积极重新引导智能体的焦点。
实验2的真正教训不是关于智能体在压缩方面的成功或失败。而是 基础设施和任务框架决定了智能体是富有成效地探索还是螺旋式下降。严格限制的环境和严格验证(第一阶段)产生了干净的结果。松散限制的环境和罕见的检查(自主搜索)在几小时内产生漂移。
5、两个实验告诉我们什么
剥去细节,两个实验遵循相同的模式:定义一个可衡量的目标,给智能体控制它的代码,强制执行严格的门槛,记录一切,重复。当我们做得好时,结果是有用的。当我们放松护栏时,智能体漂移了。
三个东西在两个实验中都很突出:
不同的智能体收敛到相同的答案。在实验1中,两个模型独立发现了学习率预热调度。这种收敛表明自动研究正在搜索景观中找到真实结构,而不是噪音。
提案质量主导总成本。GPT-5.4在拒绝的提案上浪费了20分钟的GPU时间。Spark浪费了2小时。当每个实验都花费真实计算时,一个提出更少、更有针对性更改的模型获胜,即使每次调用更慢。
环境设计比模型选择更重要。在实验1中产生干净、收敛结果的相同智能体(严格限制、每次调用一个实验、严格门槛),在实验2中给定松散目标和罕见验证时严重漂移。基础设施和任务框架决定了智能体是富有成效地探索还是螺旋式下降。
而且它正在蔓延到训练之外。Shopify的CEO将自动研究指向一个查询扩展模型,醒来后发现一个0.8B模型在37个实验后比之前1.6B的模型得分高19%。其他人将其用于量化金融、营销A/B测试和预测模型。autoresearch@home已经协调了互联网上的95+个智能体,共同运行2600+个实验。任何有可衡量指标的东西都是公平游戏。
6、差距在于工具,而非智能
我们调试沙箱权限的时间比运行实际实验的时间还多。CUDA看不到我们的GPU。包管理器在隔离中坏了。我们手动输入API密钥,因为Codex忽略了环境变量。
这些与研究毫无关系。这就是重点。当我们让开道路时,智能体找到了真实结果。方法论有效。研究循环是合理的。缺少的是无需看管的运行基础设施。
但它发展很快。autoresearch@home一周前启动,已经有95个智能体运行2600+个实验,互相阅读结果,实时调整策略。到第3天,他们已经超越了超参数调整,进入架构突破。这就是Karpathy描述的:一个并行的智能体研究社区的开始。
我们用bash脚本和tmux运行了71个实验。我们对下一版本的工具和工作流程感到兴奋,它们不需要我们在凌晨2点盯着终端 :)
原文链接: How to stop your autoresearch loop from cheating
汇智网翻译整理,转载请标明出处