为监督微调准备数据 第2部分:高级数据策略

监督微调数据准备的高级方面。本两篇系列的第二篇涵盖使用学习曲线评估数据就绪性、选择高价值数据子集、使用合成和蒸馏样本增强数据以及混合数据源。

来源:亚马逊云科技 _机器学习

监督微调的数据准备在数据集清理和格式正确后并未结束。更困难的问题接踵而至。您实际上需要多少数据?您应该收集更多数据,还是选择现有数据中更好的子集?当人工标注无法扩展时,您如何生成高质量的示例?您又如何在不抹除模型通用能力的前提下对其进行专业化?本文假设您已准备好经过质量检查、符合模式要求的SFT数据集,并准备对其进行训练优化。本系列的第一篇文章《准备监督微调数据 第1部分:格式与质量》涵盖了这些基础工作:Amazon Nova期望的对话格式、捕获格式错误和低信号示例的质量检查,以及如何划分训练数据和评估数据而不发生泄漏。如果您的数据集尚未经过这些步骤,请从那里开始。

第二篇文章涵盖四项高级策略:通过学习曲线分析评估数据就绪状态、数据子集选择与过滤、数据增强和数据混合。我们在全文中引用了Amazon Nova定制化的研究发现,这些指导适用于您选择的任何模型。

数据就绪状态评估

在数据经过清理和格式化后,评估您是否有足够的信号来进行有效训练。

数据量与分布评估

作为一般起点,一个典型的SFT任务计划大约需要2,000个高质量训练样本。将此视为粗略估计:正确的规模随任务难度以及模型当前行为与目标之间的差距而变化。简单的格式或风格变更可能只需500个样本,而复杂的多步骤推理任务可能需要10,000个或更多样本。每个任务和领域都有不同的饱和特征。

在运行这些实验之前,有一个先决条件比其他任何事情都更重要:一个明确定义的评估基准。这意味着一个能够代表生产流量的评估集,并配有反映您的用例“良好”定义的指标。大多数团队发现这比准备训练数据本身更难。如果您还没有评估基准,请先构建它。Amazon Bedrock评估支持针对您自己的数据集和指标评估模型,AWS机器学习博客上的《评估大型语言模型的质量与责任》一文介绍了构建评估流水线的方法。

