微软推出 AI 代码审查工具,可将准确率提升至 >80%
2022-04-13 10:55:01   来源:51cto   评论:0 点击:

  微软宣布推出一种可以提高大型语言模型性能的新工具 Jigsaw。“大型的预训练语言模型(如 GPT-3、Codex 等),可以被调整为从程序员意图的自然语言规范中生成代码。这种自动化模型有可能提高世界上每个程序员的生产力;但是,由于这些模型可能难以理解程序语义,因此所生成的代码的质量不能得到保证。”

  根据介绍,Jigsaw 部署了理解程序语法和语义的后处理技术,然后利用用户反馈来提高未来的性能;该工具旨在使用多模式输入为 Python Pandas API 合成代码。Pandas 是数据科学中广泛使用的 API,具有数百个用于 manipulating dataframes 或具有行和列的表的函数。

  微软方面称,其经验表明,随着这些大型语言模型演变为根据意图合成代码,Jigsaw 可以在提高系统准确性方面发挥重要作用。

  像 OpenAI 的 Codex 这样的大型语言模型正在重新定义编程领域。软件开发人员在解决编程任务时,可以为预期的代码片段提供英文描述,Codex 可以用 Python 或 JavaScript 等语言合成预期的代码。但合成的代码可能不正确,甚至可能无法编译或运行。Codex 用户有责任在使用代码之前对其进行审查。Jigsaw 团队解释称,通过 Project Jigsaw,其目标是使部分审查自动化,以提高使用 Codex 等大型语言模型进行代码合成的开发人员的生产力。

  微软认为 Jigsaw 可以“完全自动化”检查代码是否编译、处理错误信息以及测试代码是否产生开发人员希望输出的内容的整个过程。“Jigsaw 将预期代码的英文描述以及 I/O 实例作为输入。通过这种方式,它将输入与相关的输出配对;并提供质量保证,即输出的 Python 代码将在提供的输入上编译并产生预期的输出。”

  在其 ICSE 2022 论文 Jigsaw:Large Language Models meet Program Synthesis 中,微软方面在 Python Pandas 上评估了这种方法。使用 Jigsaw,用户可以提供对预期转换的英文描述、input dataframe 和相应的 output dataframe,然后让 Jigsaw 合成预期代码。

  Jigsaw 获取英语查询并使用适当的上下文对其进行预处理,以构建可以馈送到大型语言模型的输入。微软在实验中发现,Jigsaw 可以在 30% 的时间内创建正确的输出。如果代码失败,那么修复过程在后处理阶段开始。

  在后处理过程中,Jigsaw 应用了三种变换来修复代码。这些转变中的每一个都是由他们在 GPT-3 和 Codex 中观察到的故障模式所激发的。而 GPT-3 和 Codex 失败的方式都类似,因此 Jigsaw 解决这些失败模式的后处理对两者都很有用。

  微软在各种数据集上评估了 Codex 和 Jigsaw (with Codex),并测量了准确率。Codex 给出了约 30% 的开箱即用的准确性,Jigsaw 则将准确率提高到 60% 以上;通过用户反馈,准确率可提高到 80% 以上。接下来,他们将继续致力于完善 Jigsaw,努力将在 Python Pandas API 上的经验推广到其他 API 和其他语言上;在通过自动化提高程序员生产力方面发挥重要作用。

相关热词搜索:人工智能

上一篇:如何通向“广义人工智能”?LSTM 提出者之一Sepp Hochreiter:将符号 AI 与神经 AI 相结合
下一篇:可信人工智能总体框架

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
分享到: 收藏