Google|OctoPack:指令微調(diào)代碼大語(yǔ)言模型
美國(guó)康奈爾大學(xué)的大模型相關(guān)研究人員近日發(fā)布論文:
OctoPack:指令微調(diào)代碼大語(yǔ)言模型
魔鬼就在錯(cuò)誤中: 基于大型語(yǔ)言模型的細(xì)粒度機(jī)器翻譯評(píng)估
原文鏈接 https://arxiv.org/abs/2308.07124
項(xiàng)目要點(diǎn)
- 提出COMMITPACK,一個(gè)包含350種編程語(yǔ)言,總量4TB的代碼提交(commit)數(shù)據(jù)集,用于指令微調(diào)(instruction tuning),每個(gè)提交包含代碼變更前后的對(duì)比、提交信息作為指令。
- 基于COMMITPACK過濾得到COMMITPACKFT,一個(gè)高質(zhì)量子集,用于指令微調(diào)。
- 提出HUMANEVALPACK評(píng)估基準(zhǔn),擴(kuò)展了之前的HUMANEVAL,包含3種任務(wù):代碼修復(fù)、代碼解釋和代碼生成,覆蓋6種語(yǔ)言,可以更全面評(píng)估代碼生成模型的能力。
- 在StarCoder模型上微調(diào)各種指令數(shù)據(jù),發(fā)現(xiàn)COMMITPACKFT數(shù)據(jù)集 mixed with OASST取得最佳效果,基于此訓(xùn)練了OCTOCODER和OCTOGEEX模型。
- 在HUMANEVALPACK上評(píng)測(cè)各模型,OCTOCODER在商用許可的模型中表現(xiàn)最好,封閉源的GPT-4效果最好。
- 討論了一些模型的局限,如無法準(zhǔn)確把控生成長(zhǎng)度、只能處理單文件等,未來可考慮讓模型執(zhí)行代碼、處理多文件、設(shè)計(jì)客觀自動(dòng)評(píng)測(cè)等。
- COMMITPACK也可用于預(yù)訓(xùn)練,本文進(jìn)行了相關(guān)實(shí)驗(yàn),未來可研究指令調(diào)優(yōu)和預(yù)訓(xùn)練的統(tǒng)一。
項(xiàng)目動(dòng)機(jī)
當(dāng)前機(jī)器翻譯自動(dòng)評(píng)估的指標(biāo)往往只提供單一的質(zhì)量得分,缺乏詳細(xì)的錯(cuò)誤信息。因此,本文的動(dòng)機(jī)是提出一種使用大型語(yǔ)言模型(LLM)的提示技術(shù)來識(shí)別和分類翻譯中的錯(cuò)誤,以填補(bǔ)這一缺口,并通過錯(cuò)誤范圍與人工標(biāo)注對(duì)齊來提供可解釋性的評(píng)估。
項(xiàng)目方法
利用Git提交的自然結(jié)構(gòu),將代碼變更與人類指令配對(duì),編譯了包含4TB的Git提交的數(shù)據(jù)集COMMITPACK,并在16B參數(shù)的StarCoder模型上與其他自然語(yǔ)言和合成代碼指令進(jìn)行對(duì)比評(píng)估。
項(xiàng)目?jī)?yōu)勢(shì)
在Python基準(zhǔn)測(cè)試中,COMMITPACK在未經(jīng)OpenAI訓(xùn)練的模型中取得了最先進(jìn)的性能(46.2% pass@1),而在HUMANEVALPACK的編碼任務(wù)中,OCTOCODER和OCTOGEEX表現(xiàn)最佳,展示了COMMITPACK在更廣泛的語(yǔ)言和自然編碼任務(wù)上的優(yōu)勢(shì)。