微软的新工具准确率高达80%。“可以调整大型预训练语言模型(如GPT-3、Codex等),以根据程序员预期的自然语言规范生成代码。这种自动化模型有可能提高世界上每个程序员的生产力;但是,由于这些模型可能难以理解程序语义,因此无法保证生成代码的质量。”据介绍,Jigsaw部署了理解程序语法和语义的后处理技术,然后利用用户反馈来改进未来的性能;该工具旨在使用多模式输入为PythonPandasAPI合成代码。数据科学,具有数百个用于操纵数据框或具有行和列的表格的功能。微软表示,其经验表明,随着这些大型语言模型发展为基于意图合成代码,Jigsaw可以在提高系统准确性方面发挥重要作用。像OpenAI的Codex这样的大型语言模型正在重新定义编程领域,软件开发者在解决编程任务时,可以为预期的代码片段提供英文描述,而Codex可以用Python或JavaScript等语言合成预期的代码。但是合成代码可能不正确,甚至可能无法编译或运行。Codex用户负责审查使用前的代码。Jigsaw团队解释说,ProjectJigsaw的目标是使一些审查自动化,以提高使用Codex等大型语言模型进行代码合成的开发人员的工作效率。微软认为,Jigsaw可以“完全自动化”检查代码编译、处理错误消息以及测试代码生成开发人员预期输出的整个过程。“Jigsaw将预期代码的英文描述以及I/O实例作为输入。通过这种方式,它将输入与相关输出配对;并提供质量保证,即输出Python代码将在提供的输入和产生预期的输出。”在其ICSE2022论文Jigsaw:LargeLanguageModelsmeetProgramSynthesis中,Microsoft在PythonPandas上评估了这种方法。使用Jigsaw,用户提供所需转换的英文描述、输入数据帧和相应的输出数据帧,然后让Jigsaw合成所需代码。Jigsaw采用英语查询并使用适当的上下文对其进行预处理,以构建可提供给大型语言模型的输入。微软在实验中发现,Jigsaw可以在30%的时间内创建正确的输出。如果代码失败,则修复过程从后处理阶段开始。在后处理期间,Jigsaw应用三个转换来修复代码。这些转变中的每一个都是由他们在GPT-3和Codex中观察到的失败模式推动的。GPT-3和Codex都以类似的方式失败,因此Jigsaw解决这些失败模式的后处理对两者都有用。Microsoft在各种数据集和测量精度上评估了Codex和Jigsaw(使用Codex)。Codex提供了大约30%的开箱即用准确率,Jigsaw将准确率提高到60%以上;通过用户反馈,准确率可以提高到80%以上。接下来,他们将继续完善Jigsaw,努力将PythonPandasAPI上的经验推广到其他API和其他语言;通过自动化在提高程序员生产力方面发挥着重要作用。更多详情请查看官方博客:https://www.microsoft.com/en-us/research/blog/jigsaw-fixes-bugs-in-machine-written-software/编程,然后让AI学会codereview,现在准确率已经达到了80%。有网友表示:程序员,同根同源,何必纠缠不清。
