外链论坛

 找回密码
 立即注册
搜索
查看: 65|回复: 8

会写代码的AI开源!C语言比Codex写得好,把握12种编程语言丨CMU

[复制链接]

2979

主题

3万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569190
发表于 2024-8-17 15:37:18 | 显示全部楼层 |阅读模式

萧箫 发自 凹非寺

量子位 | 公众号 QbitAI

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

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

△基于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、Scala和TypeScript。

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

这儿PolyCoder用的是GitHub上的公开代码,重点选择的是各样编程语言中比较受欢迎的库,每一个最少有50 Stars。

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

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

而后预训练办法

语言模型的预训练办法一般有三种。

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

这儿PolyCoder重点采用的是第1种预训练办法

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

PolyCoder一共供给了三种区别的模型,分别有27亿参数、4亿参数和1.6亿参数,科研人员能够按照自己需求和区别的训练能力来选择合适的模型。

那样最后训练出来的AI模型,代码生成效果怎样

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

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

因为AlphaCode欠好比较(接口没开放)因此科研人员重点分析了下面这些模型,包含GPT-Neo、CodeParrot和Codex等。

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

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

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

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

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

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

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

例如,在重点用于评定Python代码的HumanEval上,PolyCoder的能力远不如Codex好:

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

另外,作者们说到,做出PolyCoder的目的重点还是为了开源一个AI代码生成模型,让更加多人参与科研运用

日前代码已然开源,无论是直接拿来用,还是试着在它的基本研发新模型都能够

感兴趣的小伙伴能够上手一试了~

作者介绍

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

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

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

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

晓得作者们是不是已然在用这个AI撸代码了(手动狗头)

项目位置https://github.com/VHellendoorn/Code-LMs

论文位置https://arxiv.org/abs/2202.13169

— 完 —

量子位 QbitAI · 头条号签约

关注咱们第1时间获知前沿科技动态





上一篇:大开眼界!这些千奇百怪的C语言代码,你见过几个?
下一篇:单片机c语言基本知识,c语言必背100代码有哪些?
回复

使用道具 举报

3083

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098788
发表于 2024-9-26 10:35:29 | 显示全部楼层
请问、你好、求解、谁知道等。
回复

使用道具 举报

3083

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098788
发表于 2024-9-29 21:32:21 | 显示全部楼层
我们有着相似的经历,你的感受我深有体会。
回复

使用道具 举报

2940

主题

3万

回帖

9997万

积分

论坛元老

Rank: 8Rank: 8

积分
99979445
发表于 2024-10-1 13:00:32 | 显示全部楼层
顶楼主,说得太好了!
回复

使用道具 举报

3083

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098788
发表于 2024-10-10 08:47:57 | 显示全部楼层
期待更新、坐等、迫不及待等。
回复

使用道具 举报

3037

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109078
发表于 2024-10-24 04:21:06 | 显示全部楼层
楼主的文章深得我心,表示由衷的感谢!
回复

使用道具 举报

3129

主题

3万

回帖

9996万

积分

论坛元老

Rank: 8Rank: 8

积分
99968654
发表于 2024-11-1 21:49:58 | 显示全部楼层
我深受你的启发,你的话语是我前进的动力。
回复

使用道具 举报

3037

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109078
发表于 2024-11-8 01:08:40 | 显示全部楼层
交流如星光璀璨,点亮思想夜空。
回复

使用道具 举报

2979

主题

3万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569190
 楼主| 发表于 5 天前 | 显示全部楼层
你的话语如春风拂面,让我心生暖意。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-18 04:51 , Processed in 0.105880 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.