自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

掘力計(jì)劃第21期 - CodeGeeX:從代碼生成模型到AI編程助手

人工智能
?8月12日,在掘力計(jì)劃系列第21場(chǎng)《解析大語(yǔ)言模型的訓(xùn)練和應(yīng)用》活動(dòng)中,智譜AI的薛宇飛博士應(yīng)邀作了題為《CodeGeeX:從代碼生成模型到AI編程助手》的技術(shù)分享。

8月12日,在掘力計(jì)劃系列第21場(chǎng)《解析大語(yǔ)言模型的訓(xùn)練和應(yīng)用》活動(dòng)中,智譜AI的薛宇飛博士應(yīng)邀作了題為《CodeGeeX:從代碼生成模型到AI編程助手》的技術(shù)分享。

薛宇飛博士是智譜AI大模型事業(yè)部的副總裁,他擁有清華大學(xué)計(jì)算機(jī)系的博士學(xué)位和博士后經(jīng)歷,在人工智能領(lǐng)域有多年的研究和產(chǎn)品經(jīng)驗(yàn),曾任職于多家頂級(jí)科技公司。這次薛博士以自身團(tuán)隊(duì)在代碼生成模型方面的研究為切入點(diǎn),詳細(xì)介紹了從訓(xùn)練一個(gè)大規(guī)模的通用代碼生成模型,到落地產(chǎn)品化并開(kāi)發(fā)IDE插件,最終使廣大開(kāi)發(fā)者能夠享受到AI編程助手帶來(lái)的便利。

背景:編程向更簡(jiǎn)單方向發(fā)展

從計(jì)算機(jī)誕生以來(lái),編程工作就在不斷朝著更簡(jiǎn)單、更符合人的思維邏輯方向發(fā)展。早期的機(jī)器語(yǔ)言極為復(fù)雜難懂,匯編語(yǔ)言相比機(jī)器語(yǔ)言提高了可讀性和生產(chǎn)效率,然后出現(xiàn)了面向過(guò)程和面向?qū)ο蟮母呒?jí)語(yǔ)言,進(jìn)一步降低了編程的門(mén)檻。近年來(lái),低代碼平臺(tái)的興起使不專業(yè)的開(kāi)發(fā)者也能參與軟件開(kāi)發(fā),AI輔助代碼生成技術(shù)更是讓自動(dòng)編程成為可能。

自動(dòng)生成代碼的想法隨著人工智能技術(shù)的進(jìn)步也在逐步實(shí)現(xiàn)。早期主要采用基于規(guī)則的方法,2015年第一次有研究將深度學(xué)習(xí)應(yīng)用于代碼生成,取得了一定進(jìn)展。2020年, Transformer 架構(gòu)不僅通過(guò) GPT-3 模型展示它在自然語(yǔ)言生成方面的驚人能力,也開(kāi)始被應(yīng)用到了代碼生成領(lǐng)域。2021年,OpenAI 推出了規(guī)模達(dá)到百億參數(shù)的 Codex 代碼生成模型,使自動(dòng)代碼生成真正具備實(shí)用性。此后,業(yè)界紛紛推出自己的代碼生成模型和編程助手產(chǎn)品。

CodeGeeX 模型訓(xùn)練

CodeGeeX 項(xiàng)目于2022年1月啟動(dòng),4月開(kāi)始正式訓(xùn)練,6月訓(xùn)練完成。訓(xùn)練數(shù)據(jù)主要來(lái)源于公開(kāi)數(shù)據(jù)集和 GitHub 高質(zhì)量代碼。公開(kāi)數(shù)據(jù)集提供初始訓(xùn)練語(yǔ)料,GitHub 代碼經(jīng)篩選后確保質(zhì)量。第一版 CodeGeeX 支持23種編程語(yǔ)言,其中 Python、C++、Java 的訓(xùn)練代碼量最大。大模型可以從不同語(yǔ)言中學(xué)習(xí)通用邏輯,不需要語(yǔ)言完全均衡。

原始代碼數(shù)據(jù)需要進(jìn)行預(yù)處理。首先對(duì)代碼進(jìn)行分詞,然后將每個(gè)詞轉(zhuǎn)換成對(duì)應(yīng)的ID,得到模型可直接識(shí)別的格式。此外,每個(gè)代碼片段前加語(yǔ)言標(biāo)識(shí),讓模型更好地學(xué)習(xí)到不同語(yǔ)言的特性。

CodeGeeX 采用GPT結(jié)構(gòu),包含40個(gè) Transformer 層,參數(shù)總量達(dá)到130億?;贕PT的生成方式是順序生成,每次根據(jù)前文預(yù)測(cè)下一個(gè)詞。訓(xùn)練過(guò)程中團(tuán)隊(duì)與華為合作,在華為N騰910 AI處理器上完成。使用FP16精度、數(shù)據(jù)并行和模型并行訓(xùn)練技術(shù),經(jīng)過(guò)兩個(gè)月完成。

訓(xùn)練過(guò)程中,CodeGeeX團(tuán)隊(duì)還與華為N思 MindSpore 團(tuán)隊(duì)的工程師一起對(duì)訓(xùn)練框架進(jìn)行了優(yōu)化。如通過(guò)算子融合等技術(shù),將訓(xùn)練速度提升了2.5倍;加入流水線并行后,整體效率可提升3倍之多。這些成果為后續(xù)國(guó)產(chǎn)芯片的大模型訓(xùn)練帶來(lái)借鑒。

模型評(píng)測(cè)與優(yōu)化

