引言

在当前的大语言模型 (LLM) 发展格局中,数据就是新的黄金。但我们并非痴迷于任何数据,而是特别专注于指令微调 (Instruction Tuning, IT) 数据。正是这种数据集,将原本只能进行原始文本预测的基础模型,转变为能够回答问题、总结邮件和编写代码的有用聊天机器人。

近期研究的一个主要趋势是“少即是多 (Less is More) ”。像 LIMA (Less Is More for Alignment,少即是多用于对齐) 这样的研究表明,要训练出一个优秀的模型,并不需要数百万条指令;可能只需要 1,000 个精心挑选的高质量示例就足够了。这引发了一场寻找完美“高质量”数据集的淘金热。每周都有一篇新论文声称“数据集 A 优于数据集 B”,或者某种特定的过滤方法能筛选出最好的数据。

但这里有一个令人不安的问题: 我们究竟如何知道数据集 A 更好?

通常,我们使用一个代理指标。我们拿一个模型,用数据集 A 对其进行训练,然后测量其性能表现。接着我们用数据集 B 训练同一个模型并进行比较。如果用 A 训练的模型获胜,我们就宣布数据集 A 是赢家。

这听起来合乎逻辑,但一篇名为 《Call for Rigor in Reporting Quality of Instruction Tuning Data》 (呼吁严谨报告指令微调数据质量) 的新论文揭示了这一过程中的一个关键缺陷。研究人员证明,我们关于数据质量的结论在很大程度上取决于超参数 (如学习率、批次大小和轮数) ,而研究人员往往随意选择这些参数。

在这篇文章中,我们将深入剖析这篇论文,了解随意的训练选择如何颠覆科学结论,为什么“标准”设置可能会误导我们,以及我们如何为 LLM 对齐科学带来更严谨的态度。

背景: 数据质量的代理指标

在剖析问题之前,让我们先建立背景。指令微调 (Instruction Tuning) 是将预训练模型 (如 Llama-2 或 Mistral) 在输入输出对 (指令和响应) 上进行微调的过程。

因为我们在数学意义上无法直接检查数据集的“质量” (质量是主观的) ,社区依赖于实证结果。逻辑遵循以下三段论:

  1. 前提: 好的数据集能产生好的模型。
  2. 实验: 我们在这个数据集上训练了一个模型,该模型在基准测试 (如 MT-Bench 或 AlpacaEval) 上获得了高分。
  3. 结论: 因此,这个数据集是高质量的。

这种方法给训练过程带来了巨大的压力。如果你要比较两个数据集,你必须确保训练过程对两者都是公平的。

隐藏变量

在训练神经网络时,你不仅仅是给它喂数据。你还必须配置烹饪模型的“烤箱”。这些配置被称为超参数 。 最常见的包括:

  • 轮数 (Epochs) : 模型查看整个数据集的次数。
  • 学习率 (Learning Rate, LR) : 模型在发现错误后更新其内部权重的幅度。
  • 批次大小 (Batch Size) : 模型在更新权重之前查看的样本数量。
  • 调度器 (Scheduler) : 学习率如何随时间变化 (例如,它是保持不变,还是衰减?) 。

在传统的机器学习中,寻找最佳超参数 (超参数优化或 HPO) 是一个标准步骤。然而,在 LLM 时代,训练是昂贵的。对于学术实验室来说,为一个 70 亿参数的模型做“网格搜索” (尝试每一种组合) 通常成本过高。

结果是,许多研究人员采用以前论文中使用的“标准”设置,或者根据经验猜测并坚持使用。我们关注的这篇论文的作者注意到,这些选择在整个领域中惊人地不一致。

表 1: 以前的研究报告的超参数,用于使用 1K 通用领域 IT 数据训练 LLM。数据池详细说明了抽取 1K 数据样本的来源。这些数据池的详细描述在表 4 中提供。\\(\\ ' _ { + } \\ '\\) 符号表示从所有提到的数据集的混合数据中抽取样本的实验。\\(\\because \\mathit { \\Pi } ^ { \\mathrm { ~ , ~ } }\\) 符号报告了从每个数据池单独采样的研究。

请看上面的 表 1 。 该表列出了最近的各项研究,这些研究都使用大约 1,000 个指令数据样本来训练模型。

注意其中的多样性:

  • 轮数 (Epochs) 范围从 3 到 15。
  • 学习率 (Learning Rates) 在 1e-4 和 2e-6 之间波动 (巨大的数量级差异) 。
  • 批次大小 (Batch Sizes) 从 8 到 128 不等。

有些论文使用“余弦 (Cosine) ”调度器;其他的则使用“线性 (Linear) ”或不使用。然而,所有这些论文都基于这些截然不同的设置发布了关于数据质量的确切结论。论文作者提出了一个简单但发人深省的问题: 我们能否仅仅通过改变这些设置来改变论文的结论?

