PolyCoder,一种开源代码生成人工智能,其性能可能优于 Codex 

作者:@Laurent - Fotolia.com

目前,我们已经开始看到越来越多利用人工智能(AI)进行代码生成的解决方案涌现,自然语言处理 (NLP) 领域为各种编程语言中的一系列代码生成 AI 铺平了道路。

其中,我们可以重点介绍 GitHub Copilot、AlphaCode 和 Codex,现在我们还可以添加卡内基梅隆大学研究人员最近提出的新解决方案“PolyCoder”,这是一个基于 OpenAI 的 GPT-2 语言模型的代码生成器,该模型在一个包含 12 种编程语言的 249 GB 代码数据库上进行了训练。

关于 PolyCoder

PolyCoder 的作者声称,它能够比任何已知模型(包括 Codex)更准确地编写 C 代码。

这种能够根据提示用不同编程语言编写源代码的代码生成人工智能,有望降低软件开发成本,同时让开发人员专注于创造性和重复性较低的任务。

PolyCoder 使用来自多个 GitHub 存储库的数据进行训练,涵盖 12 种流行的编程语言:C、C#、C++、Go、Java、JavaScript、PHP、Python、Ruby、Rust、Scala 和 TypeScript。

未经筛选的数据集总计 631 GB 数据,包含 38,9 万个文件。研究团队表示,由于预算限制,他们选择使用 GPT-2 模型训练 PolyCoder。PolyCoder 以开源形式提供,研究人员希望它能够推动人工智能代码生成领域的研究民主化,该领域目前一直由资金雄厚的公司主导。

研究人员认为,PolyCoder在生成 C 语言代码方面优于其他模型。然而,Codex 在其他语言中一直表现更佳。“PolyCoder 在 C 语言方面的性能显著优于 Codex 和所有其他模型。”

“当 Copilot 去年夏天在 GitHub 上出现时,很明显这些非常大的语言代码模型在帮助开发人员和提高他们的生产力方面非常有用。 但甚至没有接近这种规模的模型是公开可用的,”研究人员通过电子邮件告诉 VentureBeat。 “所以 [PolyCoder] 从 Vincent 开始,试图找出可以在我们的实验室服务器上训练的最大模型是什么,最终有 2700 亿个参数……而且该模型领先于我们拥有的其他面向代码的模型.当时是公开的。”

他们指出:“仅比较开源模型时,PolyCoder 在 C、JavaScript、Rust、Scala 和 TypeScript 语言中均优于规模相近的 GPT-Neo 2.7B 模型。”卡内基梅隆大学的研究人员补充道:“在其他 11 种语言中,所有其他开源模型,包括我们自己的模型,都明显逊于 Codex(困惑度更高)。”

有了这个,PolyCoder 被定位为一个非常有趣的解决方案,因为虽然 Elon Musk 的 OpenAI 和 Alphabet 的 DeepMind 等研究实验室已经开发出强大的代码生成 AI,但许多最成功的系统都没有开源。 低收入公司无法使用它,这种情况限制了他们在该领域的研究。

例如,为 GitHub 的 Copilot 功能提供支持的 OpenAI Codex 的训练数据尚未公开,这阻碍了研究人员改进 AI 模型或研究其某些方面,例如互操作性。

“大型科技公司没有公开发布他们的模型,这确实阻碍了科学研究和这种大型语言代码模型的民主化,”研究人员说。 “在某种程度上,我们希望我们的开源努力能够说服其他人也这样做。 但总体而言,社区应该能够自行训练这些模型。 我们的模型突破了你可以在单个服务器上训练的极限——任何更大的东西都需要一个服务器池,这大大增加了成本。”

最后,如果您有兴趣了解更多相关信息,可以点击以下链接查看详情。


在 Google 中将其添加为首选来源