您的代码大模型表现如何?通过高质量数据赋能代码指令调优
大型语言模型的自主选择优化方法以及通过IFD指标识别差异以提高模型训练效率的研究对于提高LLM的效率和资源利用具有重要意义。
Aug, 2023
基于全面的模型性能至诚态度,我们系统调查了数据量、参数规模和数据构建方法对各种能力发展的影响,并通过新的40k人工指导的指令数据集进行了数百个模型检查点(7b到33b)的全面指导优化。我们的研究揭示了三个主要发现:(i)尽管数据量和参数规模直接影响模型的整体性能,但某些能力更容易受到其增加的影响,并且可以通过有限数据进行有效训练,而某些能力对这些变化高度抵抗。(ii)人工指导的数据在效率上明显优于GPT-4的合成数据,并且可以随着数据量增加不断提高模型性能,而合成数据则无法达到这种效果。(iii)指令数据带来了强大的跨能力泛化性,域外数据的评估结果反映了前两个观察结果。此外,我们还展示了这些发现如何指导更高效的数据构建,从而在公共基准测试中实现实际性能的提升。
Oct, 2023
指令调整对于大型语言模型的校准是关键步骤。数据集选择是指令调整的核心挑战之一,因为指令调整数据集的组成可以显著影响后续性能。本文提出了一种新的系统——质量-多样性指令调整(QDIT),提供了一个有原则的算法来控制数据集的多样性和质量,我们通过深入研究数据集多样性和质量对于指令调整性能的影响来得出两个关键见解:(1)数据集的多样性和质量之间存在自然的权衡关系,(2)增加数据集的多样性显著提高了最坏情况的指令跟随性能,从而提高了鲁棒性。通过在几个大规模指令调整数据集上验证QDIT的性能,我们发现它可以在维持或提高平均性能的同时,提高最坏情况性能达18%,相比质量驱动基准线。
Nov, 2023
通过改善数据质量,例如进行代码转换和模块化,自然语言生成代码的性能可以得到显著提升。研究结果还表明,使用较少但高质量的数据进行模型微调可以优于在原始数据集上进行微调。
Nov, 2023
模型导向的数据选择方法 (MoDS) 基于质量、覆盖度和必要性三个方面的考虑,从原始指令数据集中选择高质量的子集进行模型微调,以获得性能优于完整指令数据集的结果。
Nov, 2023
本文介绍了一种高效且多功能的方法,用于从微调数据集中选择多样且高质量的指令跟踪数据。我们首先通过数据集的增强和扩展增加了更多多样性和高质量的数据,然后依次应用多样性压缩和质量压缩来筛选所需的数据集。实验结果表明,即使只有有限数量的高质量指令数据,LLMs在自然语言理解任务和代码生成任务中仍能保持稳定的性能,特别是在某些情况下超过了在明显更大的指令数据集上训练的模型。
Dec, 2023
通过将指令数据分类到4个与代码相关的任务,并提出了基于LLM的生成-判别器数据处理框架,从开源代码生成多样且高质量的指令数据,进而介绍了CodeOcean,这是一个包含20,000个指令实例的数据集,用于增强指令调优的效果和优化精调模型的泛化能力,随后提出了WaveCoder,一种针对增强指令调优的Code LLM的精调模型,通过实验验证WaveCoder模型在不同代码相关任务上具有较好的泛化能力,并且在以往的代码生成任务中表现出高效性。该论文对指令数据生成和精调模型的领域做出了重要贡献,为增强代码相关任务的性能提供了新的见解和工具。
Dec, 2023
本文提出了一个面向代码的综合、无污染评估系统LiveCodeBench,其中收集了来自LeetCode、AtCoder和CodeForces三个竞赛平台的问题,着重评估LLMs在代码生成以外的自修复、代码执行和测试输出预测等更广泛的代码相关能力。
Mar, 2024
代码比较调优 (CCT) 是用于优化大型编程语言模型(Code LLMs)以更好地处理微妙的代码错误的简单而有效的调优方法。通过在标记和序列级别上将比较的概念引入指令调优中,使模型能够辨别代码中最细微的偏差。与包含手动添加的代码错误的原始代码进行比较时,我们使用标记级别的偏好损失进行详细的标记级别比较。此外,我们将代码段组合起来,创建一个新的指令调优样本用于序列级别比较,增强了模型的错误修复能力。在HumanEvalFix基准测试中的实验结果表明,CCT在各种代码LLMs上的pass@1分数超过了指令调优4个点,并且广泛的分析证明了我们方法的有效性。
Mar, 2024