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

    人工智能
    2022
    03/11
    11:09
    量子位
    分享
    評論

    來源:量子位

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

    △基于 Codex 的 Copilot

    為此,來自 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的數據用于訓練。

    然后是預訓練的方法。

    語言模型的預訓練方法通常有三種。

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

    這里 PolyCoder 主要采用的是第一種預訓練方法。

    相比于同樣采用 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 擼代碼了(手動狗頭)

    THE END
    廣告、內容合作請點擊這里 尋求合作
    ai
    免責聲明:本文系轉載,版權歸原作者所有;旨在傳遞信息,不代表砍柴網的觀點和立場。

    相關熱點

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

    相關推薦

    1
    3
    主站蜘蛛池模板: 3d动漫精品啪啪一区二区免费| 一区二区三区免费在线视频| 亚洲国产精品一区二区三区久久 | 狠狠做深爱婷婷综合一区| 亚洲无线码一区二区三区| 视频一区在线播放| 日韩一区二区超清视频| 国产vr一区二区在线观看| 日本在线观看一区二区三区| 国产品无码一区二区三区在线| 精品无码人妻一区二区三区品| 熟女少妇丰满一区二区| 久久99久久无码毛片一区二区| 国产精品一区二区无线| 精品一区二区久久久久久久网精| 91香蕉福利一区二区三区| 人妻少妇久久中文字幕一区二区| 日韩人妻无码一区二区三区久久99| 高清一区二区三区视频| 国产一区二区三区福利| 亚洲AⅤ无码一区二区三区在线 | 精品久久久久久无码中文字幕一区| 无码人妻少妇色欲AV一区二区| 久久青草国产精品一区| 亚洲色精品aⅴ一区区三区| 国产一区二区女内射| 日本中文字幕一区二区有码在线| 久久精品一区二区三区不卡| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 麻豆精品一区二区综合av| 日韩精品无码人妻一区二区三区| 日本强伦姧人妻一区二区| 无码日韩人妻AV一区免费l| 精品人妻少妇一区二区| 国产午夜精品一区二区三区漫画 | 亚洲日本久久一区二区va| 3D动漫精品一区二区三区| 老熟妇高潮一区二区三区| 在线观看日韩一区| 国产情侣一区二区三区| 无码少妇一区二区性色AV|