核心方法: 压力测试结论

为了测试这一点,作者在“1,000 个样本”类别中的两个著名数据集之间设置了一场对决。

参赛选手

  1. LIMA (Less Is More for Alignment) : 一个包含 1,000 个提示和响应的数据集,由人工精心挑选。它因证明少量的人类高质量数据可以击败海量数据集而闻名。
  2. Alpaca-Longest: 从更大的 Alpaca 数据集中选出的 1,000 个样本子集。选择标准仅仅是选取标记 (token) 长度最长的样本。先前的一项研究 (Zhao et al., 2024a) 声称 Alpaca-Longest 代表了比 LIMA 更好的数据质量

设置

研究人员决定在两个数据集上训练一个 Llama-2-7B 模型。但是,他们没有选择一套“标准”的超参数,而是创建了一个包含 16 种不同设置的网格 (设置 1 到设置 16) 。

他们改变了:

  • 调度器: 余弦 (Cosine) vs. 线性 (Linear) 。
  • 学习率: 1e-5 vs. 2e-5。
  • 批次大小: 64 vs. 256。
  • 轮数: 3 vs. 15。

然后,他们使用 GPT-4 作为裁判 (一种称为“LLM-as-a-judge”的常见做法) ,在三个基准测试中评估生成的模型: KoalaMT-BenchSelf-Instruct

目标是观察 LIMA 是否总是输给 Alpaca-Longest,还是说“赢家”会随着超参数的变化而易主。

实验与结果

这项调查的结果直观地总结在 图 1 中。这是论文中最关键的可视化图表,让我们仔细拆解一下。

图 1: 使用 LIMA 和 Alpaca-Longest 训练的两个模型之间的性能比较。我们用每个数据集训练 Llama-2-7B 模型,并在用 Llama-2-7B 模型训练每个数据集时评估数据质量。Y 轴描绘了每个实验中使用的超参数设置。我们加粗了在所有三个评估数据集中始终表现出决定性结果的设置。

图 1 中,每一行代表 16 种超参数设置中的一种。列显示了针对三个不同基准测试 (Koala, MT_Bench, Self-Instruct) 的胜/平/负比率。数字表示用 LIMA 训练的模型战胜用 Alpaca-Longest 训练的模型的频率,反之亦然。

“反转”现象

仔细观察数据。

  • 案例 A (Alpaca 获胜) :设置 4 (Cosine, 1e-5 LR, 256 Batch, 3 Epochs) 。在 Koala 基准测试中,LIMA 获得了 47 场胜利,但明显输给了 Alpaca。在 MT_Bench 中,得分为 57 (低于其他设置) 。如果你是一个随意选择了设置 4 的研究人员,你可能会得出结论: “Alpaca-Longest 优于 LIMA。”
  • 案例 B (LIMA 获胜) : 现在看 设置 8 (Cosine, 2e-5 LR, 256 Batch, 3 Epochs) 。突然之间,在 Koala 基准测试中,LIMA 获得了 95 场胜利 , 而 Alpaca 只有 22 场。在 MT_Bench 上,它跃升至 63。如果你选择了设置 8,你会写一篇论文总结道: “LIMA 远优于 Alpaca-Longest。”

这就是“随意结论”的问题。 这两种陈述在科学上都是可复现的,但它们相互矛盾。 唯一的区别在于学习率或批次大小的微小调整。

“标准”设置的问题

作者进行了更深入的挖掘。他们想知道人们使用的“标准”设置是否有效。他们特别关注了轮数 (Epochs) 。

在文献中 (参考回表 1) ,训练 3 个轮数 是非常普遍的。这可能是从海量数据集 (如完整的 Alpaca 52k 数据集) 训练中延续下来的习惯,在那里 3 个轮数需要很长时间,并提供了足够的更新。

然而,当你只有 1,000 个数据点时 (如 LIMA 或 Alpaca-Longest 的情况) ,3 个轮数可能不足以让模型有效地学习。

表 2: 我们报告了在每种设置下训练的 Llama-2-7B 模型在 Koala 数据集上的评估性能。每种设置的详细信息在图 1 中列出。

表 2 提供了 Koala 数据集上正面交锋的详细分类。它将基线 (设置 1) 与其他设置进行了比较。

关于 轮数 出现了一个关键趋势:

  • 设置 1 (15 轮) 对比 设置 2 (3 轮) 。
  • 设置 7 (15 轮) 对比 设置 8 (3 轮) 。

作者发现, 15 个轮数 (设置 7 和 15) 的配置通常能最大化模型性能。这表明社区对小数据集使用“3 个轮数”的依赖,导致我们报告的是来自训练不足的模型的结果。我们是基于尚未完成学习的模型来判断数据质量的。

这仅仅是 Llama 的问题吗?

科学严谨性要求我们检查这是否是 Llama-2 架构特有的侥幸。为了解决这个问题,作者使用 Mistral-7B-v0.3 (一个更现代、更强大的模型) 重复了整套实验。

图 2: 使用 LIMA 和 Alpaca-Longest 训练的两个模型之间的性能比较 (Mistral-7B) 。我们用每个数据集训练 Mistral-7B 模型,并在用 Mistral-7B 模型训练每个数据集时评估数据质量。Y 轴描绘了每个实验中使用的超参数设置。我们加粗了在所有三个评估数据集中始终表现出决定性结果的设置。

图 2 所示,混乱依旧。

  • 设置 12 强烈倾向于 LIMA (在 Koala 上 116 胜对 21 负) 。
  • 设置 1 则更加平衡,甚至在不同的拆分中倾向于 Alpaca。

“反转”现象在这里也存在。作者还在 表 3 中提供了 Mistral 的详细胜/负分类。

表 3: 我们报告了在每种设置下训练的 Mistral-7B 模型在 Koala 数据集上的评估性能。每种设置的详细信息在图 1 中列出。

这种反复无常的一致性令人震惊。无论你使用的是 Llama-2 还是 Mistral,如果你盲目地选择超参数,你关于数据质量的结论实际上是随机的。

评分标准是什么?

为了确保评分本身不是错误的来源,作者使用了一个严格的“LLM-as-a-judge”提示词,并将其输入给 GPT-4。

数据集详情 表 5: 用于训练 LLM 的提示词: 对于不支持系统提示词的模型,我们将系统提示词和用户提示词合并为单个输入语句。

该提示词 (如上图所示) 明确要求裁判避免位置偏差 (偏袒第一个答案) 和长度偏差 (偏袒更长的答案) ,确保评估集中在有用性和相关性上。虽然基于 LLM 的评判有其自身的缺陷,但超参数设置之间的相对差异仍然有效,因为所有实验中的裁判都是不变的。

讨论: 对局部最优性的需求

那么,解决方案是什么?我们不能期望每个研究人员为每个实验都运行成本数千美元的大规模网格搜索。

作者主张 局部最优性 (Local Optimality) 的概念。

当声称“数据集 A 优于数据集 B”时,只选择一种设置 (例如,学习率 1e-5,3 个轮数) 并在其上运行两个数据集是不公平的。为什么?因为数据集 A 可能比数据集 B 收敛得更快。数据集 A 可能需要更高的学习率来跳出局部最小值,而数据集 B 可能在相同的速率下过拟合。

如果你以爬树的能力来评判一条鱼,它注定会失败。同样,如果你用不适合它的超参数设置来评判一个数据集,你测量的不是数据质量;你测量的是数据与那些随意设置的兼容性。

作者的建议

  1. 证明你的选择合理: 如果你选择 2e-5 的学习率,请解释原因。不要只说“以前的论文 X 这样做了”,特别是如果论文 X 使用了不同的模型或数据集大小。
  2. 寻找峰值: 你应该尝试为你要测试的每个数据集找到“局部最优”的超参数。报告数据集 A 在其最佳状态下与数据集 B 在其最佳状态下的对比表现。
  3. 承认训练不足: 对于小数据集 (如流行的 1k 子集) ,标准的“3 个轮数”很可能是不够的。实验表明,15 个轮数通常能产生明显更好的对齐效果。

结论与启示

这项研究为 NLP 和 LLM 社区敲响了必要的警钟。我们目前建立 AI 对齐的基础是假设我们知道哪些数据是“好的”。

论文《Call for Rigor in Reporting Quality of Instruction Tuning Data》证明了这个假设是摇摇欲坠的。只需简单地切换学习率或增加几个训练轮数,我们就可以完全颠覆“顶级数据集”的排行榜。

给学生和研究人员的关键要点:

  • 怀疑精神: 当阅读一篇声称“我们的数据选择方法优于基线”的论文时,检查超参数。他们使用了相同的设置吗?那些设置对基线来说是最佳的吗?
  • 敏感性: 要意识到 LLM 训练是高度敏感的。“数据质量”不是一个静态属性;它是数据与训练配方之间的相互作用。
  • 严谨性: 如果你在运行自己的实验,不要简单地复制粘贴配置文件。进行小规模的消融实验,验证你的模型是否实际上已经收敛 (完成学习) 。

开源 AI 的未来取决于高质量的数据。为了找到这些数据,我们首先需要确保我们的指南针——也就是我们训练和评估的方式——指向正北,而不是仅仅指向随机学习率带我们去的任何方向。