導(dǎo)讀 | 論智能化編程的起源,可以追溯到集成開發(fā)環(huán)境(IDE )的輔助提示功能。只不過,傳統(tǒng) IDE 的智能化輔助功能比較簡(jiǎn)單,一般是基于開發(fā)人員的輸入和已有項(xiàng)目代碼,即時(shí)預(yù)測(cè)待補(bǔ)全代碼中的類名、方法名和代碼片段等,并提供建議列表。 |
而現(xiàn)在所說的智能化編程,在深度學(xué)習(xí)技術(shù)的影響下,跟以前已經(jīng)大不一樣,甚至已經(jīng)有本質(zhì)的區(qū)別。
華為云 Dev AI Lab Leader、智能化研發(fā)算法技術(shù)專家馬宇馳認(rèn)為:“GitHub Copilot 問世的 2021 年,是真正的智能化編程出現(xiàn)的元年。在此之前的代碼補(bǔ)全,也就相當(dāng)于輸入法的聯(lián)想功能?!?/p>
華為云 Dev AI Lab Leader、智能化研發(fā)算法技術(shù)專家 馬宇馳
GitHub Copilot 由 GitHub 和 OpenAI 開發(fā),其底層技術(shù)采用了 Codex 模型 —— 該模型經(jīng)過了百億級(jí)代碼(包括 GitHub 上的公共存儲(chǔ)庫(kù))的訓(xùn)練。GitHub Copilot 的特別之處在于,它不僅僅是一個(gè)代碼自動(dòng)補(bǔ)全工具。與大多數(shù)代碼輔助工具相比,它可以理解更多上下文。無論是文檔、注釋、函數(shù)名,還是代碼本身,GitHub Copilot 都會(huì)基于開發(fā)者提供的上下文來合成匹配的代碼。開發(fā)者可通過 GitHub Copilot 在編輯器中獲取有關(guān)整行代碼或完整函數(shù)的建議。
Copilot 的進(jìn)化速度非常驚人。2021 年 6 月,Copilot 剛發(fā)布時(shí),其做題準(zhǔn)確率是 28.8%,當(dāng)時(shí)業(yè)界最高也只能達(dá)到 11%。今年 3 月,接入了 GPT-4 的 Copilot X 做題準(zhǔn)確率已經(jīng)達(dá)到了 67%。
“不基于大模型的 AI 編程助手,其編程能力非常差。在我們看來,它甚至不屬于智能化的范疇。” 馬宇馳表示。Copilot 的橫空出世給了馬宇馳及其團(tuán)隊(duì)不少啟發(fā)。于是在 2021 年底,華為將研發(fā)工具 CodeArts 與盤古大模型相結(jié)合,開發(fā)了智能編程助手 CodeArts Snap。
據(jù)了解, CodeArts Snap 訓(xùn)練了 760 億行精選代碼,8500 萬(wàn)開源代碼倉(cāng),1300 余萬(wàn)篇技術(shù)文檔,具備智能生成、智能問答、智能協(xié)同三大核心功能,可以實(shí)現(xiàn)一句對(duì)話讓代碼生成、一次點(diǎn)擊即可自動(dòng)注釋和生成測(cè)試用例,一條指令即可智能部署。
當(dāng)前 CodeArts Snap 已經(jīng)積累了不少用戶,并且收獲了諸多反饋。馬宇馳表示,未來,CodeArts Snap 將持續(xù)演進(jìn),不斷提升智能化編程能力。他曾提到,在當(dāng)前階段而言,從模型優(yōu)化和工程優(yōu)化的角度來看,“基于大模型的代碼生成” 還面臨八大關(guān)鍵技術(shù)挑戰(zhàn)。這也是 CodeArts Snap 未來演進(jìn)的方向。
一是中文友好的代碼生成。目前諸多大模型的預(yù)訓(xùn)練語(yǔ)料數(shù)據(jù)都是以英文為主,中文語(yǔ)料占比僅為 3% 至 5%。在 IDE 中采用對(duì)話式交互時(shí),中文的表現(xiàn)要遠(yuǎn)遠(yuǎn)遜色于英文。如何在語(yǔ)料有限的情況下,在保障模型性能的條件下,增強(qiáng)中文語(yǔ)義的理解能力,滿足利用中文 / 英文描述同等的代碼生成能力,是當(dāng)前一大關(guān)注點(diǎn)。
二是 Prompt 優(yōu)化與交互式 Input 改進(jìn)。大模型一大特性就是,在交互時(shí)描述越精準(zhǔn), Prompt 寫得越好,生成的內(nèi)容質(zhì)量就越好。如何在用戶意圖表達(dá)不那么明確的情況下,也能判斷用戶輸入的任務(wù)描述完整性和合理性,并通過交互明確意圖,提高代碼生成準(zhǔn)確率很是關(guān)鍵。
三是集成學(xué)習(xí)探索。當(dāng)前大模型動(dòng)輒就是百億級(jí)、千億級(jí)、萬(wàn)億級(jí)參數(shù),要把如此大規(guī)模的數(shù)據(jù) “吃下去”,推斷成本非常高。因此,能否結(jié)合預(yù)訓(xùn)練模型,在滿足推斷準(zhǔn)確率的情況下,利用參數(shù)量更小的模型達(dá)到更大規(guī)模模型的推斷效果,達(dá)到提升推斷效率的目的呢?
四是體驗(yàn)評(píng)估與優(yōu)化。構(gòu)建客觀且貼近真實(shí)工程的評(píng)估指標(biāo) / 手段,能夠更好地幫助行業(yè)良性發(fā)展。
五是模型在線學(xué)習(xí)。用戶的數(shù)據(jù)反饋對(duì)于模型能力的提升非常有幫助。在保護(hù)用戶隱私的前提下,基于用戶的顯式和隱式反饋對(duì)在線的大模型進(jìn)行微調(diào),實(shí)現(xiàn)在線模型實(shí)時(shí)更新,都是業(yè)內(nèi)要探討的問題。
六是低成本 SFT。如何實(shí)現(xiàn)各種研發(fā)場(chǎng)景的訓(xùn)練 / 驗(yàn)證數(shù)據(jù)集快速低成本建設(shè),以及模型的訓(xùn)練及自動(dòng)驗(yàn)證部署也很關(guān)鍵。
七是后處理。后處理對(duì)于提升模型在實(shí)際應(yīng)用場(chǎng)景的效果非常關(guān)鍵。根據(jù)項(xiàng)目上下文,檢查和修復(fù)所生成代碼的編譯運(yùn)行錯(cuò)誤;結(jié)合單元測(cè)試,修復(fù)生成程序中的邏輯性錯(cuò)誤。雖然解決的都是小問題、小錯(cuò)誤,但是能讓整個(gè)代碼的生成質(zhì)量更上一層樓。尤其是未來,將會(huì)有更多大模型將同步生成代碼和生成測(cè)試,兩兩匹配,在閉環(huán)中提升代碼整體質(zhì)量。在這種情況下,后處理對(duì)于大模型整體能力的提升非常有幫助。
八是模型輕量化。模型輕量化的重要性毋庸置疑,它關(guān)系著成本、效率、性能和用戶體驗(yàn)。在保證精度不過多下降的前提下,采用輕量化模型支撐端測(cè)算力實(shí)現(xiàn)模型推斷,也很值得關(guān)注。文章來源:http://www.zghlxwxcb.cn/news/detail-633804.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-633804.html
到了這里,關(guān)于AI 編程想要再進(jìn)一步,大模型要解決哪些關(guān)鍵問題?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!