訓(xùn)練完成后,對(duì)模型進(jìn)行評(píng)測(cè)與優(yōu)化才能使其投入實(shí)際使用。由于之前針對(duì)多語(yǔ)言代碼生成模型缺乏科學(xué)的評(píng)測(cè)基準(zhǔn),團(tuán)隊(duì)基于HumanEval構(gòu)建了HumanEval-X評(píng)測(cè)基準(zhǔn),將其從只支持 Python 擴(kuò)展到 C++、Java、JavaScript 和 Go 五種語(yǔ)言,可以更全面地評(píng)估模型的多語(yǔ)言生成能力。

評(píng)測(cè)結(jié)果顯示,CodeGeeX 在 Python 和 Java 上的 Pass@1 指標(biāo)明顯優(yōu)于對(duì)手模型,其他語(yǔ)言也有出色表現(xiàn),是當(dāng)時(shí)綜合表現(xiàn)最優(yōu)的開(kāi)源多語(yǔ)言代碼生成模型。

為減小模型大小便于實(shí)際部署,團(tuán)隊(duì)使用量化與推理優(yōu)化技術(shù)。最終模型從 27GB 降低到 15GB,推理速度也提升2倍多?;谏鲜龉ぷ?,CodeGeeX 能夠在普通 GPU 上流暢運(yùn)行。

AI編程助手應(yīng)用

代碼生成模型完成之后,團(tuán)隊(duì)著手開(kāi)發(fā) IDE 插件,將模型應(yīng)用到實(shí)際編程過(guò)程中。CodeGeeX 插件支持 VS Code 和JetBrains 等主流 IDE。用戶可以利用代碼補(bǔ)全、生成注釋等功能,也可以通過(guò)自然語(yǔ)言聊天提問(wèn)。

代碼補(bǔ)全可以智能提示后續(xù)代碼;語(yǔ)義代碼注釋可自動(dòng)添加詳細(xì)注釋;代碼翻譯可以在多種語(yǔ)言之間轉(zhuǎn)換。這些功能都基于 CodeGeeX 模型或在其基礎(chǔ)上進(jìn)行微調(diào)得到。用戶可以選擇中文或英文注釋。新版模型支持更多語(yǔ)言,如 Kotlin、Vue 等。

CodeGeeX 插件可以自動(dòng)生成復(fù)雜SQL查詢語(yǔ)句,通過(guò)公開(kāi)SQL練習(xí)平臺(tái)的題目,前20題全部正確,最后10題也有很多正確,達(dá)到可助力編程的程度。該插件已經(jīng)累積15萬(wàn)用戶,日活躍2.5萬(wàn),獲得廣大開(kāi)發(fā)者認(rèn)可。

CodeGeeX 2.0 模型升級(jí)

今年7月團(tuán)隊(duì)推出了第二代模型CodeGeeX2-6B。它 使用 ChatGLM2-6B 作為基底模型,在此基礎(chǔ)上使用代碼數(shù)據(jù)進(jìn)行微調(diào)。這樣一來(lái),新模型規(guī)模減小到6B,但效果顯著提升,如 Python Pass@1 提升57%,已超過(guò)參數(shù)規(guī)模更大的 StarCoder 模型。

CodeGeeX2 繼承了 ChatGLM2 的中英文語(yǔ)言理解能力,支持更長(zhǎng)的文本序列。此外,支持語(yǔ)言種類從23種提升到上百種。新版模型權(quán)重對(duì)學(xué)術(shù)研究完全開(kāi)放,可在GitHub或Hugging Face上獲取權(quán)重的下載及使用方式。

結(jié)語(yǔ)

綜上所述,CodeGeeX 從一個(gè)編程語(yǔ)言生成模型發(fā)展成一個(gè)可供廣大開(kāi)發(fā)者使用的AI編程助手,已經(jīng)走過(guò)兩年時(shí)間。期間團(tuán)隊(duì)進(jìn)行了模型設(shè)計(jì)、訓(xùn)練、評(píng)估、優(yōu)化、產(chǎn)品化等一系列創(chuàng)新性的工作。先使用 GPT 結(jié)構(gòu)訓(xùn)練出百億參數(shù)規(guī)模的通用模型,然后以 ChatGLM 為基礎(chǔ)進(jìn)行調(diào)優(yōu),使新版模型效果更優(yōu)。在 IDE 插件中集成代碼生成等功能,真正將AI的力量帶入到開(kāi)發(fā)的日常之中。

當(dāng)前 CodeGeeX 插件已經(jīng)積累大量用戶,也獲得他們的認(rèn)可。團(tuán)隊(duì)將繼續(xù)改進(jìn)產(chǎn)品,以期讓編程對(duì)所有人來(lái)說(shuō)都更簡(jiǎn)單、更有效率。大模型編程助手正在成為編程發(fā)展的新方向,相信未來(lái)必將惠及更多開(kāi)發(fā)者,提升軟件開(kāi)發(fā)的生產(chǎn)力。

責(zé)任編輯:鳶瑋 來(lái)源: 掘金社區(qū)
相關(guān)推薦

2023-08-17 10:29:28

掘力計(jì)劃大語(yǔ)言模型

2023-08-18 17:25:45

掘力計(jì)劃大語(yǔ)言模型

2023-08-16 18:23:28

掘力計(jì)劃網(wǎng)易有道大模型

2023-08-03 10:25:49

Flutter

2023-08-01 09:09:05

崔紅保跨平臺(tái)開(kāi)發(fā)

2023-08-02 10:42:00

Flutter掘力計(jì)劃

2023-08-04 10:46:57

掘力計(jì)劃前端Pake

2023-11-03 07:46:54

CodeGeeX編程助手

2017-09-05 22:34:24

遍歷SQL運(yùn)算

2024-08-12 08:41:40

2024-09-27 17:06:13

2023-09-21 11:48:49

CodeGeeXAI代碼

2023-03-15 10:37:21

OpenAIChatGPT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)