本文共3600字,建议阅读10分钟
SCAR 方法在大语言模型指令微调领域取得了重要突破。
一、总览
这是 RMIT 大学、新南威尔士大学和莫纳什大学联合发表的论文。这篇论文提出了一种新的数据选择方法 SCAR(Style Consistency-Aware Response Ranking),旨在通过选择具有风格一致性的高质量训练数据来提高大语言模型指令微调的效率。
当前大语言模型的指令微调通常需要大量的训练数据,但这些数据往往存在风格不一致的问题,导致训练效率低下。如果全量数据中回答的风格不一致,SCAR 通过识别和选择风格一致的指令-回答对,能够在显著减少训练数据量的同时,达到甚至超越全量数据训练的效果。
实验结果表明,使用 SCAR 选择的数据进行微调,最好情况下仅用 0.7% 的原始数据就能匹配或超越使用全量数据训练的模型性能。
在代码生成任务上,使用 SCAR 选择的风格一致数据训练的 LLM 在 HumanEval 基准上取得了显著的性能提升,远超使用风格不一致数据训练的模型。在开放域问答任务中,仅使用 25% 的精选数据就能超越全量风格不一致数据的训练效果。
▲ 图1:不同回答类型在风格一致性维度的对比分析。左图展示了不同类型回答在 Linguistic Form 特征空间中的分布,右图为 Instructional Surprisal 的密度分布。Direct 表示由 GPT-3.5-Turbo 直接生成的回答,Referenced 表示 GPT-3.5-Turbo 在保留人类回答语义的基础上重新生成的回答。结果显示,直接生成的回答在风格上更加一致。
我们还开发了一个开源工具包,支持研究者便捷地应用 SCAR 方法进行数据选择和模型训练。该工具包提供了完整的数据选择流程,包括风格一致性评估、数据排序和子集选择等功能。
论文标题:
SCAR: Data Selection via Style Consistency-Aware Response Ranking for Efficient Instruction-Tuning of Large Language Models
论文链接:
https://arxiv.org/abs/2406.10882
数据和代码链接:
https://github.com/zhuang-li/SCAR
二、文章主要贡献
风格一致性理论框架:首次系统性地分析了训练数据中的风格一致性对大语言模型指令微调性能的影响,识别出 Linguistic Form 和 Instructional Surprisal 两个关键风格要素。
SCAR 数据选择方法:提出了一种基于风格一致性感知的数据排序方法,能够自动从大规模数据集中选择高质量、风格一致的训练样本。该方法在代码生成和开放域问答两个领域都取得了显著效果提升。
极致的数据效率: 实验证明,使用 SCAR 选择的数据进行训练,可以在仅使用 0.7%-25% 原始数据的情况下,达到或超越全量数据训练的性能。在某些情况下,精选的小数据集训练出的模型甚至比全量数据训练的模型表现更好。
跨域泛化能力:SCAR 方法展现出良好的跨域泛化能力,在代码域训练的排序器可以有效选择开放域的数据,为实际应用提供了灵活性。
三、问题描述
当前大语言模型指令微调面临的主要挑战是数据质量和一致性问题:
风格不一致性:现有的指令微调数据集通常由多个来源组合而成,包括人工标注数据和不同模型生成的合成数据。这些数据在语言形式、回答风格等方面存在显著差异,导致模型训练效率低下。
数据质量参差不齐:大规模数据集中往往包含大量低质量样本,这些样本不仅不能提升模型性能,反而可能引入噪声,影响模型的最终效果。训练成本高昂:使用全量数据进行训练需要大量的计算资源和时间成本,特别是对于个人研究者和小型团队来说,这种成本往往难以承受。
缺乏有效的数据选择策略:现有的数据选择方法大多基于简单的启发式规则或单一指标,缺乏对数据内在风格特征的深入理解,难以选出真正有价值的训练样本。
这些问题导致大语言模型的指令微调效率低下,训练成本居高不下,限制了该技术的普及和应用。
四、方法
风格要素识别:
- Linguistic Form:包括句子结构、标点符号使用、布局特征(如项目符号、标题)等表面语言特征
- Instructional Surprisal:衡量回答相对于给定指令的可预测性,通过困惑度和语义相关性进行量化
我们发现在如果数据的质量在用一等级,但是数据中回答的两种风格元素一致性更高的话,这个数据用来微调大模型会得到更好地效果。同时我们发现大语言模型生成的数据往往在风格上更一致,导致大语言模型生成的数据在质量跟人工数据相差无极的情况下能微调更好地模型。
基于这个发现,我们构造训练数据,包含人工回答,人工-大模型协同生成的回答,纯大模型生成的回答,训练了一个排序器给予跟语言模型回答相似的数据更高的分数。
SCAR 排序器架构:
使用神经网络构建排序函数,该函数能够为指令-回答对分配风格一致性分数。排序器通过以下组件实现:
- 风格特征的学习模块,从回答中抽取两个风格要素的特征 Linguistic Form 和 Instructional Surprisal。
- 质量约束机制,确保选择的数据既具有风格一致性又保持高质量。
- 三元组损失训练,优化风格特征的学习效果。
数据选择流程:
1. 训练 SCAR 排序器学习风格一致性模式
2. 对目标数据集进行排序和筛选
3. 选择得分最高的 k% 样本用于模型微调
五、实验和评估
我们设计了两个风格不一致的数据场景来验证 SCAR 的有效性:一是包含多个来源的人工标注数据,二是混合了不同 LLM 生成的合成数据。这些场景模拟了实际应用中常见的风格不一致问题。
1. 代码生成任务评估:在 HumanEval 和 MultiPL-E 基准上评估了 CodeLlama-7B 模型。结果显示,使用 SCAR 选择的 25% 数据训练的模型,在平均 Pass@1 指标上超越了使用全量数据训练的模型。具体而言,模型在 Python、Java、JavaScript 和 C++ 四种编程语言上都取得了显著提升。
2. 开放域问答评估:在 AlpacaEval 基准上评估了 Meta-Llama-3-8B 模型。使用 SCAR 选择的 10% 数据就能达到全量数据的性能水平,而在某些配置下,小数据集训练的模型 L.C. WinRate 甚至达到了 6.61,远超全量数据训练的 3.86。
▲ 图2:SCAR 与其他数据选择方法的性能对比。在代码生成和开放域问答任务中,SCAR 始终保持领先优势,特别是在小数据集场景下表现尤为突出。
3. 开源模型验证:在 OLMo-7B 和 StarCoder-15.5B 等开源了全量数据的模型上的实验进一步验证了 SCAR 的有效性。这两个模型所使用的原始数据都有风格不一致的特点。我们用 SCAR 筛选这些开源的全量数据,重新微调基座模型来比对全量数据和子集数据对大模型微调的影响。
特别是在 OLMo-7B 的实验中,使用仅 0.7% 原始数据的 SCAR 筛选的子集在部分基准测试上超过了官方全量训练模型的表现;而在 StarCoder-15.5B 上,SCAR筛选的数据子集在 HumanEval 和 MultiPL-E 等基准上的平均表现提升了2–4个百分点。
▲ 表1:开源模型验证结果。SCAR 选择的小规模数据集训练出的模型超越了官方全量数据训练的版本,证明了方法的突破性价值。
4. 风格一致性分析:通过多种指标分析验证了 SCAR 选择数据的风格一致性。结果表明,选择的数据的回答在 TTR、MTLD 和困惑度等指标的标准差显著降低,证明了方法有效的选择了风格一致的回答。
5. 消融实验:为了验证 SCAR 各个组件的重要性,我们进行了详细的消融实验。结果表明,风格表示学习、质量约束和参考回答等组件都对最终性能有重要贡献。
六、结论
SCAR 方法在大语言模型指令微调领域取得了重要突破。通过引入风格一致性的概念和相应的数据选择技术,该方法显著提升了训练效率,在大幅减少数据需求的同时提升了模型性能。
实验结果证明,精心选择的小规模的风格一致的数据集往往比大规模但风格参差不齐的数据集更有效。这一发现对于资源受限的研究环境和实际应用场景具有重要意义,为大语言模型的经济高效训练提供了新的路径。
SCAR 方法的跨域泛化能力和工具包的开源发布,为研究社区提供了实用的数据选择解决方案,有望推动大语言模型训练技术的进一步发展和普及。