特性
性能
使用指南
功能
CodeGeeX 是一個具有 130 億參數的多編程語言代碼生成預訓練模型,采用華為 MindSpore 框架實現,在鵬城實驗室“鵬城云腦 II”上使用 1536 個國產昇騰 910 AI 處理器訓練而成。
CodeGeexX 支持十多種主流編程語言的高精度代碼生成、跨語言代碼翻譯等功能,同時開發自動編程插件,更好的輔助程序開發和相關研究。
特性
高精度代碼生成
支持生成 Python、C++、Java、JavaScript 和 Go 等多種主流編程語言的代碼,在 HumanEval-X 代碼生成任務上取得 47%~60%求解率,較其他開源基線模型有更佳的平均性能。
跨語言代碼翻譯
支持代碼片段在不同編程語言間進行自動翻譯轉換,翻譯結果正確率高,在 HumanEval-X 代碼翻譯任務上超越了其它基線模型。
自動編程插件
CodeGeeX 插件現已上架 VSCode 插件市場(完全免費),用戶可以通過其強大的少樣本生成能力,自定義代碼生成風格和能力,更好輔助代碼編寫。
模型跨平臺開源
所有代碼和模型權重開源開放,用作研究用途。CodeGeeX 同時支持昇騰和英偉達平臺,可在單張 昇騰 910 或 英偉達 V100/A100 上實現推理。
基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能
項目地址:https://github.com/YunaiV/ruoyi-vue-pro
視頻教程:https://doc.iocoder.cn/video/
性能
全新多編程語言評測基準 HumanEval-X:HumanEval-X 是第一個支持功能正確性評測的多語言、多任務的基準,包含 820 個人工編寫的高質量代碼生成題目、測試用例與參考答案,覆蓋 5 種編程語言(Python、C++、Java、JavaScript、Go),支持代碼生成與代碼翻譯能力的評測。
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能
項目地址:https://github.com/YunaiV/yudao-cloud
視頻教程:https://doc.iocoder.cn/video/
使用指南
CodeGeeX 最初使用 Mindspore 框架實現,并在 昇騰 910AI 芯片 上進行訓練。為適配更多平臺,我們將其轉換到 Megatron-LM 框架,支持 Pytorch+GPU 環境。
安裝
需要 Python 3.7+ / CUDA 11+ / PyTorch 1.10+ / DeepSpeed 0.6+,通過以下命令安裝 codegeex:
gitclonegit@github.com:THUDM/CodeGeeX.git cdCodeGeeX pipinstall-e
模型權重
申請權重:https://models.aminer.cn/codegeex/download/request
通過申請權重,您將收到一個包含臨時下載鏈接文件 urls.txt 的郵件。推薦使用 aria2 通過以下命令快速下載(請保證有足夠的硬盤空間存放權重(~ 26GB)):
aria2c-x16-s16-j4--continue=true-iurls.txt
使用以下命令合并得到完整的權重:
catcodegeex_13b.tar.gz.part.*>codegeex_13b.tar tarxvfcodegeex_13b.tar.gz
用 GPU 進行推理
嘗試使用 CodeGeeX 模型生成第一個程序吧!首先,在配置文件 configs/codegeex_13b.sh 中寫明存放權重的路徑。其次,將提示(可以是任意描述或代碼片段)寫入文件 tests/test_prompt.txt ,運行以下腳本即可開始推理(需指定 GPU 序號):
bash./scripts/test_inference.sh./tests/test_prompt.txt
功能
隱匿模式
在該模式中,CodeGeeX將在您停止輸入時,從光標處開始生成(右下角CodeGeeX圖標轉圈表示正在生成)。生成完畢之后會以灰色顯示,按Tab即可插入生成結果。在生成多個候選的情況下,可以使用Alt/Option+[ 或 ]在幾個候選間進行切換。
如果你對現有建議不滿意,可以使用Alt/Option+N去獲得新的候選。可以在設置中改變Candidate Num(增加個數會導致生成速度相對變慢)。
注意:生成總是從當前光標位置開始,如果您在生成結束前移動光標位置,可能會導致一些bugs。我們正在努力使生成速度變得更快以提升用戶體驗。
交互模式
在該模式中,按Ctrl+Enter激活交互模式,CodeGeeX將生成X個候選,并顯示在右側窗口中(X 數量可以在設置的Candidate Num中修改)。
點擊候選代碼上方的use code即可插入結果到為當前光標位置。
翻譯模式
在當前的語言的文本編輯器中輸入或者粘貼其他語言的代碼,您用鼠標選擇這些代碼,然后按下Ctrl+Alt+T激活翻譯模式,您根據提示選擇該代碼的語言,然后CodeGeeX會幫您把該代碼翻譯成匹配您當前編輯器語言的代碼。
點擊翻譯結果上方的use code即可插入。您還可以在設置中選擇您希望插入的時候如何處理被翻譯的代碼,您可以選擇注釋它們或者覆蓋它們。
提示模式(實驗功能)
在該模式中,您可以在輸入中添加額外的提示來實現一些有趣的功能,包括并不限于代碼解釋、概括、以特定風格生成等。該模式的原理是利用了CodeGeeX強大的少樣本生成能力。當您在輸入中提供一些例子時,CodeGeeX會模仿這些例子并實現相應的功能。
比如,您可以自定義模板中提供一段逐行解釋代碼的例子。選擇您想要解釋的代碼,按Alt/Option+t觸發提示模式,選擇您寫好的模板(如explanation),CodeGeeX就會解釋您輸入的代碼。以下我們會詳細介紹如何制作模板。
開源地址
https://github.com/THUDM/CodeGeeX
-
編程語言
+關注
關注
10文章
1938瀏覽量
34594 -
程序
+關注
關注
116文章
3776瀏覽量
80848 -
訓練模型
+關注
關注
1文章
35瀏覽量
3802
原文標題:多編程語言代碼生成神器 CodeGeeX,編碼效率提升十倍!
文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論