微软研究:AI 编程助手软件调试能力堪忧
GoodNav 4 月 13 日报道,OpenAI、Anthropic 等领先的人工智能实验室的AI模型正越来越多地被用于辅助编程任务。谷歌首席执行官桑达尔·皮查伊去年 10 月透露,该公司 25% 的新代码是由 AI 创建的。而 Meta 首席执行官马克·扎克伯格也表达了在内部广泛应用 AI 编码模型的雄心。
尽管目前有一些先进的 AI 模型,但在处理软件漏洞方面,它们仍然无法与经验丰富的开发者相提并论。微软研究院(微软的研发部门)的一项新研究显示,包括 Anthropic 的 Claude 3.7 Sonnet 和 OpenAI 的 o3-mini 等多款模型在名为 SWE-bench Lite 的软件开发基准测试中,未能调试出许多问题。
研究团队测试了多达九种不同的模型,这些模型作为“基于单个提示词的智能体”核心,能够使用包括 Python 调试器在内的多种调试工具。他们为这个智能体指定了一组精心筛选的 300 项软件调试任务,这些任务均源自 SWE-bench Lite。
据研究共同作者们介绍,即使使用更强大和先进的模型,他们的智能体成功完成的调试任务也很少超过一半。其中,Claude 3.7 Sonnet 的平均成功率最高,达到 48.4%;其次是 OpenAI 的 o1,成功率为 30.2%;而 o3-mini 的成功率仅为 22.1%。
为什么这些 AI 模型的表现不尽如人意?一些模型在使用可用的调试工具和理解不同工具如何帮助解决各类问题上存在障碍。不过,共同作者们认为,更大的问题在于数据的稀缺。他们推测,当前模型的训练数据中,缺乏足够的“顺序决策过程”数据,即人类调试痕迹的数据。
“我们坚信,通过训练或微调这些模型,可以让它们成为更好的交互式调试器。”研究共同作者们在报告中指出,“但是,这需要专门的数据来满足这种模型培训的需求,例如记录智能体与调试器之间的交互,以收集必要的信息,并随后提出漏洞修复建议的轨迹数据。”
这一发现并不令人意外,许多研究表明,生成代码的 AI 往往会引入安全漏洞和错误,这是因为它们在理解编程逻辑等领域存在的弱点。最近对一款流行 AI 编程工具 Devin 的评估发现,它只能在20项编程测试中完成3项。
尽管如此,微软的这项研究至今是对模型在这一持续存在问题领域进行的最详细分析之一。尽管可能不会削弱投资者对 AI 辅助编程工具的热情,但希望能使开发者及其管理层慎重考虑,不再轻易将编程工作完全交给 AI 主导。
值得注意的是,越来越多的科技领袖对 AI 会取代编程工作的说法提出了质疑。微软联合创始人比尔·盖茨曾表示,他认为编程作为职业将长期存在。与他持相同观点的还有 Replit 首席执行官阿姆贾德·马萨德、Okta 首席执行官托德·麦金农以及 IBM 首席执行官阿尔温德·克里希纳。