在基准就位后,通过学习曲线分析来实证确定您的数据集规模:

  • 训练一次,评估检查点。在您的完整数据集上运行单次训练任务,并保存中间检查点,例如每训练10-20%保存一次。在保留的评估集上评估每个检查点。在第一个周期中,步骤N处的检查点大约见过您独特数据的N/总步骤数,因此这近似于一条数据缩放曲线,而无需多次训练运行。
  • 绘制性能与数据规模的关系图。将您的下游指标与消耗的训练token数绘制成图。您需要寻找饱和点,即数据量翻倍时主要指标的提升不到1-2个百分点。
  • 当收益递减时停止。如果曲线趋于平缓,更多相同类型的数据不会有帮助。要么提前停止训练以节省计算资源,要么添加质的不同数据,专门针对模型仍然出错的失败案例。图1显示了连续检查点的增益如何区分趋于平缓的曲线和仍在改进的曲线。
  • 图1:阅读每次翻倍的增益,而不仅仅是最终得分。当数据翻倍使主要指标提升不足1到2个百分点时,更多相同类型的数据不太可能有帮助。数值为示意性

    为什么更多数据并不总是意味着更好的性能

    SFT并不遵循与预训练相同的单调幂律缩放。SFT缩放研究表明,仅凭数据量并不能保证成比例的收益。重要的是指令集的覆盖范围和深度。《数据重复优于缩放》有力地证明了这一点。在固定计算预算下,对400个推理示例进行128个周期的训练,在AIME和GPQA上的表现比在51,200个示例上进行单周期训练高出12-26个百分点。一个较小的、高质量的数据集经过充分记忆训练,可以胜过模型仅见过一次的大型数据集。训练token准确率可作为一个实用的停止准则,因为在模型达到接近完美的训练准确率后,收益趋于平缓。

    数据子集选择与过滤

    当收益递减开始时,智能数据选择可以胜过在完整集上训练。DEITA、DELIFT和核心集选择等方法可识别覆盖任务空间的最小数据子集,同时保持质量和多样性。这些方法根据质量、多样性以及每个示例对模型的实际教学效果对候选数据进行评分。两个突出优势是:

  • 用更少的样本达到或超过全数据性能。移除冗余或低质量示例可提供更清晰的梯度信号。AlpaGasus表明,通过质量过滤筛选出前20%的数据,训练速度更快且得分高于完整集。《重新思考数据选择》表明子集选择可以胜过全数据集训练。
  • 减少灾难性遗忘。更少、更有针对性的样本意味着更少的梯度更新将模型从其预训练能力上拉开。这使得子集选择成为数据混合的自然补充:您可以在减少遗忘的情况下实现任务专业化,甚至可能完全不需要混合。
  • 一个实用的工作流程将就绪评估和选择联系在一起。学习曲线是一种诊断手段(一次训练运行并保存检查点),因此您可以在无需重复进行大规模训练运行的情况下做出这些决策:

  • 在您的完整数据集上运行学习曲线诊断。
  • 识别饱和点。
  • 如果提前饱和,则数据集的尾部添加的信号很少。策划一个高价值子集(质量和多样性过滤),并以此作为后续训练集。这不是为了相同结果而重复诊断运行:经过策划的子集在未来的每次再训练周期中训练速度更快,并且质量过滤通过移除向梯度添加噪声的低价值示例,通常得分高于完整集(本节前面引用的AlpaGasus结果)。
  • 如果在100%时仍在改进,则数据量是瓶颈。从错误分析中收集更多针对失败案例的数据,而非更多相同分布的数据。
  • 如果针对性数据成本高昂,请考虑将带有程序化验证的强化微调作为更高效的途径。
  • 数据增强

    当数据集过小或过窄时,增强可以以不成比例的标注成本来扩展数据集。现代SFT最有影响力的增强形式是生成推理轨迹和合成演示。在实践中,大多数团队通过以下三种方式之一获取增强数据:

  • 从更强模型蒸馏。从DeepSeek-R1或前沿商业模型等能力强的教师模型生成轨迹或响应,验证最终答案,并在正确样本上保留输出。这是大多数开放推理数据集的构建方式。
  • 自生成并过滤。让您正在微调的基础模型以高温度为每个问题生成多个候选响应,然后仅保留最终答案正确或推理在样本间自洽的响应。这是STaR背后的核心思想。
  • 为高利害领域放大人工编写数据。当正确性比数据量更重要时,在医疗、法律或安全关键环境中,专家编写的示例仍然是黄金标准。您可以通过使用大型语言模型将专家推理改写为多种风格,同时保留逻辑步骤来放大它们。
  • 除了推理轨迹之外,经典的增强技术还直接扩展指令数据集。Self-Instruct从一个小种子集引导出新的指令-响应对,而Evol-Instruct则沿着受控维度(如添加约束或更深的推理要求)演化现有指令。更简单的转换也有帮助:改写提示以涵盖措辞变化,以及重新格式化响应以匹配目标输出风格。这些技术直接解决了预测SFT泛化能力的覆盖范围和深度属性。

    两条质量原则指导增强数据。首先,风格多样性很重要,而不仅仅是内容。两个正确但结构不同的解决方案比两个相同的解决方案更有用,这是MAmmoTH所利用的模式。其次,验证是必不可少的。每个增强示例都应达到与人工策划数据相同的质量标准,因为合成生成是重复和细微错误最常见的来源之一。在增强数据进入您的训练集之前,对其应用第一篇文章中的去重和过滤步骤。

    数据混合模式

    当您针对特定任务微调模型时,可能会降低其在其他能力上的性能,这种现象称为灾难性遗忘。数据混合通过将您的目标任务数据与保留模型现有优势的样本混合来解决这个问题。对于Amazon Nova定制,Amazon Nova Forge支持此模式,因此您可以在定制的每个阶段将专有数据与Amazon策划的训练数据混合。

    一个重要的细微差别:数据混合并不总是有助于您的目标任务。其主要目的是在专业化的同时保留通用能力,而混合通用数据通常会直接损害您的领域指标,因为每个通用数据token都会取代一个领域数据token。当数据源共享底层推理模式时,确实会发生正向迁移:Qwen2.5-Coder发现代码、文本和数学按70:20:10的比例混合,在编码基准上甚至优于100%代码训练。

    相反,当token长度不平衡使通用数据主导损失时,混合会产生负面影响:即使按样本计数只有5%的通用数据混合,如果其序列长得多,按token计数可能代表超过80%的梯度信号。监控token级比率,而不仅仅是样本级比率。

    实际意义:将数据混合视为通用能力的一种保障,而非针对目标任务的性能提升器。

    数据混合如何工作

    您不是仅使用特定任务数据训练,而是从多个数据源按受控比例组成每个训练批次。典型的混合比例可能是70%目标任务、20%通用指令遵循和10%安全数据。混合在批次级别进行,因此模型在整个训练过程中看到一致的分布。

    在开始实验之前,了解SFT混合文献中的一些实证发现是有价值的。Dong等人发现,每项技能的数据绝对量比类别间的精确比例更能驱动性能,因此如果某项技能较弱,先为其添加数据再重新平衡。双阶段混合微调表明,先在专业数据上训练,再在通用数据与少量专业数据混合上训练,优于顺序训练(导致遗忘)和平面混合(导致干扰)。Cao等人表明最优混合随模型大小和数据预算而变化,因此不存在通用比率,您应该计划进行实验。

    自动混合优化

    当您有许多候选数据源且无法手动穷举所有组合时,自动化方法可以用一小部分计算量找到接近最优的权重。DoReMi训练一个小型代理模型并提高超额损失最高的领域的权重,所得权重可可靠地迁移到大规模运行。RegMix拟合一个回归模型,通过多次小型训练运行中的混合权重预测性能,当您关心特定下游基准时非常有用。动态数据混合根据每个源在训练期间的贡献度调整权重,通常比最佳静态混合表现好2-5%。

    对于大多数刚开始的从业者来说,手动方法已足够:选择3-5个反映不同优先级的候选混合方案,每个进行短期训练,评估,并将获胜者扩大规模。当您拥有超过五个数据源或定期进行再训练周期时,再过渡到自动化方法。

    选择您的混合比例

    不存在通用的最优比例。作为经验法则,任务越专业化,目标数据占比越重:高度专业化的任务如医疗编码可以运行80%的目标数据,而色调变化等轻度调整则受益于更接近均衡的分割,两种情况均应包含5%至10%的安全数据。

    在Amazon Nova模型上的实验表明,50/50的分割在专业化和能力保留之间提供了良好的平衡。其他三个值得在您自己的实验中采纳的发现:

  • 包含推理-指令-遵循类别。它显著提高了通用基准性能。
  • 关注学习率。带数据混合的SFT对其敏感,因此以低秩适应的1e-5和全秩的5e-6作为起点默认值。
  • 对于多模态数据集,保持视频比例在20%以上。这有助于维持通用基准性能。
  • 决策框架:混合还是不混合?

    大多数客户微调的是已经过指令微调的模型,该模型已经过后期训练以遵循指令、进行对话和安全响应。此框架假设该起点。极少数的例外情况是从仅经过下一token预测预训练的基础检查点开始。在这种情况下,始终混合,因为没有指令遵循或安全行为需要保留。从已指令微调的起点出发,先短暂地不混合进行训练并评估检查点。决策归结为两个问题,这两个问题都可以通过单次运行来回答:

  • 不混合的运行是否过拟合了您的目标数据?注意信号:训练损失持续下降而验证损失停滞或上升,或者目标任务验证性能在中间检查点达到峰值后下降。几千个样本的小数据集会增加此风险,但没有硬性阈值。这取决于周期数、学习率以及您训练的是LoRA还是全秩。首先通过训练配置修复来应对:更少的周期、更早停止、更低的学习率。如果过拟合持续存在,混合通用数据会增加梯度多样性,并可充当进一步的正则化器。
  • 相同的运行是否在您需要的通用技能上发生了退化?评估您的应用程序在生产中需要的能力,如指令遵循、对话或数学和编码。如果它们保持稳定,则无需混合即可发布并节省训练成本。如果退化超出您的容忍范围,则添加混合并根据退化的严重程度调整通用数据比例。
  • 数据集大小和多样性本身并不能解决这两个问题。一个20,000个示例的医疗数据集,即使在其领域内多样化,如果您的应用程序依赖数学或编码技能,仍然可能侵蚀这些技能。这就是为什么该框架通过测量而非假设来决策。

    数据混合并非对抗遗忘的唯一方法。如果您随时间反复更新模型,OSFT等算法方法会将每个训练运行限制在权重空间中不干扰先前知识的方向。OSFT可作为Hugging Face PEFT中的即插即用选项使用。

    结论

    本文涵盖的高级策略有一个共同主题:先衡量再行动。学习曲线分析告诉您更多数据是否有帮助。子集选择告诉您哪些数据重要。增强填补了收集无法经济地到达的空白。而受控混合实验告诉您能力保留是否值得训练成本。将这些视为经验性问题的团队,而非套用默认值,始终能够用更少的计算量获得更好的模型。

    如果您还没有阅读过,本系列的第一篇文章涵盖了基础:数据质量检查、格式要求和训练/评估划分。

    要开始使用,请访问Amazon Bedrock控制台探索模型定制选项。在服务详情页了解有关Amazon Nova的更多信息,查阅Amazon Nova文档获取定制指南,并探索Amazon SageMaker HyperPod配方仓库以获取可立即运行的训练配置。相关阅读,请参阅AWS机器学习博客上的《使用Amazon Bedrock微调自定义Amazon Nova模型》。

    关于作者

    Krishnateja Killamsetty

    Krishnateja是AWS生成式AI创新中心的高级应用科学家,专精于数据高效机器学习和模型定制技术。他的研究兴趣包括数据子集选择、数据混合和大型语言模型的高效微调。工作之余,他喜欢阅读研究论文和与家人共度时光。

    Elyse Zhang

    Elyse是AWS生成式AI创新中心的高级生成式AI策略师,帮助企业级和初创客户完成模型定制之旅。她专注于将业务需求转化为跨行业的有效定制策略。