文章标题:什么构成好的对齐数据?一项关于指令微调中自动数据选择的综合研究
作者/机构
- Wei Liu (上海科技大学)
- Weihao Zeng (北京邮电大学)
- Keqing He (美团)
- Yong Jiang (阿里巴巴集团)
- Junxian He (香港科技大学)

A1 主要贡献

本文旨在系统性地探究指令微调中“好数据”的特征,并基于此提出一种自动、高效的数据选择方法,以提升大型语言模型(LLM)对齐的效率。

  • 核心问题:尽管指令微调在LLM对齐中至关重要,且已有研究表明少量高质量数据即可取得优异性能,但领域内仍缺乏对“好数据”构成要素的系统性理解,以及如何自动且高效地筛选数据的方法。现有数据集的构建多依赖于启发式自动化(如模型蒸馏)或人工挑选。

  • 研究目标

    1. 复杂度(complexity)质量(quality)多样性(diversity)三个关键维度,量化评估指令数据的特征。
    2. 基于评估指标,设计一种简单有效的数据自动选择策略,以最少的数据实现最佳的对齐效果。
  • 创新点与主要贡献

    1. 系统性数据特征研究:本文对指令数据进行了三个维度的受控研究,检验了现有数据评估指标,并提出了新的度量方法,这些方法与最终的对齐性能表现出更强的相关性。
    2. 提出 EVOL COMPLEXITY 和 EVOL QUALITY:受【索引35,Wizardlm: Empowering large language models to follow complex instructions,2023,ArXiv】的启发,本文提出一种基于演化的数据度量方法。该方法首先通过迭代式提示(prompt)让ChatGPT对一个种子数据点进行演化,生成一系列在复杂度或质量上递增的变体。然后,让ChatGPT对这些变体进行排序和打分,并利用这些分数训练一个专门的打分器模型。这种方法能够产生更细粒度的复杂度或质量评分,优于直接打分。
    3. 提出 DEITA 数据选择策略与模型:结合上述评估指标,本文提出了一种简单有效的“分数优先,多样性感知(Score-First, Diversity-Aware)”数据选择策略。基于该策略筛选出的数据,本文训练了一系列名为 DEITA(Data-Efficient Instruction Tuning for Alignment)的模型。
    4. 卓越的实验性能:实验证明,DEITA 仅使用约6K个自动筛选的SFT样本,其性能便能达到甚至超越使用超过10倍数据量训练的SOTA开源模型(如Zephyr, Vicuna, WizardLM)。例如,DEITA-Mistral-7B在仅用6K SFT样本训练后,MT-Bench得分达到7.22。进一步结合DPO(直接偏好优化)后,DEITA-Mistral-7B + DPO(使用6K SFT和10K DPO样本)在MT-Bench上达到7.55分,在AlpacaEval上达到90.06%。
    5. 资源开源:本文发布了训练好的DEITA模型检查点以及筛选出的高效SFT数据集,以促进社区在数据高效对齐方面的研究。

图1:数据选择方法图示。我们从复杂度、质量和多样性三个维度衡量数据。I和R分别代表指令和响应。对于EVOL COMPLEXITY和EVOL QUALITY,我们首先遵循Xu等人(2023)的方法,通过演化来收集不同复杂度或质量的样本,然后我们让ChatGPT(本文中的“ChatGPT”指gpt-3.5-turbo-0613)对一个小型种子数据集的同一数据样本的变体进行排序和打分,并基于这些分数训练我们自己的复杂度和质量打分器。在最后一步,我们利用训练好的打分器,采用“分数优先,多样性感知”的方法来选择“好”的数据样本,详见§3。
图1:数据选择方法图示。我们从复杂度、质量和多样性三个维度衡量数据。I和R分别代表指令和响应。对于EVOL COMPLEXITY和EVOL QUALITY,我们首先遵循Xu等人(2023)的方法,通过演化来收集不同复杂度或质量的样本,然后我们让ChatGPT(本文中的“ChatGPT”指gpt-3.5-turbo-0613)对一个小型种子数据集的同一数据样本的变体进行排序和打分,并基于这些分数训练我们自己的复杂度和质量打分器。在最后一步,我们利用训练好的打分器,采用“分数优先,多样性感知”的方法来选择“好”的数据样本,详见§3。

A3 背景知识/关键Observation/设计原则

2.1 数据选择问题

数据选择问题的形式化定义。为了研究对齐最优数据的特性,本文在数据选择的框架内进行分析。在此背景下,我们深入研究了各种评估数据的指标,并利用这些指标选择一个数据子集进行指令微调。最终的对齐性能作为目标指标能否识别有效指令微调数据样本的指示器。形式上,给定一个大型指令微调数据池 $X = \{x_1, x_2, \cdots , x_n\}$,其中 $x_i$ 代表一个指令-响应对形式的独立数据样本。我们的目标是使用一个表示为 $\pi$ 的选择策略,从 $X$ 中选择一个大小为 $m$ 的子集 $S^{(m)}_\pi$。$m$ 是子集的大小,与指令微调中消耗的计算量成正比,因此我们也称 $m$ 为数据预算。通常,我们定义一个指标来评估数据,并根据该指标选择数据样本。将指令微сил后的对齐性能表示为 $Q$,数据预算为 $m$ 的最优数据选择策略 $\pi^*$ 满足:

