Kronumos 2 Kairos: Cost-Bounded Automated Program Repair via Dual-Brain Cybernetic Sub-Cortex on SWE-bench Verified
本文介绍了 Kronumos 2 Kairos,这是一种成本受限的自动化程序修复引擎,它将经过微调的 7B 代码模型与一种新颖的“双脑控制皮层下结构”(Dual-Brain Cybernetic Sub-Cortex)相结合,在 SWE-bench Verified 数据集上实现了 8 个经验证的缺陷修复,且与行业基准相比,边际推理成本为零,Token 使用量减少了 93.5%。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
软件维护是一个安静而庞大的行业,消耗了全球工程预算的百分之六十以上。这项工作的本质是在复杂的数字系统中寻找破碎的部分,并在修复它们的同时,确保不破坏那些仍在正常工作的部件。几十年来,这一直是一项需要人类完成的任务,要求对不同代码文件之间如何相互通信有深刻的理解。近年来,在海量代码上训练出的计算机程序开始尝试自主完成这项工作。这些被称为大语言模型的程序可以阅读问题的描述并建议修复方案。然而,当这些模型试图修复现实世界的软件时,它们往往会感到吃力。它们会在庞大的信息量中迷失方向,会犯下导致计算机拒绝其工作的细微格式错误,并且其成本极高,通常每一次尝试都需要昂贵的云计算能力。
一项新的研究引入了一种解决此问题的新方法,该方法优先考虑精确度和成本效益,而非暴力计算。研究人员构建了一个名为 Kronumos 2 Kairos 的系统,旨在充当手术工具而非宽泛的搜索引擎。该系统并非让计算机模型在代码库中漫无目的地游走、反复猜测和尝试,而是强制模型专注于一个非常具体且狭窄的任务。它将一个中等规模的开源计算机模型与一个作为严格质量控制检查员的刚性、基于规则的引擎相结合。其目标是验证:如果一个规模较小、成本较低的模型能够免受其自身粗心大意倾向的影响,并且被阻止在不必要的步骤上浪费资源,那么它是否能够修复真实的软件漏洞。研究人员在包含五百个真实世界软件问题的基准测试(一套用于衡量人工智能修复代码能力的标准化挑战集)上测试了这个系统。
该系统通过将工作拆分为两个截然不同的部分来运行。第一部分是“认知皮层”(cognitive cortex),即负责理解问题并编写代码修复方案的计算机模型。第二部分是“皮层下”(sub-cortex),这是一个用一种能保证精确、可预测行为的语言编写的确定性引擎。这个皮层下部分充当了过滤器和格式化器的角色。在模型看到问题之前,皮层下部分就会剥离掉通常会充斥在错误信息中的数千行无关的技术噪音。它还会移除密码和 API 密钥等敏感信息以确保隐私。随后,它会检查模型的输出是否符合代码补丁编写的严格规则。如果模型在行号、缩进或修复方案的格式上出现错误,皮层下部分会立即捕捉到。它要么纠正错误,要么直接拒绝该补丁,从而确保没有任何损坏或格式错误的编码会被提交进行测试。这一过程防止了系统在注定会失败的格式错误尝试上浪费时间。
研究人员利用该系统运行了这五百个真实世界的软件问题。结果显示,该系统成功解决了其中的八个漏洞。虽然在五百个问题中解决八个看起来数字较小,但其意义在于系统是如何实现这一目标的。研究人员使用的模型仅有七十亿个参数,这比商业公司常用的、运行成本动辄数千美元的巨型模型要小得多。通过使用这种“双脑架构”,该系统在处理计算资源时实现了零边际成本。系统处理每个任务的平均数据量仅略高于两千个 token,这一数字比其他自动化修复系统通常消耗的数十万个 token 低了百分之九十三。这种数据使用量的剧烈减少意味着该系统比目前的替代方案更高效、更具扩展性。
该研究的一个关键发现是严格质量控制引擎的重要性。当研究人员移除皮层下部分在模型编写代码后修复格式错误的能力时,成功的修复数量从八个下降到了六个。这表明,很大一部分失败并非源于缺乏理解力,而是由于代码呈现方式上的微小且可纠正的错误。皮层下部分充当了安全网,捕捉了这些错误,并确保模型发现的逻辑修复方案能够以可用的格式交付。该系统还证明了它可以在不运行软件测试的情况下进行修复过程。系统并非通过尝试修复并观察其效果来运作,而是依靠其内部规则来确保修复方案在应用之前在结构上是稳健的。
研究人员在包括 Django 和 Scikit-Learn 在内的四个不同软件生态系统中评估了该系统。这八个成功的修复涵盖了各种问题,从修复数据库迁移工具中的崩溃到纠正数据分析库中的数学错误。在一个案例中,系统修复了一个程序在特定设置缺失时会崩溃的问题;模型正确识别出代码需要在尝试使用该设置之前先检查其是否存在。在另一个案例中,它修复了一个程序会意外修改本应保持不变的数据的问题。研究人员对每一个成功的修复都进行了人工检查,以确认逻辑的正确性,并确保解决方案并非仅仅是运气好猜中了。
研究人员承认,他们的系统并不是解决所有软件漏洞的终极方案。模型在处理需要跨多个不同文件进行深度推理,或涉及超出其训练范围的抽象概念的极复杂问题时仍然表现挣扎。然而,这项研究为小型开源模型所能达到的高度建立了一个新的基准。它表明,通过将一个功能强大但规模适中的计算机模型与一个执行严格标准的刚性规则系统相结合,可以在不依赖于当前最先进系统所带来的巨大成本的情况下,实现可靠的结果。这项工作表明,自动化修复的未来可能并不取决于让模型变得无限庞大,而在于构建更好的系统来引导它们并捕捉它们的错误。
这项研究为使自动化软件修复变得触手可及且负担得起提供了一条清晰的路径。通过证明一个系统可以以零成本和高效率修复真实的漏洞,该研究挑战了“只有最昂贵、最强大的模型才能胜任此项工作”的观点。这种“双脑方法”的成功凸显了将编写代码的创造性任务与确保其遵循规则的机械性任务相分离的价值。随着自动化修复领域不断演进,这项工作提供了一个实际的范例,展示了如何平衡智能与纪律,从而确保我们用来修复软件的工具本身也是稳健、可靠且高效的。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。