这篇文档属于类型a,即报告了一项原创性研究。以下是针对该研究的学术报告:
本研究由来自Microsoft和Hong Kong Baptist University的联合团队完成,主要作者包括Ziyang Luo、Can Xu、Pu Zhao等。论文以《WizardCoder: Empowering Code Large Language Models with Evol-Instruct》为题,发表于ICLR 2024(国际学习表征会议)。
科学领域:本研究属于代码大语言模型(Code LLMs)领域,聚焦于通过指令微调(instruction fine-tuning)提升模型在代码生成任务中的性能。
研究动机:尽管通用领域的大语言模型(如GPT-3.5)通过指令微调取得了显著进展,但代码领域的指令微调技术仍未被充分探索。现有代码模型(如StarCoder、CodeLlama)虽在预训练阶段表现优异,但在复杂指令泛化能力上落后于闭源模型(如ChatGPT、Claude)。
研究目标:提出Code Evol-Instruct方法,通过动态演化指令数据增强代码LLMs的能力,并开发WizardCoder模型,旨在超越现有开源模型,甚至媲美闭源模型。
研究团队提出了一种代码专属的指令演化方法,通过以下步骤动态提升指令复杂度:
1. 初始数据:以Code Alpaca数据集(约20k样本)为基础。
2. 演化策略:通过5类启发式方法迭代生成复杂指令:
- 添加约束(如增加时间/空间复杂度要求);
- 替换常见需求为冷门需求;
- 引入错误代码作为对抗样本;
- 增加逻辑步骤;
- 调整任务粒度。
3. 执行工具:使用GPT-3.5或GPT-4生成演化后的指令,最终生成约78k训练样本。
研究在5个主流代码生成基准上测试模型性能:
1. HumanEval(164 Python问题)
2. HumanEval+(扩展测试用例至平均774.8个/问题)
3. MBPP(500编程问题)
4. DS-1000(数据科学代码生成)
5. MultiPL-E(多语言评估,涵盖Java、C++等8种语言)
科学价值:
- 首次将Evol-Instruct方法适配至代码领域,提出Code Evol-Instruct框架;
- 证明指令复杂度对代码LLMs性能的决定性作用。
应用价值:
- WizardCoder可作为开源替代方案,性能接近GPT-3.5,降低对闭源模型的依赖;
- 为代码生成任务的指令设计提供方法论(如时间/空间复杂度约束的引入)。
此研究为代码大语言模型的指令微调提供了新范式,其开源模型和方法的可复现性将进一步推动领域发展。