0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CodeGeexX 功能使用

jf_ro2CN3Fa ? 來源:芋道源碼 ? 2023-06-26 09:44 ? 次閱讀

特性

性能

使用指南

功能

CodeGeeX 是一個具有 130 億參數(shù)的多編程語言代碼生成預(yù)訓(xùn)練模型,采用華為 MindSpore 框架實現(xiàn),在鵬城實驗室“鵬城云腦 II”上使用 1536 個國產(chǎn)昇騰 910 AI 處理器訓(xùn)練而成。

CodeGeexX 支持十多種主流編程語言的高精度代碼生成、跨語言代碼翻譯等功能,同時開發(fā)自動編程插件,更好的輔助程序開發(fā)和相關(guān)研究。

特性

高精度代碼生成

支持生成 PythonC++、Java、JavaScript 和 Go 等多種主流編程語言的代碼,在 HumanEval-X 代碼生成任務(wù)上取得 47%~60%求解率,較其他開源基線模型有更佳的平均性能。

跨語言代碼翻譯

支持代碼片段在不同編程語言間進行自動翻譯轉(zhuǎn)換,翻譯結(jié)果正確率高,在 HumanEval-X 代碼翻譯任務(wù)上超越了其它基線模型。

自動編程插件

CodeGeeX 插件現(xiàn)已上架 VSCode 插件市場(完全免費),用戶可以通過其強大的少樣本生成能力,自定義代碼生成風(fēng)格和能力,更好輔助代碼編寫。

模型跨平臺開源

所有代碼和模型權(quán)重開源開放,用作研究用途。CodeGeeX 同時支持昇騰和英偉達平臺,可在單張 昇騰 910 或 英偉達 V100/A100 上實現(xiàn)推理。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項目地址: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),支持代碼生成與代碼翻譯能力的評測。

cbc05266-13c1-11ee-962d-dac502259ad0.png

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

使用指南

