精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

會寫代碼的AI開源了

MobTech科技派 ? 來源: MobTech科技派 ? 作者: MobTech科技派 ? 2022-08-16 15:46 ? 次閱讀

推薦語:

近期,代碼的大型語言模型 (LM)在完成代碼和從自然語言描述合成代碼方面顯示出巨大的潛力。然而,當前最先進的代碼 LM(例如 Codex (Chen et al., 2021))尚未公開,留下了許多關于其模型和數據設計決策的問題。

我們的目標是通過對各種編程語言中最大的現有模型的系統評估來填補其中的一些空白:Codex、GPT-J、GPT-Neo、GPT-NeoX-20B 和 CodeParrot。盡管 Codex 本身不是開源的,但我們發現,針對自然語言建模,現有的開源模型確實在某些編程語言中取得了接近的結果。我們進一步確定了一個重要的缺失部分,即專門在多語言代碼語料庫上訓練的大型開源模型。我們發布了一個新模型 PolyCoder,它具有基于 GPT-2 架構的 2.7B 參數,該模型在單臺機器上使用 12 種編程語言的 249GB 代碼進行了訓練。在 C 編程語言中,PolyCoder 優于包括 Codex 在內的所有模型。我們訓練有素的模型是開源的,可在此 https URL 上公開獲得,這使得該領域的未來研究和應用成為可能。

—— MobTech袤博科技資深java開發工程師 零零發

比Codex還會寫C語言AI代碼生成模型,現在開源了!

這段時間,用AI寫代碼可以說是大火,其中最著名的要屬OpenAI的Codex和DeepMind的AlphaCode。

poYBAGL7RrmANFqDAAGYgGrPajs517.png

基于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。

pYYBAGL7RuSALuOTAAFin1PaAKo095.png

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

這里PolyCoder用的是GitHub上的公開代碼,主要選取的是各種編程語言中比較受歡迎的庫,每個庫至少有50 Stars。據研究人員表示,每種編程語言庫的Stars總數加起來不超過25k,以避免模型生成的代碼效果太過于傾斜最流行的編程語言(通常編程語言越流行,庫的Stars就越多)。

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

然后是預訓練的方法。

語言模型的預訓練方法通常有三種。第一種是自左向右的語言模型,根據上文預測下文,比較適用于代碼生成

等;第二種是掩蔽語言模型,基于上下文預測屏蔽片段,比較適合代碼分類等;第三種是編解碼器模型,比較適用于

代碼注釋等任務。

poYBAGL7Rv-AUOMCAAGywieWiAs270.png

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

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

poYBAGL7R4mAdOc3AAFRJirzzcs105.png

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

poYBAGL7RyiAaxBOAAJKIH-cwVU536.png

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

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

研究人員將PolyCoder與已有的AI代碼生成模型進行了對比。由于AlphaCode不好比較

接口沒開放)

,所以研究人員主要分析了下面這些模型,包括GPT-Neo、CodeParrot和Codex等。其中藍色的是開源的,橙色的是沒開源的:

pYYBAGL7R8aAZWyAAAGhXy50QSM108.png

從參數量來看,PolyCoder并不是最頂尖的,最大的27億參數模型也只有Codex的四分之一不到。研究人員先是用語言模型評估常用的困惑度對一系列模型進行了比較。

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

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

用大量C語言訓練PolyCoder的結果說明,即使模型整體原理不變(基于GPT-2),單純改變訓練用的代碼集,也能訓練出擅長不同語言風格的AI代碼生成模型??上У氖?,從其他語言來看,生成的效果就完全沒辦法和Codex相比了:

poYBAGL7SAGAJDuOAAJ5mLt188A999.png

例如,在主要用于評估Python代碼的HumanEval上,PolyCoder的能力遠不如Codex好:

poYBAGL7SAmAMim4AAIyihutpN4588.png

據論文分析,這可能是Python代碼數據量、模型參數量不足等原因導致的。

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

目前代碼已經開源,無論是直接拿來用,還是試著在它的基礎上開發新模型都可以。

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

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7599

    瀏覽量

    136213
  • 編程
    +關注

    關注

    88

    文章

    3595

    瀏覽量

    93600
  • 人工智能
    +關注

    關注

    1791

    文章

    46872

    瀏覽量

    237595
  • 開源
    +關注

    關注

    3

    文章

    3254

    瀏覽量

    42408
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84457
收藏 人收藏

    評論

    相關推薦

    開源 KiCad/AD 查看器 + AI Copilot?

    ),某些功能更強一些。 查看器支持原理圖、PCB、3D、BOM,可以交互查看原理圖、PCB中幾乎所有對象的屬性(應該是實時渲染的) 原理圖支持 AI-Copilot,可以直接對話也可以使用菜單
    發表于 08-18 22:41

    AI學習】第 1 篇--活用創新模板學 AI

    `AI 模板(Template)就像點菜單,讓您自己可以思考自己的應用問題,在 Excel 上修改模板,把訓練資料填進去。這些模版背后的 Python 程序代碼也都是開源共享的,鼓勵會寫
    發表于 11-02 10:38

    AI概論:來來來,成為AI的良師益友》高煥堂老師帶你學AI

    AI簡介:AI 模板(Template)就像點菜單,讓您自己可以思考自己的應用問題,在 Excel 上修改模板,把訓練資料填進去。這些模版背后的 Python 程序代碼也都是開源共享
    發表于 11-05 17:55

    開源代碼中直接提供camera.hap包,誰有相應源代碼?潤和的能否提供下嗎?

    開源代碼中直接提供camera.hap包,誰有相應源代碼?潤和的能否提供下嗎?
    發表于 11-18 09:23

    《來來來,成為AI的良師益友》高煥堂老師AI學習資料大集合

    AI簡介:AI 模板(Template)就像點菜單,讓您自己可以思考自己的應用問題,在 Excel 上修改模板,把訓練資料填進去。這些模版背后的 Python 程序代碼也都是開源共享
    發表于 11-26 11:57

    如何實現瘋殼AI開源無人機遙控整機代碼走讀/編譯與燒寫?

    如何實現瘋殼AI開源無人機遙控整機代碼走讀/編譯與燒寫?
    發表于 12-20 06:28

    中國開源未來發展峰會“問道 AI 分論壇”即將開幕!

    過去幾個月,AI 幾乎已經成為全民熱議的話題。各式開源大模型、訓練框架層出不窮;AI 技術也加速應用在各個領域和行業,例如服務運營優化、解決供應鏈問題等等;數據庫、云計算、大前端等多類技術領域產品
    發表于 05-09 09:49

    verilog代碼規范

    verilog代碼規范,學會寫代碼還不行,我們需要更加的規范。
    發表于 03-25 14:43 ?24次下載

    Python爬蟲 你真的會寫爬蟲嗎?

    你以為你真的會寫爬蟲了嗎?快來看看真正的爬蟲架構!
    的頭像 發表于 05-02 17:02 ?3863次閱讀
    Python爬蟲 你真的<b class='flag-5'>會寫</b>爬蟲嗎?

    openharmony分支代碼開源

    在之前,有一位博主爆料稱鴻蒙 OpenHarmony 2.0在 5 月 16 日的時候開源,差不多有460萬行基礎代碼。 隨后不久,華為OpenHarmony 的幾個倉庫提交了第一批的 L2 分支
    的頭像 發表于 06-23 10:06 ?1403次閱讀

    為什么有時候會寫出爛代碼

    本文的內容是最近我剛剛遇到的一個問題,問題代碼是我自己寫的,也是我自己寫單元測試的時候發現的,也是我自己修復的,修復完之后,我反思一下:這樣的問題代碼,我實習的時候都寫不出來。 可是為什么我
    的頭像 發表于 08-27 10:23 ?1330次閱讀
    為什么有時候<b class='flag-5'>會寫</b>出爛<b class='flag-5'>代碼</b>

    AI開源浪潮的領軍力量!OPEN AI LAB Edge AI推理框架Tenigne全解讀

    最近,國內的人工智能(AI開源生態突然熱鬧了起來,這廂清華大學剛開源一個強化學習平臺,那邊華為和曠視又相繼開源
    發表于 02-07 11:45 ?1次下載
    <b class='flag-5'>AI</b><b class='flag-5'>開源</b>浪潮的領軍力量!OPEN <b class='flag-5'>AI</b> LAB Edge <b class='flag-5'>AI</b>推理框架Tenigne全解讀

    AI大模型的開源算法介紹

    AI大模型的開源算法介紹 什么是開源?簡單來說就是不收取任何費用,免費提供給用戶的軟件或應用程序。開源是主要用于軟件的術語,除了免費用戶還可以對開源
    的頭像 發表于 08-08 17:25 ?1982次閱讀

    真格基金宣布捐贈開源AI項目vLLM

    開源技術處于 AI 革命的中心。Llama 3、Mistral 等開源大模型迅速追趕 GPT-4,TensorFlow、Pytorch 等開源深度學習框架提供
    的頭像 發表于 09-24 16:13 ?332次閱讀

    Llama 3 與開源AI模型的關系

    體現在多個層面。 1. 開源精神的體現 Llama 3項目可能是一個開源項目,這意味著它的源代碼、算法和數據集對公眾開放。這種開放性是開源AI
    的頭像 發表于 10-27 14:42 ?320次閱讀