自从GPT-3和Codex模型发布以来,智能写代码的工具层出不穷,国外的GitHub Copilot、TabNine,国内的阿里云Cosy等工具,在不同的使用场景下都算是比较好用的编码工具。
其中GitHub Copilot所使用的的GPT-3和Codex模型最近又进一步升级了,老版模型只能在现有内容的结尾处,根据文本的上文语义追加后文的文字。但是在日常工作中,无论是写文档还是编写代码,写作不仅仅只是追加后文,它是一个反复迭代的过程,编辑已有的文本是一项非常频繁的操作。近期,OpenAI宣布GPT-3和Codex现在不仅能生成追加的文本内容,而且还能通过编辑及插入的方式修改已有的文本内容。
插入文本插入的新特性能根据现有文本的上下文,在文本中间添加符合语义的文本内容。OpenAI为深度学习模型增强了对文本上下文信息的学习,而老版的模型只能学习到上文信息,这种方式可以在编写长篇文章、段落过渡、遵循大纲等应用场景下,提高文本的编写质量。
在上图的演示中,我们期望在两个章节的标题之间添加文字。如果没有下一节的文本内容,模型会生成一个与第二节无关的文字内容,从而影响整个文章的连续性。当模型能感知下一章节的文本内容时,该模型就会将两个章节的文本语义联系在一起去影响文本的生成结果。
文本插入对于编写代码的场景比较实用。因为在日常的软件开发中,开发者通常会在现有代码文件的中间添加代码,比如修改一段业务代码、写完代码之后再写注释等。在上图的示例中,该模型正确地生成了缺失的prune函数。该示例还添加了一个代码注释以及缺失的库导入,如果模型不知道代码的下文信息,是不可能做到的。
编辑文本编写文本和代码在日常写作以及编码开发时都是比较常见的场景。
编辑特性需要指定一个文本作为模型输入的提示,并且告诉模型如何修改它。编辑特性可用于改变文本的语气或结构,或进行有针对性的修改,如修正拼写、格式化等。在上图的例子中,我们尝试了以下编辑操作:(1)生成一首诗,(2)把诗句改成第一人称,(3)把诗变成一封信,并且加上适当的敬语和签名。我们能看到GPT-3很好的完成了对应的指令。
编辑特性同样也适用于编写代码的场景。它对代码重构、添加代码注释、编程语言之间的翻译以及修改编码风格等任务非常有效。上面的例子中,最开始将一个包含按人口排名的城市列表JSON作为输入。通过我们的第一次编辑,Codex从JSON中删除了排名字段,并将州的缩写改为全名。第二次编辑将JSON文件转换为从一个函数返回的YAML格式。
引用资料
https://openai.com/blog/gpt-3-edit-insert/https://beta.openai.com/playground相关文章
猜你喜欢