来自OpenAI(OpenAI)、Anthropic(Anthropic)等顶级人工智能实验室的AI模型正日益被用于辅助编程任务。谷歌(Google)首席执行官桑达尔·皮查伊(Sundar Pichai)去年10月表示,该公司25%的新代码由AI生成;而Meta(Meta)首席执行官马克·扎克伯格(Mark Zuckerberg)也表达了在这家社交媒体巨头内部广泛部署AI编程模型的雄心。
但即便是目前最先进的模型,在应对资深开发者都能轻松解决的软件漏洞时,仍然显得力不从心。微软(Microsoft)研发部门微软研究院(Microsoft Research)的最新研究表明,包括Anthropic的Claude 3.7 Sonnet和OpenAI的o3-mini在内的模型,在名为SWE-bench Lite的软件开发基准测试中,均无法修复大量问题。这些结果清醒地提醒我们:尽管OpenAI等公司高调宣称AI的进步,但在编程等专业领域,AI仍然无法与人类专家匹敌。
该研究的合著者测试了九种不同模型作为“基于单一提示的代理”的核心,该代理配备了包括Python调试器在内的多种调试工具。研究人员让这个代理完成从SWE-bench Lite中精选的300个软件调试任务。
据合著者称,即使配备了更强大、更新的模型,他们的代理成功完成的调试任务也很少超过半数。Claude 3.7 Sonnet的平均成功率最高(48.4%),其次是OpenAI的o1(30.2%)和o3-mini(22.1%)。
为何表现如此不尽如人意?一些模型难以有效使用现有的调试工具,也不理解不同工具如何针对不同问题发挥作用。但合著者指出,更根本的问题在于数据匮乏。他们推测,现有模型的训练数据中缺乏足够体现“序列决策过程”(即人类调试轨迹)的数据。
“我们坚信,通过对模型进行训练或微调,可以提升其交互式调试能力,”研究人员在论文中写道,“但这需要专门的数据支持,例如记录代理与调试器交互以收集必要信息,最终提出修复方案的轨迹数据。”
这些发现其实并不令人意外。多项研究表明,由于在理解编程逻辑等方面的缺陷,代码生成AI往往会引入安全漏洞和错误。近期对热门AI编程工具Devin的评估显示,它仅能完成20项编程测试中的3项。
但微软这项研究是对模型这一长期短板最详尽的审视之一。虽然它可能不会减弱投资者对AI辅助编程工具的热情,但幸运的话,至少能让开发人员及其管理者在完全依赖AI主导编程工作时三思而行。
值得一提的是,越来越多科技领袖对“AI将取代编程岗位”的说法提出质疑。微软联合创始人比尔·盖茨(Bill Gates)认为编程作为一种职业不会消失。Replit首席执行官阿姆贾德·马萨德(Amjad Masad)、Okta首席执行官托德·麦金农(Todd McKinnon)和IBM首席执行官阿尔温德·克里希纳(Arvind Krishna)也持相同观点。