用GPT-2训练的AI代码生成模型PolyCoder开源,C语言写得尤其好,但Python不行

新知榜官方账号

2023-11-23 02:23:15

背景

AI写代码可以说是大火,其中最著名的要属OpenAI的Codex和DeepMind的AlphaCode。然而,这两个AI模型,全都没有开源:其中AlphaCode只给出了一些测试样例,而Codex只开放了API。为此,来自CMU的几个研究人员,用GPT-2搞出了一个名叫PolyCoder的AI代码生成模型,而且还是开源的。

训练数据集

PolyCoder采用了多种编程语言代码集来训练,一共有12种:C、C#、C++、Go、Java、JavaScript、PHP、Python、Ruby、Rust、Scala和TypeScript。其中,C语言的代码量是最多的,达到了221GB;而Python代码的数据量比Codex和CodeParrot用得都要少。这里PolyCoder用的是GitHub上的公开代码,主要选取的是各种编程语言中比较受欢迎的库,每个库至少有50Stars。据研究人员表示,每种编程语言库的Stars总数加起来不超过25k,以避免模型生成的代码效果太过于倾斜。

预训练方法

语言模型的预训练方法通常有三种。这里PolyCoder主要采用的是自左向右的语言模型,根据上文预测下文,比较适用于代码生成等。

训练结果

PolyCoder在C语言中意外取得了最好的效果。用大量C语言训练PolyCoder的结果说明,即使模型整体原理不变(基于GPT-2),单纯改变训练用的代码集,也能训练出擅长不同语言风格的AI代码生成模型。但从其他语言来看,生成的效果就完全没办法和Codex相比了。

结论

作者们提到,做出PolyCoder的目的主要还是为了开源一个AI代码生成模型,让更多人参与研究和使用。目前代码已经开源,无论是直接拿来用,还是试着在它的基础上开发新模型都可以。

项目地址:https://github.com/VHellendoorn/Code-LMs

论文地址:https://arxiv.org/abs/2202.13169

本页网址:https://www.xinzhibang.net/article_detail-20867.html

寻求报道,请 点击这里 微信扫码咨询

关键词

AI代码生成模型 GPT-2 PolyCoder C语言 Python 开源

分享至微信: 微信扫码阅读

相关文章