會(huì)寫代碼的 AI 開源了:掌握 12 種編程語言 C 語言寫得比 Codex 還要好

人工智能
2022
03/11
11:09
量子位
分享
評(píng)論

來源:量子位

比 Codex 還會(huì)寫 C 語言的 AI 代碼生成模型,現(xiàn)在開源了!這段時(shí)間,用 AI 寫代碼可以說是大火,其中最著名的要屬 OpenAI 的 Codex 和 DeepMind 的 AlphaCode。然而,這兩個(gè) AI 模型,全都沒有開源:其中 AlphaCode 只給出了一些測(cè)試樣例,而 Codex 只開放了 API。

△基于 Codex 的 Copilot

為此,來自 CMU 的幾個(gè)研究人員,用 GPT-2 搞出了一個(gè)名叫PolyCoder的 AI 代碼生成模型,而且還是開源的

據(jù)研究人員表示,雖然 PolyCoder 最大只有 27 億參數(shù)(相比 Codex 有 120 億參數(shù)),但它用C 語言寫出來的代碼,比 Codex 的效果還要好。

這里面究竟有什么秘訣?

用 12 種編程語言代碼集訓(xùn)練

首先來看訓(xùn)練用的數(shù)據(jù)集,這也是 PolyCoder 的最大特點(diǎn)之一。

此前,包括 Codex、CodeParrot 等 AI 代碼生成模型,主要都是基于Python語言的代碼來訓(xùn)練。

例如 Codex 的評(píng)估數(shù)據(jù)集之一 HumanEval,評(píng)估的也是生成 Python 代碼的效果。

相比之下,PolyCoder采用了多種編程語言代碼集來訓(xùn)練,一共有 12 種:

C、C#、C++、Go、Java、JavaScript、PHP、Python、Ruby、Rust、Scala 和 TypeScript。

其中,C 語言的代碼量是最多的,達(dá)到了 221GB;而 Python 代碼的數(shù)據(jù)量比 Codex 和 CodeParrot 用得都要少。

這里 PolyCoder 用的是 GitHub 上的公開代碼,主要選取的是各種編程語言中比較受歡迎的庫,每個(gè)庫至少有 50 Stars。

據(jù)研究人員表示,每種編程語言庫的 Stars 總數(shù)加起來不超過 25k,以避免模型生成的代碼效果太過于傾斜最流行的編程語言(通常編程語言越流行,庫的 Stars 就越多)。

通過提取庫中的文件、經(jīng)過簡(jiǎn)單處理(包括消除重復(fù)代碼)后,一共篩選出大約254GB的數(shù)據(jù)用于訓(xùn)練。

然后是預(yù)訓(xùn)練的方法。

語言模型的預(yù)訓(xùn)練方法通常有三種。

第一種是自左向右的語言模型,根據(jù)上文預(yù)測(cè)下文,比較適用于代碼生成等;第二種是掩蔽語言模型,基于上下文預(yù)測(cè)屏蔽片段,比較適合代碼分類等;第三種是編解碼器模型,比較適用于代碼注釋等任務(wù)。

這里 PolyCoder 主要采用的是第一種預(yù)訓(xùn)練方法。

相比于同樣采用 GPT-2 訓(xùn)練的 CodeParrot 和 Codex,PolyCoder 在超參數(shù)設(shè)置上也稍微有一些差異:

PolyCoder 一共提供了三種不同的模型,分別有 27 億參數(shù)、4 億參數(shù)和 1.6 億參數(shù),研究人員可以根據(jù)自身需求和不同的訓(xùn)練能力來選取合適的模型。

那么,最終訓(xùn)練出來的 AI 模型,代碼生成效果如何?

C 語言寫得尤其好,但 Python 不行

研究人員將 PolyCoder 與已有的 AI 代碼生成模型進(jìn)行了對(duì)比。

由于 AlphaCode 不好比較(接口沒開放),所以研究人員主要分析了下面這些模型,包括 GPT-Neo、CodeParrot 和 Codex 等。

其中藍(lán)色的是開源的,橙色的是沒開源的:

從參數(shù)量來看,PolyCoder 并不是最頂尖的,最大的 27 億參數(shù)模型也只有 Codex 的四分之一不到。

研究人員先是用語言模型評(píng)估常用的困惑度對(duì)一系列模型進(jìn)行了比較。

困惑度(Perplexity),用于衡量語言模型(LM)的好壞。困惑度越低,語言模型面對(duì)代碼感到困惑的程度就越低,模型生成效果越好。

從圖中來看,PolyCoder 在C 語言中意外取得了最好的效果(困惑度最低)。

用大量 C 語言訓(xùn)練 PolyCoder 的結(jié)果說明,即使模型整體原理不變(基于 GPT-2),單純改變訓(xùn)練用的代碼集,也能訓(xùn)練出擅長不同語言風(fēng)格的 AI 代碼生成模型。

可惜的是,從其他語言來看,生成的效果就完全沒辦法和 Codex 相比了:

例如,在主要用于評(píng)估 Python 代碼的 HumanEval 上,PolyCoder 的能力遠(yuǎn)不如 Codex 好:

據(jù)論文分析,這可能是 Python 代碼數(shù)據(jù)量、模型參數(shù)量不足等原因?qū)е碌摹?/p>

此外,作者們也提到,做出 PolyCoder 的目的主要還是為了開源一個(gè) AI 代碼生成模型,讓更多人參與研究和使用。

目前代碼已經(jīng)開源,無論是直接拿來用,還是試著在它的基礎(chǔ)上開發(fā)新模型都可以。

感興趣的小伙伴可以上手一試了 ~

作者介紹

一作許方正(Frank Xu),目前在 CMU 讀博,研究方向是 NLP、信息抽取等,發(fā)表過多篇頂會(huì)論文,包括 ICLR、ACL 和 EMNLP 等。本碩畢業(yè)于上海交通大學(xué),師從朱其立教授。

Uri Alon,在 CMU 進(jìn)行博士后工作,研究方向是編程語言處理(PLP)、NLP 和深度學(xué)習(xí)。

Graham Neubig,CMU 助理教授,研究方向是 NLP、機(jī)器翻譯和基于機(jī)器學(xué)習(xí)的自然語言理解。

Vincent J. Hellendoorn,CMU 計(jì)算機(jī)助理教授,主要研究方向是軟件工程和機(jī)器學(xué)習(xí),致力于利用智能方法幫助軟件開發(fā)人員減少代碼調(diào)試、程序優(yōu)化等繁瑣工作的時(shí)間。

不知道作者們是否已經(jīng)在用這個(gè) AI 擼代碼了(手動(dòng)狗頭)

THE END
廣告、內(nèi)容合作請(qǐng)點(diǎn)擊這里 尋求合作
ai
免責(zé)聲明:本文系轉(zhuǎn)載,版權(quán)歸原作者所有;旨在傳遞信息,不代表砍柴網(wǎng)的觀點(diǎn)和立場(chǎng)。

相關(guān)熱點(diǎn)

1 月 25 日消息,近日,網(wǎng)易試水 AI 音樂創(chuàng)作,推出全球首個(gè)一站式音樂創(chuàng)作平臺(tái)天音。
業(yè)界
該研究是由三星高級(jí)技術(shù)研究院(SAIT)與三星電子代工業(yè)務(wù)和半導(dǎo)體研發(fā)中心一起展開,由SAIT員工研究員Seungchul Jung博士、SAIT研究員、哈佛大學(xué)教授Donhee Ham博士、以及SAIT技術(shù)副總裁Sang Joon Kim博...
業(yè)界
1 月 12 日消息,根據(jù)韓國媒體 businesskorea 報(bào)道,韓國科學(xué)技術(shù)研究院(KAIST)研發(fā)出了一種專門針對(duì) AI 人工智能相關(guān)運(yùn)算進(jìn)行優(yōu)化的 SSD。
業(yè)界
根據(jù)Politico的報(bào)道,Clearview AI有望為其面部識(shí)別技術(shù)獲得一項(xiàng)美國專利。
業(yè)界
11 月 16 日消息,據(jù)“清華大學(xué)智能產(chǎn)業(yè)研究院”公眾號(hào)消息,日前,華深智藥、清華大學(xué)智能產(chǎn)業(yè)研究院(AIR)和清華大學(xué)醫(yī)學(xué)院共同合作,利用新型人工智能抗體平臺(tái),在新冠抗體設(shè)計(jì)和優(yōu)化等方面取得了突破...
業(yè)界

相關(guān)推薦

1
3
主站蜘蛛池模板: 奇米综合四色77777久久| 欧美乱xxxxxxxxx| 国产主播福利在线| 在线免费你懂的| 夫妇交换3中文字幕| 丰满人妻熟妇乱又伦精品| 男性玩尿眼玩法| 国产成人精品男人免费| 亚洲国产欧美精品| 精品深夜av无码一区二区| 国产免费久久久久久无码| www.黄色在线| 成人亚洲欧美日韩在线| 亚洲无限乱码一二三四区| 粗大的内捧猛烈进出小视频| 国产黄三级高清在线观看播放| 亚洲欧美精品一区二区| 窝窝午夜看片成人精品| 无码专区国产精品视频| 九九九国产精品成人免费视频| 蜜桃臀av高潮无码| 在线免费观看韩国a视频| 丁香婷婷六月天| 无遮挡很爽很污很黄在线网站| 亚洲成在线观看| 猛男猛女嘿咻视频网站| 动漫精品第一区二区三区| 黄a级网站在线观看| 国语对白avxxxooo| jzzjzzjzz日本| 小小的日本电影在线观看免费版 | 亚洲av成人片在线观看| 青娱乐在线播放| 国产精品久久久久久久久久久搜索 | 日韩人妻无码精品无码中文字幕| 亚洲香蕉在线观看| 精品久久久久成人码免费动漫| 国产大片91精品免费看3| 97久人人做人人妻人人玩精品| 成年入口无限观看免费完整大片| 人欧美一区二区三区视频xxx|