← 返回博客

Git 提交作为科学发现:Autoresearch 如何将版本控制变成研究实验室

· Save Team
aiautoresearchgitkarpathyversion-controlresearchprogramming

在传统软件开发中,git 提交意味着”这段代码可以工作了”。在 Karpathy 的 autoresearch 中,git 提交意味着不同的东西:“这个改变让模型可测量地变得更好了。”

每一次提交都是一个小小的科学发现。每一次 git reset 都是一个没有得到证实的假设。git 日志成为一本研究日记,由 AI 代理自动撰写。

这是版本控制被重新构想为研究工具。

二元决策

Autoresearch 对 git 的使用简洁优雅:

  1. 代理修改 train.py
  2. 训练运行 5 分钟
  3. 测量验证损失
  4. 如果改进了: git commit——这个改变被保留
  5. 如果没有改进: git reset——这个改变不曾发生

没有拉取请求,没有代码审查,没有合并冲突。只是一个二元决策:这个改变让事情变得更好还是没有?

这创建了一个干净、线性的改进历史。日志中的每个提交都代表一个经过验证的向前迈进的步骤。没有噪音——没有”WIP”提交,没有”修复错字”提交,没有”撤销撤销”链。只是每一个都让模型可测量地变得更好的改变序列。

Git 日志作为研究日记

经过一个通宵的 autoresearch 会话,git 日志读起来像一本研究笔记本:

每条提交信息(由 AI 代理编写)描述了更改了什么以及产生了什么效果。差异精确地显示了修改了哪些代码。验证损失的改进被记录下来。

这比传统的 ML 研究更具可审计性。研究人员的笔记说”尝试调整学习率,似乎有帮助”,而这里有精确的差异、精确的测量和可重复的结果。

跨会话记忆

Git 给 autoresearch 提供了 AI 代理迫切需要的东西:持久记忆

当你开始新的 autoresearch 会话时,代理可以读取 git 历史来了解之前尝试过什么。它可以看到哪些方向产生了改进,哪些没有。这防止代理重新尝试失败的实验,并帮助它在有效的方法上继续构建。

这是 Markdown 与 git 协同工作:program.md 文件提供战略方向(尝试什么),而 git 历史提供战术上下文(已经尝试了什么)。

复利效应

因为每一次成功的提交都成为新的基准,改进会复合积累。代理不是每晚从头开始——它从迄今为止取得的最佳结果开始。

在 Karpathy 的两天运行中,大约积累了 20 次改进。每一次都很小,但合在一起,它们将 GPT-2 训练时间减少了 11%。代理在注意力缩放、正则化和超参数方面发现了相互促进的优化。

这就是基于 git 方法的力量:它自然地创建了一个棘轮。进步被锁定为提交,失败被丢弃,代码库只向前移动。

什么被撤销

失败的实验——git reset 操作——和成功一样有趣。在典型的通宵运行中,大约 70-80% 的实验被撤销。

这些被撤销的实验不是浪费。它们是告知代理未来决策的否定结果。通过跨代理记忆和共享 git 历史,分布式 autoresearch 系统可以从整个集群的失败中学习。

Git 作为实验数据库

传统的 ML 研究使用实验追踪工具——MLflow、Weights & Biases、Neptune——来记录超参数、指标和产物。

Autoresearch 用 git 替代了所有这些。提交历史就是实验日志,差异就是超参数变化,提交信息就是实验描述。

这种简化很有力量。没有单独的实验数据库需要维护,没有需要配置的仪表板,没有需要定义的模式。只是 git,每个开发者都已经了解。

更广泛的模式

作为研究日记的 git 模式超越了 ML 训练:

  • 代码优化: 每个提交代表一个让代码更快的改变
  • 测试覆盖率: 每个提交代表一个提高测试覆盖率的改变
  • 缺陷修复: 每个提交代表一个解决失败测试的修复
  • 内容优化: 每个提交代表一个改进可测量指标的改变

任何可以自动测量”更好”和”更差”的领域都可以使用 git 作为实验追踪器。

人类的角色:阅读日志

在 agentic 工程中,经过通宵 autoresearch 会话后,人类的早晨例行工作是阅读 git 日志。

这是一种与写代码不同的技能。你正在评估一系列 AI 生成的改变,理解每一个为什么有效,并决定整体方向是否正确。基于这个审查,你更新 program.md 来引导下一个会话。

Git 日志是人类和代理之间的通信渠道。代理通过提交进行通信,人类通过 program.md 更新进行通信。Markdown 在两个方向上流动。

构建 Git 友好的知识

编写有效的 program.md 文件——能够产生干净、有意义的 git 历史的那种——需要深入理解领域和工具。最好的代理指令来自深入研究过问题空间的人。

将参考材料保存为干净的 Markdown 创建了一个知识库,你在编写代理指令时可以从中汲取。文档、研究论文和最佳实践,都采用自然流入 program.md 并最终流入发现的 git 历史的格式。


Save 将任何网页转换为干净的 Markdown——构建驱动有效 AI 代理指令和自主研究的知识库。免费试用 Save