CodeGeeX 最初使用 Mindspore 框架實現(xiàn),并在 昇騰 910AI 芯片 上進行訓(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 進行推理

嘗試使用 CodeGeeX 模型生成第一個程序吧!首先,在配置文件 configs/codegeex_13b.sh 中寫明存放權(quán)重的路徑。其次,將提示(可以是任意描述或代碼片段)寫入文件 tests/test_prompt.txt ,運行以下腳本即可開始推理(需指定 GPU 序號):

bash./scripts/test_inference.sh./tests/test_prompt.txt

功能

隱匿模式

在該模式中,CodeGeeX將在您停止輸入時,從光標(biāo)處開始生成(右下角CodeGeeX圖標(biāo)轉(zhuǎn)圈表示正在生成)。生成完畢之后會以灰色顯示,按Tab即可插入生成結(jié)果。在生成多個候選的情況下,可以使用Alt/Option+[ 或 ]在幾個候選間進行切換。

如果你對現(xiàn)有建議不滿意,可以使用Alt/Option+N去獲得新的候選??梢栽谠O(shè)置中改變Candidate Num(增加個數(shù)會導(dǎo)致生成速度相對變慢)。

注意:生成總是從當(dāng)前光標(biāo)位置開始,如果您在生成結(jié)束前移動光標(biāo)位置,可能會導(dǎo)致一些bugs。我們正在努力使生成速度變得更快以提升用戶體驗。

cbe95b16-13c1-11ee-962d-dac502259ad0.gif

交互模式

在該模式中,按Ctrl+Enter激活交互模式,CodeGeeX將生成X個候選,并顯示在右側(cè)窗口中(X 數(shù)量可以在設(shè)置的Candidate Num中修改)。

點擊候選代碼上方的use code即可插入結(jié)果到為當(dāng)前光標(biāo)位置。

cc189ea8-13c1-11ee-962d-dac502259ad0.gif

翻譯模式

在當(dāng)前的語言的文本編輯器中輸入或者粘貼其他語言的代碼,您用鼠標(biāo)選擇這些代碼,然后按下Ctrl+Alt+T激活翻譯模式,您根據(jù)提示選擇該代碼的語言,然后CodeGeeX會幫您把該代碼翻譯成匹配您當(dāng)前編輯器語言的代碼。

點擊翻譯結(jié)果上方的use code即可插入。您還可以在設(shè)置中選擇您希望插入的時候如何處理被翻譯的代碼,您可以選擇注釋它們或者覆蓋它們。

cc9883e8-13c1-11ee-962d-dac502259ad0.gif

提示模式(實驗功能)

在該模式中,您可以在輸入中添加額外的提示來實現(xiàn)一些有趣的功能,包括并不限于代碼解釋、概括、以特定風(fēng)格生成等。該模式的原理是利用了CodeGeeX強大的少樣本生成能力。當(dāng)您在輸入中提供一些例子時,CodeGeeX會模仿這些例子并實現(xiàn)相應(yīng)的功能。

比如,您可以自定義模板中提供一段逐行解釋代碼的例子。選擇您想要解釋的代碼,按Alt/Option+t觸發(fā)提示模式,選擇您寫好的模板(如explanation),CodeGeeX就會解釋您輸入的代碼。以下我們會詳細(xì)介紹如何制作模板。

ccf87348-13c1-11ee-962d-dac502259ad0.gif

開源地址

https://github.com/THUDM/CodeGeeX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1916

    瀏覽量

    34374
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3719

    瀏覽量

    80356
  • 訓(xùn)練模型
    +關(guān)注

    關(guān)注

    1

    文章

    35

    瀏覽量

    3781

原文標(biāo)題:多編程語言代碼生成神器 CodeGeeX,編碼效率提升十倍!

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    IO復(fù)用功能使

    IO復(fù)用功能占用時,普通GPIO功能使
    發(fā)表于 01-18 07:54

    AT32F系列DMA彈性映射功能使用的方法

    AT32F系列DMA彈性映射功能使用演示AT32F系列DMA彈性映射功能使用的方法。
    發(fā)表于 10-27 08:20

    ipod 功能使用手冊(2006年末)

    ipod 功能使用手冊(2006年末)
    發(fā)表于 12-10 15:16 ?40次下載

    CAXA工藝圖表XP新增功能使用說明

    CAXA工藝圖表XP新增功能使用說明 增加了形位公差的插入方法和編輯方法形位公差的輸入:填寫狀態(tài)下,單擊鼠
    發(fā)表于 10-18 18:46 ?2583次閱讀

    魅族Miniplayer SL版全功能使用手記

    魅族Miniplayer SL版全功能使用手記  魅族Miniplayer SL版的機身尺寸縮小至78×46.5×7.3mm,重量變輕為48g。側(cè)邊設(shè)有鎖定鍵、USB 2.0
    發(fā)表于 02-01 16:42 ?1701次閱讀

    定位導(dǎo)航功能使用說明

    定位導(dǎo)航功能使用說明。
    發(fā)表于 05-19 15:16 ?11次下載

    MTS數(shù)據(jù)外發(fā)功能使用說明文檔下載

    中興物聯(lián)網(wǎng)合作內(nèi)容--MTS數(shù)據(jù)外發(fā)功能使用說明
    發(fā)表于 01-15 15:43 ?1次下載

    EG4 MULTI BOOT功能使用指南

    電子發(fā)燒友網(wǎng)站提供《EG4 MULTI BOOT功能使用指南.pdf》資料免費下載
    發(fā)表于 09-27 09:23 ?6次下載
    EG4 MULTI BOOT<b class='flag-5'>功能使</b>用指南

    EF3 DUAL BOOT功能使用指南

    電子發(fā)燒友網(wǎng)站提供《EF3 DUAL BOOT功能使用指南.pdf》資料免費下載
    發(fā)表于 09-27 10:24 ?5次下載
    EF3 DUAL BOOT<b class='flag-5'>功能使</b>用指南

    EF3 MULTI BOOT功能使用指南

    電子發(fā)燒友網(wǎng)站提供《EF3 MULTI BOOT功能使用指南.pdf》資料免費下載
    發(fā)表于 09-27 10:23 ?2次下載
    EF3 MULTI BOOT<b class='flag-5'>功能使</b>用指南

    ELF2 DUAL BOOT功能使用指南

    電子發(fā)燒友網(wǎng)站提供《ELF2 DUAL BOOT功能使用指南.pdf》資料免費下載
    發(fā)表于 09-27 11:21 ?2次下載
    ELF2 DUAL BOOT<b class='flag-5'>功能使</b>用指南

    EF2 MULTI BOOT功能使用指南

    電子發(fā)燒友網(wǎng)站提供《EF2 MULTI BOOT功能使用指南.pdf》資料免費下載
    發(fā)表于 09-26 15:17 ?4次下載
    EF2 MULTI BOOT<b class='flag-5'>功能使</b>用指南

    AT32 MCU Printf的功能使用方法

    AT32 MCU Printf的功能使用方法
    的頭像 發(fā)表于 10-27 09:27 ?833次閱讀
    AT32 MCU Printf的<b class='flag-5'>功能使</b>用方法

    OTG功能使用方法

    OTG功能使用方法? 什么是OTG功能? OTG(On-The-Go)即為“即插即用”的高速USB接口,在目前的市場上企業(yè)和普通消費者極度青睞,其在人們的生活中的應(yīng)用場景非常廣泛,比如U盤、鍵盤
    的頭像 發(fā)表于 10-30 09:57 ?3016次閱讀

    便攜三合一氣體檢測儀的功能使用說明

    便攜三合一氣體檢測儀的功能使用說明
    的頭像 發(fā)表于 06-20 11:42 ?591次閱讀
    便攜三合一氣體檢測儀的<b class='flag-5'>功能使</b>用說明