主頁 >  其他 > 從0到1:如何建立一個大規模多語言代碼生成預訓練模型

從0到1:如何建立一個大規模多語言代碼生成預訓練模型

2023-06-06 09:26:03 其他

國產AI輔助編程工具CodeGeeX是一個使用AI大模型為基座的輔助編程工具,幫助開發人員更快的撰寫代碼,可以自動完成整個函式的撰寫,只需要根據注釋或Tab按鍵即可,它已經在Java、JavaScript和Python等二十多種語言上進行了訓練,并基于大量公開的開源代碼、官方檔案和公共論壇上的代碼來優化自己的演算法,CodeGeeX作為一款中國原創的AI輔助編程工具,現在免費提供給所有開發者使用,同時完全開源,程式員使用普遍認為撰寫代碼的效率提升2倍以上,

核心功能包括:代碼生成與智能補全、自動為代碼添加中英文注釋、在不同編程語言的代碼之間實作準確翻譯,包括剛剛更新的“Ask CodeGeeX”功能,是將智能問答模式,融合到實際開發場景中,讓開發者更專注和沉浸于編程,不用離開當前 IDE 的編程環境,就可以邊寫代碼邊和 AI 對話,實作針對編程問題的智能問答,無需waitlist,立刻就能嘗鮮這些核心功能!

大家看看在CodeGeeX上的體驗是怎樣的:
file

file

這里推薦各位免費下載使用AI輔助編程工具CodeGeeX

CodeGeeX的背后,是一個開源的大規模多語言代碼生成模型,這個模型最大的特點就是全國產化實作,CodeGeeX 連接了自然語言到代碼的一個互動程序,用戶是通過寫注釋的形式讓它生成特定的代碼,也可以把一種語言的代碼翻譯成另外一種語言的代碼,或者為已有的代碼加上一些注釋,2022年9 月 CodeGeeX 開源插件免費開放使用,目前已經有10萬+程式員安裝使用,下載量超過270萬+次,每天為程式員生成超過數百萬行代碼,

那么,CodeGeeX背后的大規模多語言代碼生成預訓練模型是如何從 0 到 1 建立起來的?主要有以下幾個步驟:
file

第一,大規模代碼資料收集, 訓練的資料主要分為兩個部位:一是,開源資料集,比如 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

標籤:其他

上一篇:1500個心理測驗大全題庫ACCESS資料庫

下一篇:返回列表

標籤雲
其他(160402) Python(38206) JavaScript(25475) Java(18198) C(15237) 區塊鏈(8270) C#(7972) AI(7469) 爪哇(7425) MySQL(7234) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5873) 数组(5741) R(5409) Linux(5346) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4582) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2434) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1981) 功能(1967) HtmlCss(1952) Web開發(1951) C++(1929) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1879) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 從0到1:如何建立一個大規模多語言代碼生成預訓練模型

    國產AI輔助編程工具**[CodeGeeX](https://codegeex.cn/)**是一個使用AI大模型為基座的輔助編程工具,幫助開發人員更快的撰寫代碼。可以自動完成整個函式的撰寫,只需要根據注釋或Tab按鍵即可。它已經在Java、JavaScript和Python等二十多種語言上進行了訓練 ......

    uj5u.com 2023-06-06 09:26:03 more
  • 1500個心理測驗大全題庫ACCESS資料庫

    今天收集到了一個結構很簡單的心理測驗題庫,所謂的結構很簡單是區別于《常用心理測驗精選題庫ACCESS資料庫》、《心理測驗性格測驗大全ACCESS資料庫》等資料庫一個測驗專案需做幾道題然后給出解釋,表與表需要關聯而言的,這個心理測驗很簡單,給出一個測驗題目,你回答ABCD即給出解釋。 最大的選項數是選 ......

    uj5u.com 2023-06-06 09:25:52 more
  • 大模型核心技術原理: Transformer架構詳解

    在大模型發展歷程中,有兩個比較重要點:第一,Transformer 架構。它是模型的底座,但 Transformer 不等于大模型,但大模型的架構可以基于 Transformer;第二,GPT。嚴格意義上講,GPT 可能不算是一個模型,更像是一種預訓練范式,它本身模型架構是基于 Transforme ......

    uj5u.com 2023-06-06 09:25:40 more
  • 云原生周刊:開發人員使用 GPT-4 的 30 種重要方法 | 2023-6-5

    OpenAI 最新的大型語言模型 GPT-4 有非常多的用途,那么,作為開發人員,應該如何去使用它,來幫助自己作業呢? 在最近的 [Hacker News 問答](https://news.ycombinator.com/item?id=36037559)中,很多開發人員參與了討論和分享。 也有人進 ......

    uj5u.com 2023-06-06 09:25:22 more
  • 解鎖邊緣無限可能,天翼云助力教育數字化轉型!

    5月16日-17日,由教育部教育管理資訊中心主辦、中國電信協辦的2023年教育系統網路安全作業探討會及網路安全展在貴陽召開。會議以“強化網路安全公共支撐能力,護航國家教育數字化戰略行動”為主題,來自各省級教育行政部門、部屬高校、部直屬單位的網路安全和資訊化相關嘉賓共同出席了會議。 天翼云要客行業中心 ......

    uj5u.com 2023-06-06 09:25:13 more
  • Ambient Mesh:Istio 資料面新模式

    摘要:基于Istio對于Kubernetes生態的完美補充,隨著Kubernetes的大規模普及,Istio 資料面新模式 —Ambient MeshIstio也實作了對用戶心智以及市場的快速搶占。 本文分享自華為云社區《Istio 資料面新模式 —Ambient Mesh》,作者:創原會。 如果說 ......

    uj5u.com 2023-06-06 09:24:57 more
  • 常用心理測驗精選題庫ACCESS資料庫

    心理測驗類的資料庫結構有很多種,比如已經發過的《心理測驗性格測驗大全ACCESS資料庫》、《心理測驗性格測驗簡裝版ACCESS資料庫》就是兩種不同的結構。而今天發的《常用心理測驗精選題庫ACCESS資料庫》卻又是另一種結構: 1.測驗主表(即測驗專案) (類別ID關聯類別表,有愛情測驗、性格測驗、能 ......

    uj5u.com 2023-06-06 09:24:13 more
  • 階 原根 離散對數

    # 階 原根 離散對數 ## 階 ### 定義 $a\mod p$ 的階是 $a^e\equiv1\pmod p$ 的最小指數 $e$ 符號語言: $\delta_p(a)$ 代表 $a$ 在 $\mod p$ 的意義下的最小指數 $e$ 使$a^e\equiv1\pmod p$ ![](https ......

    uj5u.com 2023-06-06 09:23:57 more
  • CF338D GCD Table 題解

    # CF338D GCD Table 題解 ## 題目描述 你有一個長度為 $k$ 的數列 $a$ , 詢問是否存在 $x\in[1,n]~~~y\in[1,m]$ 使得 $\forall i~~~ \gcd(x,y+i-1)=a_i$。 ## 決議 我們轉換一下可以得到: $$ \forall i ......

    uj5u.com 2023-06-06 09:23:51 more
  • 700多心理測驗性格測驗大全ACCESS資料庫

    這是一個關于心理測驗、性格測驗的ACCESS資料庫,這個測驗有一個測驗專案一個問題選擇后就有結果,也有一個測驗專案有N多題需做完N多題根據各題得分得出總結果,所以ACCESS資料表的結構設計的很靈活。 測驗專案表:為整個ACCESS資料庫的主表,里面記錄著測驗專案的標題和最后得分的解釋結果。 測驗子 ......

    uj5u.com 2023-06-06 09:23:42 more