What Makes Good Data for Alignment? A Comprehensive Study of Automatic Data Selection in Instruction Tuning
作者: Wei Liu, Weihao Zeng, Keqing He, Yong Jiang, Junxian He
分类: cs.CL, cs.AI, cs.LG
发布日期: 2023-12-25 (更新: 2024-04-16)
备注: ICLR2024 Camera Ready. Data and model checkpoints are available at https://github.com/hkust-nlp/deita
💡 一句话要点
提出Deita:一种数据高效的指令调优方法,通过自动数据选择实现对齐。
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 指令调优 数据选择 数据高效 语言模型对齐 自动数据选择 LLaMA Mistral
📋 核心要点
- 现有指令调优方法依赖大量数据,成本高昂,且缺乏对数据质量和多样性的有效控制。
- Deita通过自动评估数据复杂性、质量和多样性,并据此选择高质量数据子集进行训练,提升效率。
- 实验表明,Deita仅用少量数据(6K SFT)即可达到或超过现有最佳模型的性能,显著降低了训练成本。
📝 摘要(中文)
指令调优是使大型语言模型与最终任务和用户偏好对齐的标准技术。最近的研究表明,数据工程在指令调优中起着关键作用——如果选择得当,只需少量数据即可获得卓越的性能。然而,我们仍然缺乏对良好指令调优数据的原则性理解,以及如何自动有效地选择数据。本文深入研究了对齐的自动数据选择策略。首先进行对照研究,从复杂性、质量和多样性三个维度衡量数据,并在此基础上检查现有方法并引入新技术以增强数据测量。随后,提出了一种基于测量选择数据样本的简单策略。我们提出了Deita(数据高效指令调优对齐),这是一系列使用自动选择的数据样本,在LLaMA和Mistral模型上进行微调的模型。实验表明,Deita仅使用6K SFT训练数据样本,性能优于或与最先进的开源对齐模型相当——比基线中使用的数据少10倍以上。当使用直接偏好优化(DPO)进一步训练时,使用6K SFT和10K DPO样本训练的deita-Mistral-7B + DPO实现了7.55 MT-Bench和90.06% AlpacaEval分数。我们希望这项工作能够提供自动数据选择工具,从而促进数据高效对齐。我们发布了我们的模型以及选定的数据集,供未来的研究更有效地对齐模型。
🔬 方法详解
问题定义:论文旨在解决指令调优中数据选择的问题。现有方法通常依赖大量数据,但并非所有数据都对模型对齐有益。低质量、缺乏多样性或过于复杂的数据可能导致性能下降和训练效率低下。因此,如何自动选择高质量、多样且复杂度适中的数据成为一个关键挑战。
核心思路:论文的核心思路是通过对数据样本进行多维度(复杂性、质量、多样性)的评估,然后基于评估结果选择最佳的数据子集进行指令调优。这种方法旨在提高数据效率,即用更少的数据获得更好的模型对齐效果。
技术框架:Deita的整体框架包含以下几个主要步骤:1) 数据测量:使用多种指标(包括现有方法和论文提出的新方法)来评估数据的复杂性、质量和多样性。2) 数据选择:基于数据测量结果,使用简单的策略(例如,选择在各个维度上得分较高的数据样本)来选择数据子集。3) 指令调优:使用选定的数据子集对预训练模型(如LLaMA或Mistral)进行指令调优。4) (可选) 偏好优化:使用直接偏好优化(DPO)进一步对模型进行微调,以更好地对齐用户偏好。
关键创新:论文的关键创新在于提出了一种综合性的自动数据选择方法,该方法不仅考虑了数据的质量,还考虑了数据的复杂性和多样性。此外,论文还提出了一些新的数据测量技术,用于更准确地评估数据的各个维度。
关键设计:论文的关键设计包括:1) 使用困惑度(perplexity)和token长度来衡量数据的复杂性。2) 使用预训练模型对数据进行打分,以衡量数据的质量。3) 使用聚类算法来衡量数据的多样性。4) 使用简单的加权平均策略来整合不同维度的数据测量结果,并据此选择数据样本。论文还探索了不同的损失函数和训练策略,以优化指令调优过程。
📊 实验亮点
Deita在实验中表现出色,仅使用6K SFT训练数据,就达到了与使用超过60K数据的现有最佳模型相当甚至更好的性能。例如,Deita-Mistral-7B + DPO模型在使用6K SFT和10K DPO数据训练后,在MT-Bench上取得了7.55分,在AlpacaEval上取得了90.06%的分数,证明了其数据效率和对齐能力。
🎯 应用场景
Deita的研究成果可广泛应用于各种需要指令调优的大型语言模型应用场景,例如对话系统、文本生成、问答系统等。通过自动选择高质量的训练数据,可以显著降低训练成本,提高模型性能,并加速模型的部署和应用。该方法还有助于提高模型的可控性和安全性,使其更好地满足用户需求。
📄 摘要(原文)
Instruction tuning is a standard technique employed to align large language models to end tasks and user preferences after the initial pretraining phase. Recent research indicates the critical role of data engineering in instruction tuning -- when appropriately selected, only limited data is necessary to achieve superior performance. However, we still lack a principled understanding of what makes good instruction tuning data for alignment, and how we should select data automatically and effectively. In this work, we delve deeply into automatic data selection strategies for alignment. We start with controlled studies to measure data across three dimensions: complexity, quality, and diversity, along which we examine existing methods and introduce novel techniques for enhanced data measurement. Subsequently, we propose a simple strategy to select data samples based on the measurement. We present deita (short for Data-Efficient Instruction Tuning for Alignment), a series of models fine-tuned from LLaMA and Mistral models using data samples automatically selected with our proposed approach. Empirically, deita performs better or on par with the state-of-the-art open-source alignment models with only 6K SFT training data samples -- over 10x less than the data used in the baselines. When further trained with direct preference optimization (DPO), deita-Mistral-7B + DPO trained with 6K SFT and 10K DPO samples achieve 7.55 MT-Bench and 90.06% AlpacaEval scores. We anticipate this work to provide tools on automatic data selection, facilitating data-efficient alignment. We release our models as well as the selected datasets for future researches to effectively align models more efficiently.