自动化 AI
自动化 A. Karpathy 曾说,OpenAI 的研究人员通过改善他们的 AI 实际上是在 "让自己自动化"。目前,我在与 Anthropic 的 Fable 开发 Beagle SCM,它当然是一个出色的模型,能够在大量代码中发现小问题、提交任务、进行修复。不过,昨天它竟然将 build/ 目录两次提交到了项目中。它很聪明,但却笨拙。由于 LLM 的特性,这个问题在它们的进步过程中不会消失。它们往往不精确且非确定性。Ragel 解析器生成器可以瞬间以确定性“编码”一个 10 KLoC 的形式正确的解析器。那么 Claude 呢?好吧,我的指示是全大写的:绝不要手动解析任何东西,永远不要。这将是痛苦的,且会出错,真的不要。尽管如此,它还是会尝试,所以我定期告诉它扫描代码库,查找并删除任何手动解析的尝试。这大多行得通。它变得越来越聪明,却没有变得更灵活。处理一种昂贵、缓慢、笨拙但聪明的 LLM 的方法是为它提供快速、强大和确定性的工具,并将整个系统构建为一个确定性的正式工作流程。让它变得更快,在合适的时刻看到相关内容,使其变得更灵活,让它自我纠正。将这种聪明但不一致的非确定性夹在强大的确定性工具和同样正式的流程之间。如果我们使工具和流程具有可塑性,这个故事就会变得更加有趣。这样,如果 Claude 过于频繁地执行某些动作,我们就自动化它。如果它在某件事情上反复失败,我们就自动化验证步骤。从本质上讲,我们让 LLM 自我自动化,以支持简单可靠的确定性工具。Beagle SCM 允许 LLM 用 JavaScript 编写自己的例程。虽然所有的繁重工作都是用 C 实现的,并且很少触碰,但工具层(三明治的下半部分)和工作流程层(上半部分)都是 JavaScript,并从文件系统中选取它们的代码,采用 node_modules 风格。想象一下 git hooks,可以在几乎任何语言中对源文件进行分词,检查文件历史和提交历史,交叉检查链接,以及基本上访问 git 能够内部访问的任何数据。这就是 Beagle。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