会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

萧箫 发自 凹非寺
量子位 | 公众号 QbitAI

Codex还会写C语言的AI代码生成模型,现在开源了!

这段时间,用AI写代码可以说是大火,其中最著名的要属OpenAI的Codex和DeepMind的AlphaCode。

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

△基于Codex的Copilot

然而,这两个AI模型,全都没有开源:

其中AlphaCode只给出了一些测试样例,而Codex只开放了API。

为此,来自CMU的几个研究人员,用GPT-2搞出了一个名叫PolyCoder的AI代码生成模型,而且还是开源的

据研究人员表示,虽然PolyCoder最大只有27亿参数(相比Codex有120亿参数),但它用C语言写出来的代码,比Codex的效果还要好。

这里面究竟有什么秘诀?

用12种编程语言代码集训练

首先来看训练用的数据集,这也是PolyCoder的最大特点之一。

此前,包括Codex、CodeParrot等AI代码生成模型,主要都是基于Python语言的代码来训练。

例如Codex的评估数据集之一HumanEval,评估的也是生成Python代码的效果。

相比之下,PolyCoder采用了多种编程语言代码集来训练,一共有12种:

C、C#、C 、Go、Java、JavaScript、PHP、Python、Ruby、Rust、ScalaTypeScript

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

其中,C语言的代码量是最多的,达到了221GB;而Python代码的数据量比Codex和CodeParrot用得都要少。

这里PolyCoder用的是GitHub上的公开代码,主要选取的是各种编程语言中比较受欢迎的库,每个库至少有50 Stars。

据研究人员表示,每种编程语言库的Stars总数加起来不超过25k,以避免模型生成的代码效果太过于倾斜最流行的编程语言(通常编程语言越流行,库的Stars就越多)

通过提取库中的文件、经过简单处理(包括消除重复代码)后,一共筛选出大约254GB的数据用于训练。

然后是预训练的方法。

语言模型的预训练方法通常有三种。

第一种是自左向右的语言模型,根据上文预测下文,比较适用于代码生成等;第二种是掩蔽语言模型,基于上下文预测屏蔽片段,比较适合代码分类等;第三种是编解码器模型,比较适用于代码注释等任务。

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

这里PolyCoder主要采用的是第一种预训练方法。

相比于同样采用GPT-2训练的CodeParrot和Codex,PolyCoder在超参数设置上也稍微有一些差异:

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

PolyCoder一共提供了三种不同的模型,分别有27亿参数、4亿参数和1.6亿参数,研究人员可以根据自身需求和不同的训练能力来选取合适的模型。

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

那么,最终训练出来的AI模型,代码生成效果如何?

C语言写得尤其好,但Python不行

研究人员将PolyCoder与已有的AI代码生成模型进行了对比。

由于AlphaCode不好比较(接口没开放),所以研究人员主要分析了下面这些模型,包括GPT-Neo、CodeParrot和Codex等。

其中蓝色的是开源的,橙色的是没开源的:

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

从参数量来看,PolyCoder并不是最顶尖的,最大的27亿参数模型也只有Codex的四分之一不到。

研究人员先是用语言模型评估常用的困惑度对一系列模型进行了比较。

困惑度(Perplexity),用于衡量语言模型(LM)的好坏。困惑度越低,语言模型面对代码感到困惑的程度就越低,模型生成效果越好。

从图中来看,PolyCoder在C语言中意外取得了最好的效果(困惑度最低)

用大量C语言训练PolyCoder的结果说明,即使模型整体原理不变(基于GPT-2),单纯改变训练用的代码集,也能训练出擅长不同语言风格的AI代码生成模型。

可惜的是,从其他语言来看,生成的效果就完全没办法和Codex相比了:

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

例如,在主要用于评估Python代码的HumanEval上,PolyCoder的能力远不如Codex好:

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

据论文分析,这可能是Python代码数据量、模型参数量不足等原因导致的。

此外,作者们也提到,做出PolyCoder的目的主要还是为了开源一个AI代码生成模型,让更多人参与研究和使用。

目前代码已经开源,无论是直接拿来用,还是试着在它的基础上开发新模型都可以。

感兴趣的小伙伴可以上手一试了~

作者介绍

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

