超越所有開源模型,擊敗 Claude、Bard,專門用于編程任務(wù)的大模型來(lái)了
最近一段時(shí)間,隨著大語(yǔ)言模型(LLM)的不斷發(fā)布,LLM 排位賽也變得火熱起來(lái),研究者們?cè)噲D在新的 LLM 評(píng)測(cè)系統(tǒng)中不斷刷新自家模型的分?jǐn)?shù)。
在這當(dāng)中,斯坦福發(fā)布的全新大語(yǔ)言模型排行榜 AlpacaEval 比較出圈,它是一種基于 LLM 的全自動(dòng)評(píng)估基準(zhǔn),且更加快速和可靠。很多著名的模型如 GPT-4、ChatGPT 等都在其上刷榜單。
前段時(shí)間,來(lái)自微軟的華人團(tuán)隊(duì)發(fā)布的 WizardLM(是一個(gè)經(jīng)過微調(diào)的 7B LLaMA 模型)在一眾模型中獲得第四名的好成績(jī),排在其前面的分別是 GPT-4、Claude 以及 ChatGPT,可見,WizardLM 成績(jī)還是很能打的。
近日,WizardLM 團(tuán)隊(duì)又發(fā)布了新的 WizardCoder-15B 大模型。至于原因,該研究表示生成代碼類的大型語(yǔ)言模型(Code LLM)如 StarCoder,已經(jīng)在代碼相關(guān)任務(wù)中取得了卓越的性能。然而,大多數(shù)現(xiàn)有的模型僅僅是在大量的原始代碼數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練,而沒有進(jìn)行指令微調(diào)。因而該研究提出了 WizardCoder,它通過將 Evol-Instruct(該方法生成具有不同難度級(jí)別的指令)方法應(yīng)用于代碼領(lǐng)域,為 Code LLM 提供復(fù)雜的指令微調(diào)。
在 HumanEval、HumanEval+、MBPP 以及 DS1000 四個(gè)代碼生成基準(zhǔn)測(cè)試中,WizardCoder 在很大程度上超過了所有其他開源 Code LLM。此外,WizardCoder 在 HumanEval 和 HumanEval + 上的表現(xiàn)甚至超過了最大的閉源 LLM,如 Anthropic 的 Claude 和谷歌的 Bard。
- 論文地址:https://arxiv.org/pdf/2306.08568.pdf
- 代碼地址:https://github.com/nlpxucan/WizardLM
在方法上,該研究表示受到 WizardLM 提出的 Evol-Instruct 方法的啟發(fā),除此以外,該研究還嘗試將代碼指令變得更加復(fù)雜,以提高代碼預(yù)訓(xùn)練大模型的微調(diào)效果。
在代碼生成領(lǐng)域,統(tǒng)一的代碼 prompt 模板如下:
本文使用的五種類型如下:
該研究采用以下過程來(lái)訓(xùn)練 WizardCoder。最初,他們使用 StarCoder 15B 作為基礎(chǔ),并使用代碼指令 - 跟隨(code instruction-following)訓(xùn)練集對(duì)其進(jìn)行微調(diào),該訓(xùn)練集通過 Evol-Instruct 進(jìn)化而來(lái)。微調(diào) prompt 格式概述如下:
WizardCoder 性能如何?
與閉源模型的比較。用于代碼生成的 SOTA LLM,如 GPT4、Claude 和 Bard,主要是閉源的。然而獲得這些模型 API 的訪問權(quán)限難度很大。該研究采用另一種方法,從 LLM-Humaneval-Benchmarks 中檢索 HumanEval 和 HumanEval + 的分?jǐn)?shù)。如下圖 1 所示,WizardCoder 位列第三,超過了 Claude-Plus(59.8 vs 53.0)和 Bard(59.8 vs 44.5)。
值得注意的是,與這些模型相比,WizardCoder 模型大小要小得多。此外,WizardCoder 比其他經(jīng)過指令微調(diào)的開源 LLM 表現(xiàn)出更顯著的優(yōu)勢(shì)。
與開源模型的比較。表 1 在 HumanEval 和 MBPP 基準(zhǔn)上對(duì) WizardCoder 與其他開源模型進(jìn)行了全面的比較。表 1 結(jié)果表明,WizardCoder 比所有開源模型都具有顯著的性能優(yōu)勢(shì)。
總結(jié)而言,從圖 1 和表 1 的實(shí)驗(yàn)結(jié)果中,可以得出以下結(jié)論:
- WizardCoder 的性能優(yōu)于最大的閉源 LLM,包括 Claude、Bard、PaLM、PaLM-2 和 LaMDA,盡管它要小得多。
- WizardCoder 比所有的開源 Code LLM 都要好,包括 StarCoder、CodeGen、CodeGee 以及 CodeT5+。
- WizardCoder 顯著優(yōu)于所有具有指令微調(diào)的開源 Code LLM,包括 InstructCodeT5+, StarCoder-GPTeacher 和 Instruct-Codegen-16B。
下圖為不同模型在 DS-1000 基準(zhǔn)上的結(jié)果: