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