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

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

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

CodeGeexX 功能使用

jf_ro2CN3Fa ? 來(lái)源:芋道源碼 ? 2023-06-26 09:44 ? 次閱讀

特性

性能

使用指南

功能

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

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

特性

高精度代碼生成

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

跨語(yǔ)言代碼翻譯

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

自動(dòng)編程插件

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

模型跨平臺(tái)開源

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

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

項(xiàng)目地址:https://github.com/YunaiV/ruoyi-vue-pro

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

性能

全新多編程語(yǔ)言評(píng)測(cè)基準(zhǔn) HumanEval-X:HumanEval-X 是第一個(gè)支持功能正確性評(píng)測(cè)的多語(yǔ)言、多任務(wù)的基準(zhǔn),包含 820 個(gè)人工編寫的高質(zhì)量代碼生成題目、測(cè)試用例與參考答案,覆蓋 5 種編程語(yǔ)言(Python、C++、Java、JavaScript、Go),支持代碼生成與代碼翻譯能力的評(píng)測(cè)。

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

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(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)練。為適配更多平臺(tái),我們將其轉(zhuǎn)換到 Megatron-LM 框架,支持 Pytorch+GPU 環(huán)境。

安裝

需要 Python 3.7+ / CUDA 11+ / PyTorch 1.10+ / DeepSpeed 0.6+,通過(guò)以下命令安裝 codegeex:

gitclonegit@github.com:THUDM/CodeGeeX.git
cdCodeGeeX
pipinstall-e

模型權(quán)重

申請(qǐng)權(quán)重:https://models.aminer.cn/codegeex/download/request

通過(guò)申請(qǐng)權(quán)重,您將收到一個(gè)包含臨時(shí)下載鏈接文件 urls.txt 的郵件。推薦使用 aria2 通過(guò)以下命令快速下載(請(qǐng)保證有足夠的硬盤空間存放權(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 模型生成第一個(gè)程序吧!首先,在配置文件 configs/codegeex_13b.sh 中寫明存放權(quán)重的路徑。其次,將提示(可以是任意描述或代碼片段)寫入文件 tests/test_prompt.txt ,運(yùn)行以下腳本即可開始推理(需指定 GPU 序號(hào)):

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

功能

隱匿模式

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

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

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

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

交互模式

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

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

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

翻譯模式

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

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

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

提示模式(實(shí)驗(yàn)功能)

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

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

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

開源地址

https://github.com/THUDM/CodeGeeX

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

    關(guān)注

    10

    文章

    1945

    瀏覽量

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

    關(guān)注

    117

    文章

    3787

    瀏覽量

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

    關(guān)注

    1

    文章

    36

    瀏覽量

    3821

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    IO復(fù)用功能使

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

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

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

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

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

    CAXA工藝圖表XP新增功能使用說(shuō)明

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

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

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

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

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

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

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

    EG4 MULTI BOOT功能使用指南

    電子發(fā)燒友網(wǎng)站提供《EG4 MULTI BOOT功能使用指南.pdf》資料免費(fèi)下載
    發(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èi)下載
    發(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èi)下載
    發(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èi)下載
    發(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èi)下載
    發(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 ?1168次閱讀
    AT32 MCU Printf的<b class='flag-5'>功能使</b>用方法

    OTG功能使用方法

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

    便攜三合一氣體檢測(cè)儀的功能使用說(shuō)明

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