Cerebras 如何防止 autoresearch 循环跑偏:71 次实验的经验
How to stop your autoresearch loop from cheating
Cerebras 让 AI 智能体在训练优化和模型压缩两类任务上跑了 71 次实验,发现循环范围收紧时能稳定产出真实结论,护栏一放松智能体数小时内就会偏离目标。实验一用 codex-autoresearch-harness 把 Codex 包进 bash 循环,GPT-5.4 与 Codex-Spark 各自 6 小时都独立收敛到学习率 warmdown 调度,但 GPT-5.4 提案接受率 67%,Spark 仅 17%,提案质量比单次推理速度更决定总成本。实验二用 REAP 加 INT4 量化把 717 GB 模型压到 92 GB,动态专家换入换出耗时 0.151 秒,但无人值守 12 小时后智能体自行改问另一个问题,作者通过清理上下文、隔离目录和更频繁的验证检查点来纠正。
正文 · AI 翻译
2026年3月19日
TLDR:我们让一个 AI 智能体通宵运行。到了早上,它已经放弃了我们的实验,转而开始做它自己的实验。在两个截然不同的问题上——训练优化和模型压缩——共进行了 71 次实验,我们发现,当循环被严格限定范围时,自动研究能够可靠地揭示真实发现。一旦放松护栏,智能体在数小时内就会偏离。瓶颈不在于智能。而在于它周围的一切。
我们构建/运行的一切都是开源的:
我们让一个 AI 智能体通宵运行在两个研究实验上。第二天早上我们查看时,它已经停止做我们要求的事情。它没有去优化内存使用,而是跑去做自己的支线任务,研究维持性能实际上需要多少个模型权重。十二小时的计算,指向了错误的方向。这段经历恰好体现了当前自动研究的两面:它强大到足以自主揭示真实发现,又缺乏纪律性,如果你不盯着,它就会浪费一整晚的 GPU 时间。
Karpathy 上周发布了 autoresearch,一个让 AI 智能体自主运行实验的框架。给它一个目标、一些要跟踪的指标,以及一个代码库。
设置极简,只有 3 个文件:
每次迭代,智能体读取程序和结果日志,提出对 train.py 的修改,提交,训练,并评估。只有当修改达到更好或相等的指标时才会被接受。其他一切都会通过 git reset 回滚。
我们想知道:这在演示之外还站得住脚吗?我们运行了两个实验,把 autoresearch 推向不同的领域,一个关于训练,一个关于推理,来找出答案 :)
实验 1:训练优化
我们将 Codex 包装在一个 bash 循环中(codex-autoresearch-harness),并在 Karpathy 的 nanochat 模型上,对两个不同的 LLM 作为“研究员”进行了 A/B 测试:GPT-5.4 和 Codex-Spark。Codex 原生不支持循环,所以我们构建了一个 harness 来强制它循环。我们的问题是:autoresearch 真的能做自主研究吗,不同的模型会如何表现/影响最终模型?
实验 2:推理优化
我们将 autoresearch 指向一个完全不同的问题:把 Kimi-k2.5 以 BF16 格式、一个 2.5 TB 的模型装进价值 8 千美元的消费级 GPU(reap-expert-swap)。我们的问题是:智能体能否弄清楚如何压缩模型,同时不破坏其推理能力?
以下是发生的事情。
Karpathy 指出 Codex 实际上无法与 autoresearch 配合工作,codex exec 运行一次就退出。没有内置的循环模式。所以我们构建了一个。
Harness
codex-autoresearch-harness 将 codex exec 放入一个 bash 循环中,内置 A/B 测试,每次调用只做一个实验。每次迭代从磁盘读取程序和结果,提出代码修改,提交,训练 5 分钟,评估,保留或回滚,记录到 TSV,然后退出。Bash 捕获退出并启动一次新的调用。
对于 A/B 测试,launch_ab.sh 从同一基线运行模型 A 若干小时,然后运行模型 B 若干小时,compare_results.sh 生成并排分析。
每次调用只做一个实验是一个刻意的架构选择:它防止上下文窗口溢出(训练输出很冗长),提供干净的错误恢复(崩溃只意味着下一次迭代重新开始),并通过 git 历史和持久日志保证状态分离。
发生的一些烦人事情以及你可以如何修复它们:
这些中的每一个都是同一个缺口:当前的沙箱将 GPU 访问和长时间进程视为威胁。自动研究将它们视为需求。
每个模型在同一块 H100、同一基线上获得 6 小时:
两个模型独立发现了相同的优化,而提案质量远比推理速度重要。两个模型都独立收敛到学习率 warmdown 调度作为主要杠杆。GPT-5.4 系统地将 warmdown 比率从 0.5 爬山到 0.95。Spark 找到了相同的策略,但提案更混乱。这种收敛表明,小型训练改进的搜索空间具有真实结构,不同的智能体会找到相同的峰值。
接受率说明了更多。GPT-5.4 接受了其 67% 的提案。Spark 接受了 17%。不是因为 Spark 提出了坏想法,它提出了更多想法,其中许多很大胆。但每个被拒绝的提案仍然消耗 5 分钟的 GPU 时间。Spark 的速度优势(每次调用快约 35 秒)让它尝试了几乎两倍的提案,但大多数是浪费的训练运行。
当每个实验都消耗真实计算时,提案质量主导总成本。一个提出更少、更有针对性修改的模型,胜过一个广泛探索的模型,至少在面对严格门控时如此。
第二个实验(reap-expert-swap)解决了一个不同的问题:在远小于所需的硬件上运行一个巨大的 AI 模型。
目标模型需要约 2.5 TB 的 VRAM。我们的硬件:8× RTX 3090,总共 192 GB。大约小了 13 倍。按美元计算,约 30 万美元的 GPU 对约 8 千美元。
我们的方法有两个阶段:首先,永久压缩模型以适配我们的硬件。然后,看看我们能否根据模型实际需要,动态加载和卸载模型的部分,从而更进一步。
借助 REAP(Cerebras 的专家剪枝)加上 INT4 量化,我们把模型从 717 GB 压缩到了 92 GB。这是 7.8 倍的压缩,足以装进我们的消费级 GPU。
作为参照,GLM-4.7 以原始 BF16 精度运行需要 4 块 B300,成本约每小时 20 美元。GLM-4.7-Reap 只需 1 块 H200 就能在完整上下文下运行,成本降低 10 倍。
静态压缩是一个永久性决定,你选定模型要保留哪些部分,然后就永远如此。问题是:如果能根据模型每时每刻的实际需要,动态选择使用哪些部分,能否做得更好?
第二阶段:动态专家换入换出(使用 autoresearch)
我们分析了模型如何在它的“专家”(各自处理不同类型输入的专用子网络)之间路由 token。结果非常惊人:每层只有约 7.6% 的专家承载了 50% 的路由流量。这意味着每层 256 个专家中,只需约 19 个就能覆盖一半的 token。完整模型非常庞大,但任意时刻活跃的部分很小。
我们没有永久删除专家,而是构建了一个系统来动态地换入换出专家,就像一个智能缓存。需要什么就加载什么,不需要的就卸载。
这个想法正在社区中流行起来(llama.cpp、vLLM)。换入换出的性能很有前景:在两种配置之间切换只需 0.151 秒。初始设置之后,切换都在一秒以内完成。在这一步中,我们使用 autoresearch 来测试自主智能体能否自行判断何时该换入换出哪些专家。
我们设定了一个激进的目标:只在模型内存占用的 20% 下运行。GPT-5.4-Pro、GPT-5.4 和 Codex-Spark 作为研究工作者运行,提出配置、进行测试并记录结果。
在 19 个主要实验中,最好的结果:保留 38% 的准确率。实际发生的情况是智能体跑偏了。它没有坚持我们最初的目标,而是自行决定去回答另一个问题:要维持 95% 以上的准确率,实际需要模型的多小一部分?它通过在内存中屏蔽专家来进行测试,这意味着模型在没有任何实际内存节省的情况下损失了智能。
这一发现本身是有用的(约 37% 的专家覆盖了 95% 的使用场景),但它污染了仓库上下文,使后续所有迭代偏离得更远。
在无人值守 12 小时后,实验偏离得更厉害了。解决办法是:清除环境中分散注意力的上下文,为每个实验创建干净的隔离目录,增加更严格、更频繁的验证检查点,并主动重新引导智能体的注意力。
实验 2 的真正教训不在于智能体在压缩上是成功还是失败。而在于基础设施和任务框架决定了智能体是富有成效地探索,还是陷入螺旋式偏离。范围严格受限、验证严格的环境(第一阶段)产生了干净的结果。范围宽松、检查不频繁的环境(自主搜索)在数小时内就产生了偏离。
抛开具体细节,两个实验都遵循了相同的模式:定义一个可衡量的目标,把控制它的代码交给智能体,执行严格的关卡,记录一切,重复。当我们做得好时,结果是有用的。当我们放松护栏时,智能体就偏离了。
两个实验中突显出三件事:
不同的智能体会收敛到相同的答案。在实验 1 中,两个模型独立发现了学习率 warmdown 调度。这种收敛表明 autoresearch 在搜索空间中发现的是真实结构,而非噪声。
提案质量主导总成本。GPT-5.4 在被拒绝的提案上浪费了 20 分钟的 GPU 时间。Spark 浪费了 2 小时。当每个实验都消耗真实算力时,一个提出更少、更有针对性修改的模型会胜出,即使它每次调用更慢。
环境设计比模型选择更重要。在实验 1 中产生干净、收敛结果的同一批智能体(范围严格受限、每次调用一个实验、严格关卡),在实验 2 中面对宽松目标和低频验证时严重偏离。基础设施和任务框架决定了智能体是富有成效地探索,还是陷入螺旋式偏离。
而且它正在扩展到训练之外。Shopify 的 CEO 把 autoresearch 用于一个查询扩展模型,一觉醒来发现一个 0.8B 模型在 37 次实验后比他们之前的 1.6B 模型得分高 19%。其他人把它用于量化金融、营销 A/B 测试和预测模型。autoresearch@home 已经在协调互联网上 95 个以上的智能体,集体运行了 2,600 多次实验。任何有可衡量指标的东西都可以一试。
我们花在调试沙箱权限上的时间比运行实际实验还多。CUDA 看不到我们的 GPU。包管理器在隔离环境中坏了。我们手动把 API 密钥通过管道传入,因为 Codex 忽略了环境变量。
这些都与研究无关。而这正是重点。当我们不挡路时,智能体找到了真实的结果。方法论是有效的。研究循环是健全的。缺的是无需人盯着就能运行它的基础设施。
但它发展得很快。autoresearch@home 一周前上线,已经有 95 个智能体运行着 2,600 多次实验,互相阅读彼此的结果,实时调整策略。到第 3 天,它们已经超越了超参数调优,进入架构层面的突破。这正是 Karpathy 所描述的开端:一个由智能体组成的完整研究社区在并行工作。
我们用 bash 脚本和 tmux 运行了 71 次实验。我们期待下一代工具和工作流,让我们不必在凌晨 2 点盯着终端 :)
代码:codex-autoresearch-harness · reap-expert-swap · 基于 Karpathy 的 autoresearch 构建
性能对比基于第三方基准测试或内部测试。与基于 GPU 的系统相比所观察到的推理速度提升可能因工作负载、配置、日期和所测试的模型而异。
1237 E. Arques Ave Sunnyvale, CA 94085