國產AI輔助編程工具CodeGeeX是一個使用AI大模型為基座的輔助編程工具,幫助開發人員更快的撰寫代碼,可以自動完成整個函式的撰寫,只需要根據注釋或Tab按鍵即可,它已經在Java、JavaScript和Python等二十多種語言上進行了訓練,并基于大量公開的開源代碼、官方檔案和公共論壇上的代碼來優化自己的演算法,CodeGeeX作為一款中國原創的AI輔助編程工具,現在免費提供給所有開發者使用,同時完全開源,程式員使用普遍認為撰寫代碼的效率提升2倍以上,
核心功能包括:代碼生成與智能補全、自動為代碼添加中英文注釋、在不同編程語言的代碼之間實作準確翻譯,包括剛剛更新的“Ask CodeGeeX”功能,是將智能問答模式,融合到實際開發場景中,讓開發者更專注和沉浸于編程,不用離開當前 IDE 的編程環境,就可以邊寫代碼邊和 AI 對話,實作針對編程問題的智能問答,無需waitlist,立刻就能嘗鮮這些核心功能!
大家看看在CodeGeeX上的體驗是怎樣的:


這里推薦各位免費下載使用AI輔助編程工具CodeGeeX,
CodeGeeX的背后,是一個開源的大規模多語言代碼生成模型,這個模型最大的特點就是全國產化實作,CodeGeeX 連接了自然語言到代碼的一個互動程序,用戶是通過寫注釋的形式讓它生成特定的代碼,也可以把一種語言的代碼翻譯成另外一種語言的代碼,或者為已有的代碼加上一些注釋,2022年9 月 CodeGeeX 開源插件免費開放使用,目前已經有10萬+程式員安裝使用,下載量超過270萬+次,每天為程式員生成超過數百萬行代碼,
那么,CodeGeeX背后的大規模多語言代碼生成預訓練模型是如何從 0 到 1 建立起來的?主要有以下幾個步驟:

第一,大規模代碼資料收集, 訓練的資料主要分為兩個部位:一是,開源資料集,比如 The Pile 里的代碼子集,以及 CodeParrot (Python)等;二是,額外爬取資料,從 GitHub 上爬優質的開源倉庫并照一系列規則清洗資料,最終整個語料庫有 23 種編程語言,涵蓋 Python,Java, C++,JavaScript, C,Go,HTML, Rust, C#等主流語言,資料量超過 1580 億 token,接下來,資料處理形式也非常簡單,首先,將代碼資料分詞并識別符號化,即將代碼片段進行分詞,得到 token 序列,再將 token 對應到詞表中的 ID,得到 ID 序列;其次,就是為不同語言的檔案加上語言標簽,在經過充分的學習以后,二十幾種語言的語法模型是可以完全掌握,
第二,CodeGeeX 模型架構, CodeGeeX 模型基于 GPT 架構的自回歸模型,由 40 層 transformer 組成,總計引數量達 130 億,它使用自然語言或代碼 token 作為輸入,輸出下一個 token 的概率,支持各種編程語言相關的下游任務,如代碼生成、代碼補全、代碼翻譯、代碼注釋等,同時,在架構實作的程序中做了許多設計,包括每一個算子需要用哪些精度,才能保證模型訓練的穩定性等等,
第三,CodeGeeX模型訓練, CodeGeeX基于華為 Mindspore 框架實作,總共用到了 1536 張昇騰 910AI 處理器,相當于 1500 多張 GPU ,進行了長達兩個月的訓練,在混合精度訓練方面,大部分的引數是用 FP16 作為精度,但在以往的實踐中發現,如果全部的引數都是 FP16,在一些計算的節點上有些算子很容易有一個精度溢位,模型就會訓崩掉,所以在 Layernorm、Softmax 地方會使用 FP32 保證穩定性,同時,訓練采用了一個并行訓練的策略,就是 192 路資料并行和 8 路模型并行,在漫長訓練之后,CodeGeeX 訓練了 8500 億的 token,基本上把GitHub 上爬到的代碼全部都見過了一遍,
第四,CodeGeeX 模型評估, 如何正確評估代碼生成的性能?過去比較常用多語言代碼基準 CodeXGLUE, XLCoST 均使用 CodeBLEU/BLEU 作為評價指標,它其實是在算一個語意相似性,但在代碼任務上并不能正確反映生成代碼的質量,已不滿足當前評估代碼生成模型的需求,在模型評估上,CodeGeeX 把 HumanEval 資料集,也就是一個已有的 Python 資料集,擴展到了更多的語言上,包括 C++、Java、JavaScript、Go等,形成了HumanEval-X,這個資料集的特點就是,給模型輸入包括必要的參考檔案、描述做的是什么任務,然后可能會有一兩個輸入輸出的例子讓模型去把函式補全,就可以用已經寫好測驗代碼和測驗用例去做一個自動化測驗,就知道模型寫出來的代碼到底正不正確,可以說,CodeGeeX 是目前平均性能最好的開源多語言代碼生成模型,
第五,CodeGeeX代碼生成插件, 未來讓 CodeGeeX 模型真正實用化,開發了 VS Code/Jetbrains 上的自動代碼生成插件,提供多種互動模式,支持代碼生成、補全、翻譯、注釋等功能,免費使用,更好輔助程式員開發,我們對上百名用戶進行問卷調研,涵蓋前后端工程師、演算法工程師、學生、研究者等,83.4% 的用戶認為CodeGeeX 插件有助于提高編程效率,但具體提高了多少還有待進一步研究,同時,不同語言上的表現是不一樣的,比如 PHP 語言就會弱一些,這也是今后提升的目標,爭取在更多的語言上達到更好的效果,
第六,CodeGeeX 開源開發計劃, CodeGeeX 雖然是在昇騰上訓練,但也移植到了英偉達,實作跨平臺模型代碼訓練、微調、推理、測評代碼等等,用戶可以在官網申請下載,在本地就可以部署起一套跟CodeGeeX 基本上一樣的一套流程,
像 MicroSoft Copilot、GitHub Copilot X 、CodeGeeX在 AIGC 應用場景會越來越多,并且極大地提高生產力,可以預見,人類正在加速通向 AGI 時代,在接下來幾個月內肯定有更多的產品形態出來,不用擔心,擁抱變化就可以了,
本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/554377.html
標籤:其他
下一篇:返回列表
