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