Recent work demonstrates that, after being fine-tuned on a high-quality instruction dataset, the resulting model can obtain impressive capabilities to address a wide range of tasks. However, existing methods for instruction data generation often produce duplicate data and are not controllable enough on data quality. In this paper, we extend the generalization of instruction tuning by classifying the instruction data to 4 code-related tasks and propose a LLM-based Generator-Discriminator data process framework to generate diverse, high-quality instruction data from open source code. Hence, we introduce CodeOcean, a dataset comprising 20,000 instruction instances across 4 universal code-related tasks,which is aimed at augmenting the effectiveness of instruction tuning and improving the generalization ability of fine-tuned model. Subsequently, we present WaveCoder, a fine-tuned Code LLM with Widespread And Versatile Enhanced instruction tuning. This model is specifically designed for enhancing instruction tuning of Code Language Models (LLMs). Our experiments demonstrate that Wavecoder models outperform other open-source models in terms of generalization ability across different code-related tasks at the same level of fine-tuning scale. Moreover, Wavecoder exhibits high efficiency in previous code generation tasks. This paper thus offers a significant contribution to the field of instruction data generation and fine-tuning models, providing new insights and tools for enhancing performance in code-related tasks.
翻译:摘要:近期研究表明,经过高质量指令数据集微调后的模型能够在广泛任务中展现出卓越能力。然而,现有指令数据生成方法常产生冗余数据,且对数据质量的控制能力不足。本文通过将指令数据分类为四类代码相关任务,扩展了指令微调的泛化能力,并提出了基于大语言模型的生成器-判别器数据加工框架,用以从开源代码中生成多样化、高质量的指令数据。由此我们构建了包含2万个指令实例的CodeOcean数据集,涵盖四类通用代码相关任务,旨在提升指令微调的有效性并增强微调模型的泛化能力。随后提出WaveCoder——经过广泛且多功能增强型指令微调的代码大语言模型,该模型专为增强代码语言模型的指令微调能力而设计。实验表明,在同等微调规模下,WaveCoder模型在各类代码相关任务的泛化能力上均优于其他开源模型,且在传统代码生成任务中展现出更高效率。本文为指令数据生成与模型微调领域做出了重要贡献,为提升代码相关任务性能提供了新视角与实用工具。