公式
公式

在接下来的实证研究中,我们将通过根据特定指标选择 $S^{(m)}_\pi$ 并在其上执行指令微调,来探索各种数据评估指标及其相应的数据选择策略。

A2 方法细节

2.3 复杂度视角 – EVOL COMPLEXITY

复杂度在指令微调中的重要性。通常认为,长、难、复杂的数据样本对指令微调更有益(引用自【索引37,A preliminary study of the intrinsic relationship between complexity and alignment,2023,ArXiv】和【索引4,Instruction mining: High-quality instruction data selection for large language models,2023,ArXiv】)。例如,【索引35,Wizardlm: Empowering large language models to follow complex instructions,2023,ArXiv】通过提示ChatGPT“演化”数据样本以刻意增加其复杂度,从而产生了SOTA的开源对齐模型WizardLM。本节系统地研究了评估数据复杂度的各种指标,旨在确定对指令遵循能力贡献最大的复杂度概念。具体来说,我们只考虑复杂度维度,并将选择策略 $\pi_{complexity}$ 定义为选择具有最高复杂度分数的 $m$ 个样本。

复杂度度量的基线方法。本文研究了以下几种现有的复杂度度量方法作为基线:(1)随机选择;(2)指令长度,使用指令的长度作为复杂度的度量;(3)响应的困惑度(Perplexity),使用预训练模型以零样本方式计算响应的困惑度,高困惑度通常意味着样本的难度较大;(4)直接打分(Direct Scoring)(引用自【索引5,Alpagasus: Training a better alpaca with fewer data,2023,ArXiv】),直接提示ChatGPT对指令的难度和复杂度进行打分;(5)指令节点(Instruction Node)(引用自【索引37,A preliminary study of the intrinsic relationship between complexity and alignment,2023,ArXiv】),使用ChatGPT将指令转换为语义树,并采用树中节点的数量作为复杂度度量;(6)Instag Complexity(引用自【索引20,#instag: Instruction tagging for analyzing supervised fine-tuning of large language models,2023,ArXiv】),首先利用ChatGPT根据语义和意图对样本进行标记,然后基于ChatGPT的标签训练一个基于LLaMA的标注器来标记数据,他们使用标签数量作为复杂度的代理。我们采用了他们公开的LLaMA-2 7B标注器模型进行数据标注。(7)IFD(引用自【索引15,From quantity to quality: Boosting llm performance with self-guided data selection for instruction tuning,2023a,ArXiv】),一种基于响应损失计算的新复杂度指标。我们注意到,直接打分和指令节点方法不具备可扩展性,因为它们需要ChatGPT标注整个数据池,成本高昂。为节省成本,我们从每个数据池中随机抽取50K样本,并应用这两个基线方法。这些基线方法的相关提示词见附录E.1。

提出Evol Complexity方法。受Evol-Instruct利用ChatGPT演化样本使其更复杂的启发,我们提出了EVOL COMPLEXITY,一种基于演化的复杂度度量方法。具体来说,我们收集一个小型种子数据集 $D = \{(I^{(0)}_1, R^{(0)}_1), \cdots, (I^{(0)}_N, R^{(0)}_N)\}$,其中 $(I^{(0)}_k, R^{(0)}_k)$ 代表一个指令-响应对。对于每个指令样本 $I^{(0)}_k$,我们使用来自【索引35,Wizardlm: Empowering large language models to follow complex instructions,2023,ArXiv】的“深度演化提示”(In-Depth Evolving Prompt,详见附录E.2),通过增加约束、深化、具体化和增加推理步骤等技术来增强其复杂度。经过 $M$ 次迭代后,我们为 $I_k$ 获得了一组不同复杂度的指令,即 $\{I^{(0)}_k, \cdots, I^{(M)}_k\}$。这里我们设置 $M=5$,总共获得6个变体。

基于演化变体的排序与打分。如图1左侧所示,我们接着要求ChatGPT对这6个样本进行排序和打分(提示词见附录E.2),从而获得与指令对应的复杂度分数 $c$。我们强调,与直接打分不同,我们在一个提示中向ChatGPT提供所有6个样本——这些样本代表同一原始样本的不同演化阶段,这种打分方案有助于ChatGPT捕捉它们之间微小的复杂度差异,从而使复杂度分数能够实现更细粒度的区分。我们发现这至关重要,否则ChatGPT倾向于给大多数样本分配相似的分数,如附录B所示。

训练复杂度打分器。在获得ChatGPT对小型种子数据集的评分后,我们使用这些分数来训练一个LLaMA-1 7B模型,使其能够根据输入的指令预测复杂度分数。在多轮对话中,我们对每一轮单独评分,并将它们的总和作为最终分数。在本文中,我们使用从Alpaca数据集(引用自【索引28,Stanford alpaca: An instruction-following llama model,2023】)中随机抽取的2K个样本作为种子数据集。

复杂度实验结果。表2展示了使用各种复杂度指标从 $X_{sota}$ 和 $X_{base}$ 中选择6K数据样本的结果。我们的Evol-Complexity方法带来了最佳的对齐性能。我们观察到,虽然Instag Complexity在 $X_{sota}$ 上表现良好,但其在 $X_{base}$ 上的性能仅略好于随机选择。相比之下,EVOL COMPLEXITY在两个数据集上均取得了优异的性能,表明其在不同数据池中具有很强的鲁棒性。我们的方法与严重依赖ChatGPT标注的方法(如Direct Scoring和Instruction Node)相比也具有显著优势。结果还表明,指令长度并不是对齐所偏好数据的良好指标。有趣的是,困惑度这个直观的复杂度度量,其结果远差于随机选择基线。通过进一步调查,我们发现具有高困惑度的样本通常响应非常短。

表2:不同复杂度指标的MT-bench得分。所有方法均选择6K样本。“Pool=50K”表示数据选择在一个50K大小的子集中进行,因为使用ChatGPT标注整个数据池的成本过高。我们包含了我们的方法在50K数据池上的结果,以便与基线进行公平比较。
表2:不同复杂度指标的MT-bench得分。所有方法均选择6K样本。“Pool=50K”表示数据选择在一个50K大小的子集中进行,因为使用ChatGPT标注整个数据池的成本过高。我们包含了我们的方法在50K数据池上的结果,以便与基线进行公平比较。

2.4 质量视角 – EVOL QUALITY

质量在指令微调中的重要性。通常,能够提供准确、详细和有用响应的LLM更受人们青睐,正如【索引38,Judging llm-as-a-judge with mt-bench and chatbot arena,2023,ArXiv】所指出的。在本节中,我们进行了一项受控研究,以检验用于评估样本质量的各种指标。与EVOL COMPLEXITY类似,我们设计了一种基于质量的选择策略 $\pi_{quality}$,使我们能够根据不同的度量选择质量得分最高的 $m$ 个样本。接下来,我们将介绍所考察的基线方法和我们新提出的质量评估方法。

质量度量的基线方法。我们检验了以下作为质量评估基线的现有方法:(1)随机选择;(2)响应长度(Response Length),将响应的长度作为质量指标;(3)直接打分(Direct Scoring)(引用自【索引5,Alpagasus: Training a better alpaca with fewer data,2023,ArXiv】),提示ChatGPT直接评估响应对指令的准确性。相关提示词见附录E.3。

提出Evol Quality方法。与EVOL COMPLEXITY类似,我们引入EVOL QUALITY来增强质量度量的辨别力。对于一个给定的数据样本 $(I^{(0)}_k, R^{(0)}_k)$,我们提示ChatGPT进行演化,包括增强帮助性、增加相关性、丰富深度、培养创造性和提供额外细节。经过 $M$ 次迭代后,对于相同的指令 $I^{(0)}_k$,我们为 $R_k$ 获得了一组不同质量的响应,表示为 $\{R^{(0)}_k, \cdots, R^{(M)}_k\}$。与EVOL COMPLEXITY类似,我们设置 $M=5$。

基于演化变体的排序与打分。如图1中部所示,我们接着指示ChatGPT根据响应质量对这些响应进行排序和打分,从而获得每个响应对应的质量分数 $q$(提示模板见附录E.4)。与Evol Complexity类似,这种打分方法能够帮助ChatGPT辨别不同质量响应之间的细微差异,从而提供更细致的质量分数区分,如附录B所示。我们利用从种子数据集派生的分数来微调一个LLaMA-1 7B模型,使其能够根据给定的指令-响应对预测质量分数。种子数据集与EVOL COMPLEXITY使用的相同,即从Alpaca数据集中随机抽取的2K个样本。

质量实验结果。表3分别展示了从 $X_{sota}$ 和 $X_{base}$ 中选择前6K数据的实验结果。我们提出的EVOL QUALITY方法在对齐性能上始终表现出优越性。我们注意到,质量方差较大的数据池 $X_{base}$ 更容易受到质量指标的影响,这是直观的,因为这类数据池中存在许多低质量样本,会显著损害性能。这一结果表明,质量是一个必要的考虑维度,尤其是在处理含有大量低质量样本的数据池时。我们还观察到,响应长度与最终的对齐性能正相关,但对于像 $X_{sota}$ 这样已经具有高质量的数据集,其影响并不显著。

表3:不同质量度量的MT-bench得分。所有方法选择6K样本进行训练。“Pool=50K”表示数据选择在一个50K大小的子集中进行,因为使用ChatGPT标注整个数据池的成本过高。我们包含了我们的方法在50K数据池上的结果,以便与基线进行公平比较。
表3:不同质量度量的MT-bench得分。所有方法选择6K样本进行训练。“Pool=50K”表示数据选择在一个50K大小的子集中进行,因为使用ChatGPT标注整个数据池的成本过高。我们包含了我们的方法在50K数据池上的结果,以便与基线进行公平比较。

2.5 多样性视角 – 一种基于嵌入的方法

多样性在指令微调中的重要性。作为一项通用原则,一个先进的LLM应该能够熟练处理来自人类的各种请求。因此,用于指令微调的数据最好能保持最大的多样性。然而,真实世界的数据常常表现出冗余性(引用自【索引1,Semdedup: Data-efficient learning at web-scale through semantic deduplication,2023,ICLR Workshop】)。在本研究中,我们通过进行受控实验来探索数据多样性对对齐的影响,并引入一种简单而有效的策略 $\pi_{diversity}$,以在所选数据子集中保持多样性和简洁性。

多样性选择的实验设置。在这项工作中,我们提出了一种迭代方法来确保所选数据的多样性。该迭代方法从数据池 $X$ 中逐一挑选样本 $x_i$ 加入已选数据集 $S$,当 $x_i$ 对 $S$ 有多样性贡献时才加入。这个过程持续进行,直到达到预算 $m$ 或 $X$ 中所有 $x_i$ 都被遍历。为明确起见,我们将一个新考虑的样本 $x_i$ 带来的多样性收益形式化为一个指示函数 $\mathbf{1}[F(x_i, S)]$,仅当 $F(x_i, S)$ 为真时等于1,否则为0。$F$ 是我们稍后将定义的函数,用于评估 $x_i$ 相对于已选数据集 $S$ 是否表现出多样性。只有当 $\mathbf{1}[F(x_i, S)]$ 等于1时,$x_i$ 才会被添加到 $S$ 中。其他设置细节见附录A。

多样性度量的基线方法。除了随机选择,我们还评估了Instag diversity(引用自【索引20,#instag: Instruction tagging for analyzing supervised fine-tuning of large language models,2023,ArXiv】),该方法被设计为迭代地确保所选数据集内的多样性。它利用 $S$ 的标签集增长作为定义函数 $F$ 的度量。具体来说,它将 $F_t$ 定义为 $|T_S \cup T_{x_i}| > |T_S|$,其中 $T_S$ 代表 $S$ 中所有标签的集合,而 $T_{x_i}$ 代表与 $x_i$ 相关联的标签。

提出Repr Filter方法。我们检验了我们提出的基于嵌入的方法,称之为Repr Filter。具体来说,我们使用样本 $x_i$ 与其在 $S$ 中最近邻之间的距离作为定义 $F$ 的度量。我们利用LLaMA-1 13B模型对句子进行编码并计算余弦距离 $d$,然后定义 $F := d < \tau$,其中 $\tau \in (0, 1)$ 是一个阈值超参数。这意味着,当 $x_i$ 与其最近邻的嵌入距离小于一个阈值时,我们认为 $x_i$ 可以增加 $S$ 的多样性。在数据选择过程中,我们首先根据我们将在§3.1中详述的复杂度和质量分数对数据池 $X$ 进行排序,然后逐一检查每个样本,如果 $d < \tau$,则将 $x_i$ 放入 $S$ 中,其中 $S$ 初始化为空。这个过程在 $S$ 的大小达到数据预算 $m$ 时停止。在本文所有相关实验中,我们将阈值 $\tau$ 设置为0.9,同时在附录C.1中提供了关于 $\tau$ 和不同句子表示的分析结果。

多样性实验结果。表4分别展示了在 $X_{sota}$ 和 $X_{base}$ 上不同多样性策略的结果。将随机选择与另外两种确保多样性的策略进行比较,用随机选择数据训练的模型性能显著低于其他模型,这证明了多样性的关键作用。并且我们的方法在两个数据池上都能胜过Instag Diversity。

表4:不同多样性度量的MT-bench得分。所有方法选择6K样本进行指令微调。
表4:不同多样性度量的MT-bench得分。所有方法选择6K样本进行指令微调。

3.1 方法

分数优先,多样性感知的数据选择策略。尽管有多种方法可以结合复杂度、质量和多样性度量,但我们旨在保持其尽可能简单以实用。直观上,我们希望选择具有高复杂度和高质量分数的样本,同时保持集合的多样性。为此,我们提出了一种“分数优先,多样性感知”的数据选择策略,表示为 $\pi_{DEITA}$。我们的策略引入了一个新的evol分数 $s$,它通过将复杂度分数 $c$ 与质量分数 $q$ 相乘来结合复杂度和质量,即 $s := c \times q$。对于多轮对话,我们为每一轮计算这个分数,并将它们相加得到整个对话的最终分数。接下来,我们使用 $s$ 对 $X$ 中的所有样本进行排序,得到排序后的数据池 $X^* = (x^*_1, x^*_2, \dots, x^*_n)$,其中 $x^*_0$ 代表evol分数最高的样本。从 $S^\pi_{1_{DEITA}} = (x^*_0)$ 开始,我们按照REPR FILTER策略,从 $X^*/S^\pi_{DEITA}$ 中逐一迭代选择数据,并丢弃 $S^\pi_{DEITA}$ 的冗余样本。通过整合evol分数和REPR FILTER,我们的方法保证了最终数据集的复杂度、质量和多样性。我们的数据选择方法在图1的右侧部分进行了图示,并在算法1中进行了总结。

算法 1 分数优先,多样性感知的数据选择
1: 输入: 数据池 X, 数据预算 m
2: 输出: 选择的子集 S^{(m)}_{π_{DEITA}}
3: 初始化空数据集 S^{(m)}_{π_{DEITA}}
4: 使用组合的复杂度分数和质量分数 s = q * c 对 X 进行排序;
5: 得到排序后的数据池 X*;
6: for 每个样本 x ∈ X* do
7:     // d(x, S) 表示 x 与 S 中最近邻居的距离
8:     if d(x, S^{(m)}_{π_{DEITA}}) < τ then
9:         S^{(m)}_{π_{DEITA}} ← S^{(m)}_{π_{DEITA}} ∪ {x}
10:    else
11:        Continue
12:    end if
13:    X ← X \ {x}
14:    if |S^{(m)}_{π_{DEITA}}| 等于 m then
15:        Break
16:    end if
17: end for

训练DEITA。我们使用选定的包含 $m$ 个样本的数据集来训练DEITA。我们将得到的模型表示为DEITA_m。在本文中,我们分别基于LLaMA-1-13B、LLaMA-2-13B和Mistral-7B训练DEITA模型,训练细节在附录A中描述。

A4 实验环境

  • 数据集/数据池

    • $X_{sota}$:一个由SOTA对齐LLM的训练数据集集成而成的高质量数据池,共300K样本。数据来源包括WizardLM (Alpaca), WizardLM (ShareGPT), UltraChat, 和ShareGPT。此数据池代表了已有相对复杂、多样和高质量数据的场景。
    • $X_{base}$:一个模拟了在实践中可能遇到的整体质量较低且冗余的数据池,共100K样本。数据来源包括Alpaca, Dolly, OAssit, 和FLAN 2022。
  • 模型架构

    • 基础模型:LLaMA-1-13B, LLaMA-2-13B, Mistral-7B。
    • 复杂度/质量打分器:LLaMA-1 7B。
  • 硬件配置

    • GPU:4块(用于7B模型)或8块(用于13B模型)NVIDIA Tesla A100 GPU。
  • 软件配置

    • 并行训练框架:DeepSpeed Zero-Stage 3。
    • Attention实现:FlashAttention-2。
    • 对话模板:Vicuna-style template。
    • 超参数
      • DEITA (LLaMA-1-13B):批量大小128,训练6个epoch,学习率1e-5,warmup比例0.03。
      • DEITA (LLaMA-2-13B):批量大小128,训练6个epoch,学习率2e-5,warmup比例0.1。
      • DEITA (Mistral-7B)
        • SFT阶段:批量大小512,学习率2e-5,warmup比例0.1(cosine调度器),训练6个epoch。
        • DPO阶段:批量大小32,学习率5e-7,warmup比例0.1(linear调度器),训练9个epoch。
  • 评测基准

    • MT-Bench:一个具有挑战性的多轮对话基准,使用GPT-4作为裁判。
    • AlpacaEval:一个自动评估指令遵循能力的基准。
    • Open LLM Leaderboard:包含ARC, HellaSwag, MMLU, 和TruthfulQA四个分类任务。
    • 人工评测:在LIMA测试集上随机抽样100个prompt进行。

A4 实验结果

本文通过一系列实验验证了DEITA数据选择方法的有效性。

  • 数据选择方法对比:在表5中,DEITA与其它数据选择方法(如LIMA, Alpagasus, TAGLM)进行了比较。结果显示,基于LLaMA-1-13B骨干网络的DEITA-LLaMA1_6K在各项指标上均显著优于其他方法。

    表5:不同数据选择方法的比较,骨干模型为LLaMA-1-13B。对于Alpagasus,由于成本原因,我们无法使用ChatGPT对池中所有样本进行评分,因此我们对50K个随机样本进行评分和选择。†表示为公平比较而使用其发布的LLaMA-7B标注器模型获得的结果。
    表5:不同数据选择方法的比较,骨干模型为LLaMA-1-13B。对于Alpagasus,由于成本原因,我们无法使用ChatGPT对池中所有样本进行评分,因此我们对50K个随机样本进行评分和选择。†表示为公平比较而使用其发布的LLaMA-7B标注器模型获得的结果。

  • 与SOTA模型的性能对比:如表6所示,使用DEITA选择的6K和10K数据训练的模型,在LLaMA-1-13B、LLaMA-2-13B和Mistral-7B三个不同的基础模型上,其性能(仅SFT阶段)几乎全面超越了其他SOTA SFT模型。

    • DEITA模型甚至优于经过RLHF训练的LLaMA2-13B-Chat。
    • DEITA-Mistral-7B_10K在MT-Bench上取得了7.32分,成为7B和13B规模开源SFT模型中的SOTA。
    • 结合DPO后,DEITA-Mistral-7B_10K+DPO的MT-Bench得分提升至7.55,AlpacaEval得分达到90.06%,与使用30倍数据量训练的zephyr-beta相当。

    表6:不同指令微调模型在MT-Bench和AlpacaEval上的结果。相同基础模型中仅SFT的最佳结果加粗显示,整体最佳结果加下划线。†表示为公平比较而使用其发布的LLaMA-7B标注器模型获得的结果。Zephyr-beta-sft*是监督微调(SFT)阶段后的官方检查点。我们注意到该检查点的性能低于预期。我们推测原因是该检查点并非其论文中报告的最佳SFT检查点,因为它被用于进一步的DPO训练。
    表6:不同指令微调模型在MT-Bench和AlpacaEval上的结果。相同基础模型中仅SFT的最佳结果加粗显示,整体最佳结果加下划线。†表示为公平比较而使用其发布的LLaMA-7B标注器模型获得的结果。Zephyr-beta-sft*是监督微调(SFT)阶段后的官方检查点。我们注意到该检查点的性能低于预期。我们推测原因是该检查点并非其论文中报告的最佳SFT检查点,因为它被用于进一步的DPO训练。

  • MT-Bench子任务分析:图3的雷达图显示,DEITA模型在MT-Bench上的高分主要得益于在编码、数学和推理等高级能力上的显著提升,而这些能力在AlpacaEval中不那么突出。

    图3:DEITA模型及主要基线在MT-Bench上8个子任务的详细得分雷达图。
    图3:DEITA模型及主要基线在MT-Bench上8个子任务的详细得分雷达图。

  • Open LLM Leaderboard 结果:在表7中,仅使用6K或10K数据训练的DEITA SFT模型在不同基础模型上均取得了SFT对齐模型中的最佳平均分。DPO训练进一步将DEITA-Mistral-7B的平均分提升了约5个点,超越了Zephyr。

    表7:在Open LLM Leaderboard上的结果。数据大小默认表示SFT中的样本数量,除非另有说明。
    表7:在Open LLM Leaderboard上的结果。数据大小默认表示SFT中的样本数量,除非另有说明。

  • 数据规模扩展效应:图2展示了不同数据选择策略在不同数据预算下的性能。DEITA在所有数据量级上都表现最佳。值得注意的是,DEITA仅用3K样本就达到了与使用全部300K样本相当的性能,实现了100倍的数据缩减。此外,实验发现随着数据量增加,性能先升后降,这表明即使在高质量数据池中,“真正的好数据”比例也有限,凸显了数据选择的重要性。

    图2:在MT-Bench上的数据扩展结果。X轴表示使用的样本数量。
    图2:在MT-Bench上的数据扩展结果。X轴表示使用的样本数量。

  • 人工评测结果(源自附录D):在与Vicuna-13B-v1.3和随机选择基线的对比中(见表10),DEITA-LLaMA1_6K的表现与人类偏好高度一致。它显著优于随机选择基线,并与使用20倍数据量(125K样本)训练的Vicuna-13B-v1.3表现相当,大部分回答被标注者认为是平手。

A5 结论

本文深入探讨了什么构成好的对齐数据这一问题。研究通过在复杂度、质量和多样性三个维度上进行受控实验,提出了用于自动数据选择的新方法。基于这些方法筛选出的数据,我们训练了DEITA模型。实验结果表明,DEITA能够以10倍的训练样本量,达到或超过当前最先进的开源模型的性能。我们公开发布了所筛选的数据集,以帮助研究社区更高效地对齐模型。

A6 附录

A 实验设置细节

  • 基于多样性的数据选择:在§2.5的受控实验中,为了严格分析多样性的影响并促进各种方法之间的公平比较,我们精心控制了所选数据的复杂度和质量。具体做法是,确保所选数据 $S$ 的平均复杂度得分 $c$ 和质量得分 $q$ 的乘积与完整数据池 $X$ 的相应均值紧密对齐,限制其与均值的偏差最大为2。通过这种方式,我们首先从数据池中选择一个子集来构建一个新池,其中样本具有相似的 $c \times q$ 分数,然后我们在此基础上探索不同的多样性选择方法。

B 案例研究

表8和表9分别展示了使用直接打分法和我们提出的排序与打分法对复杂度和质量进行评分的实例。对这些实例的分析表明,直接打分法倾向于给出相似且过高的分数。相比之下,我们的方法能够辨别不同样本间复杂性或质量的细微差异,从而提供具有明显区分度的分数。

表8:不同方法生成的复杂度分数案例,包括直接打分法和我们提出的排序与打分法。
表8:不同方法生成的复杂度分数案例,包括直接打分法和我们提出的排序与打分法。

表9:不同方法生成的质量分数案例,包括直接打分法和我们提出的排序与打分法。
表9:不同方法生成的质量分数案例,包括直接打分法和我们提出的排序与打分法。

C 分析

C.1 Repr Filter分析

  • 实验设置:我们使用从0.8到0.9的不同阈值($\tau$)和不同的句子编码方法进行实验,以评估它们对Repr Filter的影响。我们探索了两种句子编码方法:一种是使用数据选择后将要训练的模型的表示,另一种是使用训练有素的句子嵌入模型,如E5-Large-V2【索引33,Text embeddings by weakly-supervised contrastive pre-training,2022,ArXiv】。我们称前者为基于模型(Model-based)的方法,后者为基于语义(Semantic-based)的方法。我们使用LLaMA-1 13B作为基于模型方法的表示,E5-Large-V2作为基于语义方法的表示。对于基于语义的方法,由于模型的上下文长度有限,我们通过平均其所有token的嵌入来编码一个句子。
  • 实验结果:图4展示了我们的Repr Filter在不同阈值$\tau$和不同句子表示下的结果。研究结果表明,基于模型的编码方法在不同阈值下表现出鲁棒性,与基线方法保持了相当大的差距。相反,基于语义的方法的性能随着$\tau$的调整而显著下降。由于E5-Large-V2在MTEB基准【索引21,MTEB: Massive text embedding benchmark,2023,EACL】上的优越性能,我们推测【索引3,TART: A plug-and-play transformer module for task-agnostic reasoning,2023,NeurIPS】,基于模型的方法的表示不仅编码了句子中的语义信息,还反映了后续指令微调数据的某些特征,因此我们优先使用它。

图4:在Xsota中设置不同τ和利用不同句子表示的结果
图4:在Xsota中设置不同τ和利用不同句子表示的结果

D 人工评估

  • 设置:由于在MT-Bench上进行人工评估因问题难度大而困难,我们利用LIMA测试数据集,并随机抽样其中100个作为我们的评估提示。我们招募了4位同事研究员作为我们评估的标注员。为确保公正性并隐藏模型偏见,每位标注员被分配50个样本,且不知道两个响应的来源。我们采用了成对盲测比较,标注者从三个选项中选择偏好:(1)A明显更好,(2)B明显更好,或(3)两者均不明显更好。为确保人工评估的可靠性,我们进行了标注员间一致性测试,作者-标注员一致性得分为77%,这是一个相当高的分数。
  • 结果:我们将DEITA-LLaMA1_6K与随机选择基线和Vicuna-13B-v1.3进行比较。在表10中,我们观察到人类偏好与GPT-4在MT-Bench上的评分评估高度一致。我们的数据选择策略在人工评估方面显示出比随机选择显著的优势。DEITA-LLaMA1_6K在人工评估方面与Vicuna-13B-v1.3表现相当,大部分响应被标注员认为是平局。然而,我们注意到DEITA-LLaMA1_6K的训练数据比使用125K训练样本的Vicuna-13B-v1.3少20倍。

表10:人工评估结果。Vicuna代表Vicuna-13B-v1.3模型。DEITA和随机选择都使用6K训练样本,而Vicuna则在125K样本上训练。骨干模型是LLaMA1-13B。
表10:人工评估结果。Vicuna代表Vicuna-13B-v1.3模型。DEITA和随机选择都使用6K训练样本,而Vicuna则在125K样本上训练。骨干模型是LLaMA1-13B。

图5:我们的一个标注提示和界面示例。
图5:我们的一个标注提示和界面示例。

E 提示词示例

E.1 复杂度基线

表11展示了Direct Scoring和Instruction Node等基线作为复杂度指标所使用的提示词。

表11:复杂度基线对应的提示模板,包括Direct Scoring和Instruction Node。
表11:复杂度基线对应的提示模板,包括Direct Scoring和Instruction Node。

E.2 EVOL COMPLEXITY

  • 增强复杂度的提示词:表12和表13展示了用于增强复杂度(如增加约束、深化、具体化和增加推理步骤)的提示词。
  • 排序和评分的提示词:表14展示了用于对不同复杂度的指令进行排序和评分的提示词。

表12:用于增加指令复杂度的提示,包括增加约束和深化。
表12:用于增加指令复杂度的提示,包括增加约束和深化。

表13:用于增加指令复杂度的提示,包括具体化和增加推理步骤。
表13:用于增加指令复杂度的提示,包括具体化和增加推理步骤。

表14:用于对不同复杂度的指令进行排序和评分的提示。
表14:用于对不同复杂度的指令进行排序和评分的提示。

E.3 质量基线

表15展示了Direct Scoring等基线作为质量指标所使用的提示词。

表15:质量基线对应的提示模板,包括Direct Scoring。
表15:质量基线对应的提示模板,包括Direct Scoring。

E.4 EVOL QUALITY

  • 增强质量的提示词:表16和表17展示了用于增强质量(如增强帮助性、增加相关性、丰富深度、培养创造性和提供额外细节)的提示词。
  • 排序和评分的提示词:表18展示了用于对不同质量的响应进行排序和评分的提示词。

表16:用于提高响应质量的提示,包括增强帮助性、增加相关性和丰富深度。
表16:用于提高响应质量的提示,包括增强帮助性、增加相关性和丰富深度。

表17:用于提高响应质量的提示,包括培养创造性和提供额外细节。
表17:用于提高响应质量的提示,包括培养创造性和提供额外细节。

表18:用于对不同质量的响应进行排序和评分的提示。
表18:用于对不同质量的响应进行排序和评分的提示。

方法细节中的引用汇总

  • 参考文献 [35]: Can Xu, Qingfeng Sun, Kai Zheng, Xiubo Geng, Pu Zhao, Jiazhan Feng, Chongyang Tao, and Daxin Jiang. Wizardlm: Empowering large language models to follow complex instructions. ArXiv preprint, abs/2304.12244, 2023.

    • 引用位置: A2 方法细节, 2.3 复杂度视角
    • 引用描述: 该文献被引用来说明通过“演化”数据样本以增加其复杂度是提升模型对齐性能的有效方法,其成果WizardLM是SOTA模型。本文的EVOL COMPLEXITY方法正是受此启发,并使用了其提出的“深度演化提示”(In-Depth Evolving Prompt)。
  • 参考文献 [37]: Yingxiu Zhao, Bowen Yu, Binyuan Hui, Haiyang Yu, Fei Huang, Yongbin Li, and Nevin L Zhang. A preliminary study of the intrinsic relationship between complexity and alignment. ArXiv preprint, abs/2308.05696, 2023.

    • 引用位置: A2 方法细节, 2.3 复杂度视角
    • 引用描述: 该文献被引用以支持“复杂数据样本对指令微调更有益”这一普遍观点。
  • 参考文献 [4]: Yihan Cao, Yanbin Kang, and Lichao Sun. Instruction mining: High-quality instruction data selection for large language models. ArXiv preprint, abs/2307.06290, 2023.

    • 引用位置: A2 方法细节, 2.3 复杂度视角
    • 引用描述: 同[37],该文献被引用以支持“复杂数据样本对指令微调更有益”的观点。
  • 参考文献 [5]: Lichang Chen, Shiyang Li, Jun Yan, Hai Wang, Kalpa Gunaratna, Vikas Yadav, Zheng Tang, Vijay Srinivasan, Tianyi Zhou, Heng Huang, et al. Alpagasus: Training a better alpaca with fewer data. ArXiv preprint, abs/2307.08701, 2023.

    • 引用位置: A2 方法细节, 2.3 复杂度视角 & 2.4 质量视角
    • 引用描述: 该文献提出的"Direct Scoring"方法被用作复杂度和质量评估的基线方法,即直接提示ChatGPT对指令的难度、复杂度或响应的准确性进行打分。
  • 参考文献 [20]: Keming Lu, Hongyi Yuan, Zheng Yuan, Runji Lin, Junyang Lin, Chuanqi Tan, Chang Zhou, and Jingren Zhou. #instag: Instruction tagging for analyzing supervised fine-tuning of large language models. arXiv e-prints, pp. arXiv–2308, 2023.

    • 引用位置: A2 方法细节, 2.3 复杂度视角 & 2.5 多样性视角
    • 引用描述: 该文献提出的"Instag Complexity"和"Instag diversity"被用作复杂度和多样性评估的基线方法。Instag Complexity使用标签数量作为复杂度的代理指标,Instag diversity则通过迭代地增加所选样本集的标签集来确保多样性。
  • 参考文献 [15]: Ming Li, Yong Zhang, Zhitao Li, Jiuhai Chen, Lichang Chen, Ning Cheng, Jianzong Wang, Tianyi Zhou, and Jing Xiao. From quantity to quality: Boosting llm performance with self-guided data selection for instruction tuning. ArXiv preprint, abs/2308.12032, 2023a.

    • 引用位置: A2 方法细节, 2.3 复杂度视角
    • 引用描述: 该文献提出的"IFD"被用作复杂度评估的基线方法,这是一个基于响应损失计算的新复杂度指标。
  • 参考文献 [38]: Lianmin Zheng, Wei-Lin Chiang, Ying Sheng, Siyuan Zhuang, Zhanghao Wu, Yonghao Zhuang, Zi Lin, Zhuohan Li, Dacheng Li, Eric Xing, et al. Judging llm-as-a-judge with mt-bench and chatbot arena. ArXiv preprint, abs/2306.05685, 2023.

    • 引用位置: A2 方法细节, 2.4 质量视角
    • 引用描述: 该文献被引用以支持“提供准确、详细、有用响应的LLM更受青睐”的观点,这是研究数据质量维度的动机。
  • 参考文献 [1]: Amro Kamal Mohamed Abbas, Kushal Tirumala, Daniel Simig, Surya Ganguli, and Ari S. Morcos. Semdedup: Data-efficient learning at web-scale through semantic deduplication. In ICLR 2023 Workshop on Multimodal Representation Learning: Perks and Pitfalls, 2023.

    • 引用位置: A2 方法细节, 2.5 多样性视角
    • 引用描述: 该文献被引用以说明真实世界的数据常常存在冗余,从而引出研究数据多样性的必要性。