固定度量
I’m happy to translate the article for you, but I’ll need the actual text you’d like translated. Could you please paste the content (or the portion you want translated) here? I’ll keep the source link and all formatting exactly as you specify.
核心洞见
Andrej Karpathy 的 autoresearch 仓库恰好只有 三个关键文件:
| 文件 | 角色 |
|---|---|
| Domain file 1 | 代理编辑训练代码,运行五分钟实验,检查验证损失,决定是保留还是丢弃结果,然后循环——整夜如此,完全不需要你介入。 |
| Domain file 2 | 同上——第二个 “代理领域” 文件。 |
program.md | 你的 文件。你只需编写一次,然后去睡觉。代理永远不会触碰它,你也永远不需要触碰代理的文件。它是 竞技场——你与代理之间的接口。 |
program.md是系统中最重要的产物。
它既不是训练代码,也不是模型架构。它是 告诉代理如何思考问题的文档。
为什么固定的5‑分钟预算很重要
- 每次运行 恰好 5 分钟 —— 不是“大约 5 分钟”,也不是“5 分钟除非实验看起来有前景”。
- 每次运行都使用相同的 与词汇量无关的度量。
这个固定预算承担了大部分繁重的工作:
- 没有它,你会得到 100 条无法有意义比较的数据点。
- 一个在较小架构上训练 8 分钟的运行 vs. 一个在较大架构上训练 3 分钟的运行 —— 哪个更好?你无法得知;比较失效。
固定度量 是让 arena 起作用的关键。它是 代理(agent)无法改变的唯一因素。代理可以修改架构、优化器、超参数等,但 评估标准保持人为定义。
每个 Arena 的设计问题: 唯一不能移动的东西是什么?
没有锚定的标准,arena 就没有墙壁。代理在不断变化的目标上进行优化,结果是一片不可比的实验海洋。
跨领域模式
| 领域 | 人工编写的制品 | 目的 |
|---|---|---|
| 机器学习研究 | program.md | 告诉代理如何思考研究 |
| 代码生成(Claude Code) | CLAUDE.md | 逻辑路由器:硬规则、决策树、结束条件 |
| 任务定义 | TASK_CONTRACT.md | 在会话开始前定义“完成”标准 |
| 治理 | 治理框架(政策文档) | 定义权力边界、升级路径、审计追踪 |
所有这些都是 塑造代理思考方式的规范 —— 人类创作工作的主要制品。
具体示例
1. 团队工作流与模式
在共享代码库上运行代理的团队定义了模式分离:
- Discover – 探索问题空间。
- Plan – 概述解决方案。
- Build – 实施计划。
- Review – 评估输出。
- Bugfix – 修复问题。
- Loop – 迭代。
每种模式都是一个拥有自身规则的不同竞技场。代理不能直接跳到Build;必须先经过Discover。这些模式充当墙壁,防止代理在错误方向上无限运行。
2. 组织治理
在各工作流中部署代理的组织构建了一个治理框架:
- Authorization scope – 代理单独可以执行的范围。
- Escalation paths – 需要人工签署的情形。
- Audit trails – 对决策和行动的日志记录。
该框架是机构层面的竞技场,提供与 program.md 相同的锚定原则。
3. 缺乏竞技场的失败
Victor Taelin’s experiment
Budget: $1,000, 2 days.
Outcome: 18 rounds of wrong work.
没有固定指标、没有锚定标准、也没有竞技场。代理们高效地优化到了错误答案,因为系统中没有任何东西能告诉它们正在回答错误的问题。这正是竞技场能够防止的失败模式。
规范中的纪律
- 纪律不在于代理;它在 规范(人类编写的文件)中。
- Karpathy 的
program.md已经 约 90 % 由 AI 编写,但 锚点——验证指标val_bpb—— 没有变化。代理可以重写其他所有内容,但评估标准仍由人类定义。
递归自我改进原则
设计原则: 递归自我改进至少需要一个层次无法自我改进。
较低层的评估标准必须来源于更高层、不可变的层。
Foundation 对此的答案是 来源追溯:评估者决定哪些知识被提升到语义记忆,但 标准本身保持固定。
要点
- 确定不可变度量(竞技场的墙)后再让代理进行迭代。
- 编写单一、清晰的规范文件(
program.md、CLAUDE.md、TASK_CONTRACT.md等),其中编码此度量和高层策略。 - 允许代理自由修改其他所有内容(代码、超参数、架构),但必须遵守固定的评估标准。
- 使用模式分离或治理框架在更大尺度上创建额外的墙。
当竞技场定义明确时,代理会成为强大的研究伙伴;若没有明确的墙,它们只是快速但无方向的自动机。
瓶颈的演进
评估是由人定义并由人维护的。
代理生成知识候选,但 人类决定哪些知识值得保留。这一层不会自动化。
循环可以无限运行,但锚定标准必须保持不变。
从代码到提示到 program.md
- 一年前 瓶颈是 编写代码。
- 然后变成了 编写提示。
- 现在 瓶颈是 编写
program.md—— 这份文档告诉代理如何思考整个问题域。
“最好的实验室不会拥有最多的工程师,而是拥有最好的
program.md。”
为什么这很重要
- 对于拥有精心设计的竞技场的个人来说,可利用的杠杆 真的非常巨大。
- Karpathy 在一块 GPU 上 一夜之间运行 100 ML 实验。
- 拥有良好
CLAUDE.md的开发者可以交付过去需要整个团队才能完成的工作。 - 研究人员拥有精确的规范,醒来后会发现 从她未亲自运行的 83 次实验中获得了 15 项保留的改进。
但瓶颈 已经转移——它并未消失。
编写 program.md 实际需要的东西
- 对问题领域的深刻理解——必须在实验开始前就定义成功的样子。
- 选择正确的度量指标并了解它为何重要。
- 构建边界,使其:
- 足够紧以防止漂移,
- 足够松以允许真正的发现。
这比写代码更难。
- 代码要么 编译成功,要么不成功。
- 实验平台要么 产生有用的实验,要么产生成百上千次相似的运行却指向错误的答案——而且你可能要等到多晚的代理活动后才发现这一点。
真正的转变
这种转变 不是 从辛苦工作到轻松工作。
而是 从执行的艰苦工作转向更艰难的规范工作。
- 代理 负责实验。
- 人类 负责对实验应测量的 什么 作出判断。
这种判断 不会自动化。循环仍在运行,但舞台仍属于你。
系列背景
这篇文章是关于 AI 实际上在软件开发中改变了什么 系列的一部分。
之前的文章:
- 守门恐慌
- 计量器一直在运行
- 谁对谁说了什么
- 代币经济
- 我发布了有缺陷的代码并写了一篇文章关于它