hao86下載站:值得大家信賴的游戲下載站!

首頁 > 區(qū)塊鏈 > 微軟祭出代碼大模型WaveCoder!4項(xiàng)代碼任務(wù)2萬個(gè)實(shí)例數(shù)據(jù)集,讓LLM泛化能力飆升

微軟祭出代碼大模型WaveCoder!4項(xiàng)代碼任務(wù)2萬個(gè)實(shí)例數(shù)據(jù)集,讓LLM泛化能力飆升

時(shí)間:2024-01-08 15:29:04
來源:hao86下載
區(qū)塊鏈

【#區(qū)塊鏈# #微軟祭出代碼大模型WaveCoder!4項(xiàng)代碼任務(wù)2萬個(gè)實(shí)例數(shù)據(jù)集,讓LLM泛化能力飆升#】

原文來源:新智元

圖片來源:由無界 AI生成

指令調(diào)優(yōu)或許是讓大模型性能提升最有潛力的方法。

用高質(zhì)量數(shù)據(jù)集進(jìn)行指令調(diào)優(yōu),能讓大模型性能快速提升。

對此,微軟研究團(tuán)隊(duì)訓(xùn)練了一個(gè)CodeOcean數(shù)據(jù)集,包含了2萬個(gè)指令實(shí)例的數(shù)據(jù)集,以及4個(gè)通用代碼相關(guān)任務(wù)。

與此同時(shí),研究人員微調(diào)了一個(gè)代碼大模型WaveCoder。

論文地址:https://arxiv.org/abs/2312.14187

實(shí)驗(yàn)結(jié)果表明,Wavecoder優(yōu)于其他開源模型,在以前的代碼生成任務(wù)中表現(xiàn)出色。

指令調(diào)優(yōu),釋放「代碼大模型」?jié)摿?/strong>

過去的一年,GPT-4、Gemini、Llama等大模型在一系列復(fù)雜NLP任務(wù)中取得了前所未有的性能。

這些LLM利用自監(jiān)督預(yù)訓(xùn)練的過程,以及隨后的微調(diào),展示了強(qiáng)大的零/少樣本的能力,能夠有效遵循人類指示完成不同的任務(wù)。

然而,若想訓(xùn)練微調(diào)這樣一個(gè)大模型,其成本非常巨大。

因此,一些相對較小的LLM,特別是代碼大語言模型(Code LLM),因其在廣泛的代碼相關(guān)任務(wù)上的卓越的性能,而引起了許多研究者的關(guān)注。

鑒于LLM可以通過預(yù)訓(xùn)練獲得豐富的專業(yè)知識(shí),因此在代碼語料庫上進(jìn)行高效的預(yù)訓(xùn)練,對代碼大模型至關(guān)重要。

包括Codex、CodeGen、StarCoder和CodeLLaMa在內(nèi)的多項(xiàng)研究已經(jīng)成功證明,預(yù)訓(xùn)練過程可以顯著提高大模型處理代碼相關(guān)問題的能力。

此外,指令調(diào)優(yōu)的多項(xiàng)研究(FLAN、ExT5)表明,指令調(diào)優(yōu)后的模型在各種任務(wù)中的表現(xiàn)符合人類預(yù)期。

這些研究將數(shù)千個(gè)任務(wù)納入訓(xùn)練管道,以提高預(yù)訓(xùn)練模型對下游任務(wù)的泛化能力。

比如,InstructGPT通過整合人類標(biāo)注者編寫的高質(zhì)量指令數(shù)據(jù),有效地調(diào)整了用戶輸入,推進(jìn)指令調(diào)優(yōu)的進(jìn)一步探索。

斯坦福的Alpaca利用ChatGPT通過Self-Instruct的方法,自己生成指令數(shù)據(jù),進(jìn)而用于指令調(diào)優(yōu)的過程。

WizardLM和WizardCoder則應(yīng)用了evol-instruct的方法,進(jìn)一步提高了預(yù)訓(xùn)練模型的有效性。

這些近來的研究都體現(xiàn)了,指令調(diào)優(yōu)在提高大模型性能方面,展現(xiàn)出強(qiáng)大的潛力。

基于這些工作,研究人員的直覺是,指令調(diào)優(yōu)可以激活大模型的潛力,然后將預(yù)訓(xùn)練模型微調(diào)到出色的智能水平。

對此,他們總結(jié)了指令調(diào)優(yōu)的主要功能:

- 泛化

指令調(diào)優(yōu)最初是為了增強(qiáng)大模型的跨任務(wù)泛化能力而提出的,當(dāng)使用不同的NLP任務(wù)指令進(jìn)行微調(diào)時(shí),指令調(diào)優(yōu)可提高模型在大量未見任務(wù)中的性能。

- 對齊

預(yù)訓(xùn)練模型從大量token和句子層面的自監(jiān)督任務(wù)中學(xué)習(xí),已經(jīng)具備了理解文本輸入的能力。指令調(diào)優(yōu)為這些預(yù)訓(xùn)練模型提供了指令級(jí)任務(wù),讓它們能夠從指令中提取原始文本語義之外的更多信息。這些額外的信息是用戶的意圖,能增強(qiáng)它們與人類用戶的交互能力,從而有助于對齊。

