最近一段时间,随着大言语模型(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 基准上的结果: