開源 AI 代碼生成器 PolyCoder:擅長 C 語言,優于 Codex
卡內基梅隆大學的研究人員推出了一個開源的自動代碼生成器模型 PolyCoder,具有 27B 參數,基于 GPT-2 架構,在一臺機器上對跨越 12 種編程語言的 249GB 代碼進行了訓練。訓練結果表明,在 C 編程語言中,PolyCoder 優于包括 Codex 在內的所有模型。
- “最近,代碼的大型語言模型(LM)在完成代碼和從自然語言描述中合成代碼方面顯示出巨大的前景。然而,目前最先進的代碼 LM(如 Codex)并沒有公開提供,留下許多關于他們的模型和數據設計決策的疑問。我們的目標是通過對各種編程語言中最大的現有模型的系統評估來填補其中的一些空白:Codex、GPT-J、GPT-Neo、GPT-NeoX20B 和 CodeParrot。盡管 Codex 本身不是開源的,但我們發現現有的開源模型在一些編程語言中確實取得了接近的結果,雖然主要針對的是自然語言建模。我們進一步確定了一個重要的缺失部分,即專門在多語言的代碼語料庫中訓練的大型開源模型。”
研究人員指出,OpenAI 的 Codex 于去年 8 月發布,可通過微軟擁有的 GitHub 的 Copilot 工具獲得;但它通過黑盒 API 調用提供對模型輸出的“non-free access”,模型的權重和訓練數據并不可用。DeepMind 聲稱其最近發布的 AlphaCode 代碼生成器在人類參與的編程比賽中排名前 54.3%,但是訓練這個模型需卻要在谷歌的數據中心進行"hundreds of petaFLOPS days"的訓練。
“盡管大型語言代碼模型取得了巨大成功,但最強的模型都尚未公開。這阻止了這些模型在資源充足的公司之外的應用,并限制了資源匱乏的組織在這一領域的研究。”
為了解決這一問題,他們推出了 PolyCoder。該模型使用來自 GitHub 的多個存儲庫的數據進行訓練,涵蓋 12 種流行的編程語言:C、C#、C++、Go、Java、JavaScript、PHP、Python、Ruby、Rust、Scala 和 TypeScript。未經過濾的數據集總共有 631GB 的數據和 3890 萬個文件。此外,為了訓練 PolyCoder,研究人員選擇了 GPT-2(因為預算有限)。
不過雖然 PolyCoder 在 C 語言方面的表現優于所有模型,但 Codex 在其他語言方面仍然要勝過 PolyCoder。
“值得注意的是,PolyCoder 在 C 語言方面優于 Codex 和所有其他模型。在比較單獨的開源模型時,PolyCoder 在 C、JavaScript、Rust、Scala 和 TypeScript 方面的表現比類似規模的 GPT-Neo 2.7B 更好。在除 C 語言以外的其他 11 種語言中,所有其他開源模型,包括我們的,都明顯比 Codex 差(higher perplexity)。”
??詳情可查看??
本文轉自OSCHINA
本文標題:開源 AI 代碼生成器 PolyCoder:擅長 C 語言,優于 Codex
本文地址:https://www.oschina.net/news/185793/open-source-ai-code-generator-polycoder