為了通過指令調(diào)優(yōu)提高代碼大模型的性能,目前已有許多設(shè)計(jì)好的生成指令數(shù)據(jù)的方法,主要集中在兩個(gè)方面。

例如,self-instructe、vol-instruct利用teacher LLM的零/少樣本的能力來生成指令數(shù)據(jù),這為教學(xué)數(shù)據(jù)的生成提供了一種神奇的方法。

然而,這些生成方法過于依賴于teacher LLM的性能,有時(shí)會(huì)產(chǎn)生大量的重復(fù)數(shù)據(jù),便會(huì)降低微調(diào)的效率。

CodeOcean:四項(xiàng)任務(wù)代碼相關(guān)指令數(shù)據(jù)

為了解決這些問題,如圖2所示,研究人員提出了一種可以充分利用源代碼,并明確控制生成數(shù)據(jù)質(zhì)量的方法。

由于指令調(diào)優(yōu)是為了使預(yù)訓(xùn)練模型與指令遵循訓(xùn)練集保持一致,研究人員提出了一個(gè)用于指令數(shù)據(jù)生成的LLM Generator-Disciminator(大模型生成器-判別器)框架。

通過使用生成器和判別器,最新方法可以使數(shù)據(jù)生成過程,更可定制和更可控。

該方法以原始代碼作為輸入,選擇核心數(shù)據(jù)集,通過調(diào)整原始代碼的分布,可以穩(wěn)定地生成更真實(shí)的指令數(shù)據(jù),控制數(shù)據(jù)的多樣性。

針對上述挑戰(zhàn),研究人員將指令實(shí)例分類為4個(gè)通用的代碼相關(guān)任務(wù):代碼匯總、代碼生成、代碼翻譯、代碼修復(fù)。

同時(shí),使用數(shù)據(jù)生成策略為4個(gè)代碼相關(guān)的任務(wù)生成一個(gè)由20000個(gè)指令實(shí)例的數(shù)據(jù)集,稱為CodeOcean。

為了驗(yàn)證最新的方法,研究人員將StarCoder、CodeLLaMa、DeepseekCoder作為基礎(chǔ)模型,根據(jù)最新的數(shù)據(jù)生成策略,微調(diào)出全新的WaveCoder模型。

與此同時(shí),研究人員在 HumanEval、MBPP、HumanEvalPack對模型進(jìn)行了評估,結(jié)果表明,WaveCoder在小規(guī)模指令調(diào)優(yōu)的基準(zhǔn)上擁有出色的性能。

代碼數(shù)據(jù)生成

如上所述,研究人員選擇了4個(gè)具有代表性的編碼任務(wù),并從開源數(shù)據(jù)集中收集原始代碼。

以下具體介紹了訓(xùn)練數(shù)據(jù)生成過程。

在本節(jié)中,我們將介紹我們探索的方法細(xì)節(jié)。我們首先選擇4個(gè)代表性的編碼任務(wù),并從開源數(shù)據(jù)集中收集原始代碼。

對于每個(gè)任務(wù),作者使用GPT-3.5-turbo生成指令數(shù)據(jù)進(jìn)行微調(diào)。生成提示如表2所示。

如下,是LLM Generator-Disciminator整體架構(gòu),也是數(shù)據(jù)生成的完整過程。

Codesearchnet是一個(gè)包含來自 GitHub 上托管的開源庫的200萬對(注釋、代碼)的數(shù)據(jù)集。它包括6種編程語言的代碼和文檔。我們選擇 CodeSearchNet 作為我們的基礎(chǔ)數(shù)據(jù)集,并應(yīng)用基于 coreset 的選擇方法KCenterGreedy來最大化原始代碼的多樣性。

具體來說,生成器根據(jù)輸入(a)生成指令數(shù)據(jù)。隨后,判別器接受輸出并生成分析結(jié)果,輸出(b)包括四個(gè)鍵,研究人員將這些信息作為指令調(diào)優(yōu)的輸入和輸出。

分析(c)包括每條規(guī)則的詳細(xì)原因和總體答案,以檢查樣本是否滿足所有要求。

實(shí)驗(yàn)評估結(jié)果

代碼生成任務(wù)評估

表3顯示了兩個(gè)基準(zhǔn)上不同大模型的pass@1得分。從結(jié)果來看,我們有以下觀察結(jié)果:

WaveCoder大大優(yōu)于使用少于20k指令調(diào)優(yōu)數(shù)據(jù)(InsT Data)的指令模型訓(xùn)練。

經(jīng)過微調(diào)過程,與基礎(chǔ)模型和開源模型的選擇相比,最新模型的性能顯示出實(shí)質(zhì)性的改善,但它仍然落后于專有模型的指導(dǎo)模型訓(xùn)練超過70k的訓(xùn)練數(shù)據(jù)。

研究人員還用HumanEvalPack上最先進(jìn)的Code LLM對WaveCoder進(jìn)行評分,如表4。

表5列出了WaveCoder在代碼匯總?cè)蝿?wù)方面的結(jié)果,突出顯示了以下顯著的觀察結(jié)果:

參考資料:

https://arxiv.org/abs/2312.14187

小編推薦下載

相關(guān)文章

更多>>

資訊排行

同類軟件下載