微软宣布推出一种可以提高大型语言模型性能的新工具 Jigsaw。“大型的预训练语言模型(如 GPT-3、Codex 等),可以被调整为从程序员意图的自然语言规范中生成代码。这种自动化模型有可能提高世界上每个程序员的生产力;但是,由于这些模型可能难以理解程序语义,因此所生成的代码的质量不能得到保证。”
根据介绍,Jigsaw 部署了理解程序语法和语义的后处理技术,然后利用用户反馈来提高未来的性能;该工具旨在使用多模式输入为 Python Pandas API 合成代码。Pandas 是数据科学中广泛使用的 API,具有数百个用于 manipulating dataframes 或具有行和列的表的函数。
微软方面称,其经验表明,随着这些大型语言模型演变为根据意图合成代码,Jigsaw 可以在提高系统准确性方面发挥重要作用。
像 OpenAI 的 Codex 这样的大型语言模型正在重新定义编程领域。软件开发人员在解决编程任务时,可以为预期的代码片段提供英文描述,Codex 可以用 Python 或 JavaScript 等语言合成预期的代码。但合成的代码可能不正确,甚至可能无法编译或运行。Codex 用户有责任在使用代码之前对其进行审查。Jigsaw 团队解释称,通过 Project Jigsaw,其目标是使部分审查自动化,以提高使用 Codex 等大型语言模型进行代码合成的开发人员的生产力。
微软认为拼图可以“完全自动化”检查代码是否编译,处理错误信息以及测试代码是否产生开发人员希望输出的内容的整个过程 "拼图将预期代码的英文描述以及I/O实例作为输入。通过这种方式,它将输入与相关的输出配对;并提供质量保证,即输出的Python代码将在提供的输入上编译并产生预期的输出。”
在其2022年 ICSE论文拼图:大型语言模型满足程序合成中,微软方面在Python熊猫上评估了这种方法。使用拼图,用户可以提供对预期转换的英文描述,输入dataframe和相应的输出dataframe,然后让拼图合成预期代码。
拼图获取英语查询并使用适当的上下文对其进行预处理,以构建可以馈送到大型语言模型的输入。 微软在实验中发现,拼图可以在30%的时间内创建正确的输出。如果代码失败,那么修复过程在后处理阶段开始。
在后处理过程中,拼图应用了三种变换来修复代码。这些转变中的每一个都是由他们在GPT-3和法典中观察到的故障模式所激发的。而GPT-3和法典失败的方式都类似,因此拼图解决这些失败模式的后处理对两者都很有用。
微软在各种数据集上评估了法典和拼图(法典),并测量了准确率.Codex给出了约30%的开箱即用的准确性,拼图则将准确率提高到60%以上,通过用户反馈,准确率可提高到80%以上。接下来,他们将继续致力于完善拼图,努力将熊猫在Python API上的经验推广到其他API和其他语言上;在通过自动化提高程序员生产力方面发挥重要作用。
更多详情可查看官方博客。
0 留言