一作许方正(Frank Xu),目前在CMU读博,研究方向是NLP、信息抽取等,发表过多篇顶会论文,包括ICLR、ACL和EMNLP等。本硕毕业于上海交通大学,师从朱其立教授。

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

Uri Alon,在CMU进行博士后工作,研究方向是编程语言处理PLP、NLP和深度学习。

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

Graham Neubig,CMU助理教授,研究方向是NLP、机器翻译和基于机器学习的自然语言理解。

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU(c语言写代码的软件)

Vincent J. Hellendoorn,CMU计算机助理教授,主要研究方向是软件工程和机器学习,致力于利用智能方法帮助软件开发人员减少代码调试、程序优化等繁琐工作的时间。

不知道作者们是否已经在用这个AI撸代码了(手动狗头)

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

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

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年12月29日 上午8:05
下一篇 2023年12月29日 上午8:17

相关推荐

  • 安卓类似于巨魔商店的软件

    安卓类似于巨魔商店的软件 近年来,随着安卓系统的普及,越来越多的应用程序开始在安卓系统中出现。其中,有一些应用程序非常受欢迎,因为它们提供了许多有用的功能,并且用户体验非常好。今天…

    科研百科 2025年1月4日
    1
  • 除了OA以外,只用点击按钮就能实现协同办公,靠一个工具就能实现

    OA不同时期,不同功能 OA是办公自动化系统,与互联网技术的发展有着密切的联系。 很多办公场景都离不开OA协同系统。OA是办公系统,借助与互联网的交互性,开创出的一种新型的办公方式…

    科研百科 2023年12月6日
    100
  • 社会工作部三定方案

    社会工作部三定方案 社会工作部三定方案是指针对社会工作部门的组织结构,职责, and 工作规划的一套方案。三定方案的目的是使社会工作部门能够更好地服务于社会,提高其工作效率和质量。…

    科研百科 2024年10月2日
    104
  • 加强党建活动经费监管

    加强党建活动经费监管 近年来,随着中国共产党(共产党)的执政地位不断提升,党建活动经费在党组织中的重要性也越来越受到重视。然而,在党建活动的开展中,经费监管问题也越来越受到关注。加…

    科研百科 2024年11月14日
    1
  • 县政协副主任和县局长哪个好

    在县政协和县局长这两个职位上,哪一个更适合您,取决于您的个人情况和职业目标。 县政协是一个政治协商机构,由全县的政协委员组成。作为县政协副主任,您有机会参与政治协商会议,为全县的发…

    科研百科 2024年10月5日
    40
  • 客户关系

    客户关系管理是一种重要的商业技能,可以帮助企业建立长期稳定的客户关系,提高客户满意度,减少客户流失率,并增加销售额和利润。本文将介绍客户关系管理的重要性,以及如何建立一个有效的客户…

    科研百科 2024年8月27日
    28
  • Windows下鸿蒙OS应用开发环境搭建全过程(鸿蒙系统开发环境 搭建)

    据说所知,有很多华粉对鸿蒙OS开发很感兴趣,他们都注册了华为开发者账号。当然,也仅仅是注册。今天,就让我一个新手,来带大家在Windows上一步步搭建鸿蒙版应用的开发环境。 之所以…

    科研百科 2023年3月20日
    588
  • 常州符合条件的业委会今年年底全部组建党组织(常州业委会成立的条件程序)

    扬子晚报网7月9日讯(通讯员 杨皓 记者 马奔)近日,常州全市党建引领物业管理工作推进会在行政中心召开。常州将全面推进党建引领业委会和物业企业建设,充分发挥党的政治优势和组织优势,…

    科研百科 2023年10月15日
    120
  • 剑桥大学硕士博士申请(2)——高级计算机科学硕士(剑桥大学高级研究员)

    剑桥大学硕士博士申请 高级计算机科学硕士 9个月全日制 计算机科学与技术系 该课程的目的是为从事计算机科学的博士课程提供适当的准备。学生从计算机科学中广泛的高级主题中选择五个教学模…

    科研百科 2024年4月20日
    130
  • 某大型集团管控制度流程交付版方案

    某大型集团管控制度流程交付版方案 随着公司业务的不断增长,某大型集团需要更高效、更科学的管控模式来支持公司的运营和发展。为此,我们提出了一套新的集团管控制度流程交付版方案,旨在为公…

    科研百科 2024年10月29日
    0