大型语言模型和人工智能代码生成器的兴起( 四 )


大型语言模型和人工智能代码生成器的兴起

文章插图
图4
Bard生成了一个正确的Go语言函数 , 一个使用该函数的示例 , 以及对该函数的解释 , 所有这些都来自“编写一个Go函数以返回当前日期和时间”的提示 。注意复制函数和测试代码的图标
Bard不仅编写了这个函数 , 还解释了这个函数 , 并生成了一个调用函数的例子 。
CodeT5
CodeT5是Salesforce AI Research的2021代码特定的统一预训练编码器-解码器转换器模型 。它基于2020年谷歌T5模型架构 , 并对CodeSearc.NET数据集和BigQuery的一些C/C#代码进行了微调 。CodeT5的官方PyTorch实现位于GitHub上 , 在Hugging Face上有两个检查点 , 在GitHubREADME中有链接 。
GitHub Copilot
当Heller在2021年11月审查GitHub Copilot的预发布版本时 , 他发现 , 虽然它并不总是生成良好的、正确的、甚至运行的代码 , 但它仍然有些有用 。Copilot基于OpenAI Codex , 而OpenAI Codex又基于GPT-3 , GPT-3经过微调 , 可以在5400万个开源GitHub存储库上生成代码 。GitHub Copilot目前的费用是每月10美元或每年100美元 , 除非用户有资格获得免费版本 。
Heller喜欢Copilot在Visual Studio Code中的工作方式 。基本上 , 必须编写函数的第一行 , 或者描述函数的注释 , 然后Copilot将生成多达10个版本的函数 , 可以按原样使用 , 编辑或不使用 。正如Heller在上面所指出的 , 应该对Copilot生成的任何代码持保留态度 , 因为它确实容易产生幻觉 , 例如在下面的示例中第8行和第9行的代码注释中 。
大型语言模型和人工智能代码生成器的兴起

文章插图
图5
代码由GitHub Copilot制作 。通过输入行首和一堆制表符 , 生成了第8行和第9行 。Heller输入了第10行和第11行的开头 , Copilot完成了第11行 。注意 , 第8行和第9行中生成的关于预期结果值的不正确注释
GitHub Copilot X
目前处于技术预览阶段的GitHub Copilot X基于GPT-4 。它通过聊天和终端界面、生成单元测试的能力、生成拉取请求描述的能力以及从文档中提取解释的能力“升级”了原始的Copilot 。
GitHub Copilot X比原来的GitHub Copilot有了很大的改进 , 有时可以在没有太多人工帮助的情况下生成正确的函数和一组测试 。它仍然会犯错误和产生幻觉 , 但远不如它的前身那么多 。作为参考 , 以下是Heller写的原始Copilot 。
大型语言模型和人工智能代码生成器的兴起

文章插图
图6
Heller能够让GitHub Copilot X生成大部分正确的函数和良好的参数化测试集 , 只需在顶部输入注释并按Enter和Tab四到五次
IntelliSense和IntelliCode
Microsoft IntelliSense是Visual Studio和Visual Studio代码的内置功能 , 它使用语言语义为短代码完成提供一个选项菜单 。它通常能很好地帮助用户找到所需的API或方法调用 , 但往往会提供许多选择 。
IntelliCode是IntelliSense的一个增强插件 , 它使用在本地机器上运行的人工智能来检测代码场景——包括变量名、函数和正在编写的代码类型 , 并提供最好的建议 , 在某些情况下可提供整行补全 。IntelliCode还可以帮助用户清理重复的代码 , 并为常见的编程任务推荐快速操作 。
IntelliCode在Visual Studio 2022中与C#、C++、Java、SQL和XAML配合使用 , 在Visual Studio代码中与TypeScript、JavaScript和Python配合使用 。
Kite
Kite是2014年至2021年使用人工智能帮助开发者编写代码的早期尝试 。尽管它吸引了50多万名开发者 , 但却从未创造任何收益 。Kiteco存储库包含其大部分源代码 , 但有一些私有位已被XXXXX取代 , 因此一些代码无法运行 。
PolyCoder
PolyCoder是卡内基梅隆大学用于代码生成的2022,27亿个参数的开源大型语言模型(见论文) 。它基于GPT-2模型架构 , 并在12种编程语言的249GB代码上进行了训练 。在C编程语言中 , PolyCoder优于包括Codex在内的所有模型 。
Replit Ghostwriter
Replit Ghostwriter于2022年万圣节发布 , 提供五种功能:代码完成、代码解释、代码转换、代码生成以胶带调试的错误检测 , 每月10美元(或多或少 , 取决于用户使用的“周期”数量) 。它与Replit在线编辑器集成 , 支持Python、Ruby、JavaScript、TypeScript、html、css、Go、Lisp、Haskell、Bash、C、C++、Rust、Java和JSON 。


推荐阅读