摘要
合成数据中的模型崩溃表明,在自生成数据上进行迭代训练会导致性能逐渐下降。随着 AI 智能体的激增,合成数据将从根本上重塑网络数据生态系统。未来的 GPT- 模型将不可避免地在合成数据和人类生成数据的混合数据上进行训练。
在本文中,我们关注两个问题:合成数据对语言模型训练的影响是什么,以及如何在不发生模型崩溃的情况下合成数据?我们首先在不同比例的合成数据上预训练语言模型,揭示了合成数据比例与模型性能之间的负相关关系。我们进一步对合成数据进行统计分析,以揭示分布偏移现象和 n-gram 特征的过度集中。
受上述发现的启发,我们提出对人类生成的数据进行 Token 编辑以获得半合成数据。作为概念验证,我们从理论上证明了 Token 级别的编辑可以防止模型崩溃,因为测试误差受到有限上限的约束。我们从头开始进行预训练、持续预训练和监督微调的大量实验。结果验证了我们的理论证明,即 Token 级别的编辑可以提高数据质量并增强模型性能。
引言
随着生成式人工智能(AI)在研究和工业领域日益普及,合成数据将在整个网络数据生态系统中激增。因此,未来在合成数据和人类产生的数据混合物上训练 GPT- 将是不可避免的。因此,模型崩溃是在合成数据上训练模型时必须考虑的关键问题。模型崩溃指的是一种退化过程,其中学习到的生成模型的输出数据会污染后续世代的训练集。如图1所示,迭代训练与数据合成相结合会导致测试误差的逐步累积。因此,生成模型越来越过度拟合合成数据分布,而无法捕捉人类产生的数据的复杂性。通过图1中的连续迭代,这些失真会累积,最终破坏模型的泛化能力。
最近的研究主要集中在两个方面。首先,是模型崩溃的理论基础。@shumailov2024ai 和 @dohmatob2024model 识别了模型崩溃现象,并基于线性回归构建了一个理论框架。研究表明,如果在保留初始真实数据的前提下积累合成数据,测试误差将会被限制在一个范围内,从而避免模型崩溃。研究还指出,合成数据中长尾的缺失会导致缩放定律的截止。其次,是通过多样化的提示词在合成数据集上的实际应用。合成数据集已被证明可以提升语言模型的能力。通过将文本改写为更正式的风格,可以提高数据质量。仍然有两个关键问题需要进一步研究:
Q1: 合成数据对语言模型训练有何影响? Q2: 如何在不引起模型崩溃的情况下合成数据?
在本文中,我们通过在不同比例的合成数据和人工生成数据的混合物上训练语言模型来解决第一个问题,展示了非迭代的模型崩溃现象。与原始模型崩溃设置(迭代地在自我生成的数据上训练)不同,我们直接混合合成数据和人工生成数据,以创建具有不同混合比例的训练数据集。结果表明,模型性能与合成数据的比例之间存在负相关关系。
随后对数据分布和特征的统计分析表明,存在覆盖率崩溃——合成数据仅覆盖人工生成数据分布的一小部分——以及合成 n-gram 特征的过度集中。基于上述发现,我们通过提出 token-level editing (ToEdit) 来解决第二个问题,该方法重新采样并替换具有相对较高模型置信度的数据点。如图1所示,ToEdit 保留了分布覆盖率,并在理论上将测试误差限制在固定的上限内。此外,从头开始的预训练、持续预训练和监督微调的广泛实验证实了其对模型性能的积极影响。
贡献。 我们将这项工作的关键贡献总结如下:
- 我们通过在合成数据和人工生成数据的混合数据上预训练语言模型,演示了非迭代模型崩溃现象:直接混合纯合成数据[^2],无需迭代训练,会导致性能下降。
- 我们进行了分布统计分析,揭示了合成数据会导致覆盖率崩溃和 n-gram 特征过度集中的现象。即使后续的数据选择也难以纠正这种分布偏差。
- 我们提出了一种带有理论证明的 token 级别编辑方法,以防止模型崩溃,并通过从头开始的预训练、持续预训练以及语言模型的监督微调等实验验证了其有效性。
非迭代模型崩溃
在本节中,我们对合成数据混合进行预训练,并探讨非迭代模型崩溃背后的原因。先前的研究调查了递归的诅咒,即对自我生成的数据进行迭代训练会导致一种称为迭代模型崩溃的退化过程。与此相对,我们研究非迭代模型崩溃,即直接在由其他模型合成的数据上训练模型。
数据混合预训练
大量先前的研究已经证明,合成数据可以提升语言模型的能力,包括指令遵循、推理、对齐、生物医学等等。在本节中,我们研究合成数据对预训练的影响。与先前专注于 SFT 和 RLHF 的研究相比,我们将在语言模型更基础的阶段检查合成数据的集成。 [设置]{.underline} 我们将人工生成数据和合成数据之间的混合比例定义为 ,其中 。训练数据的总量 表示为人工生成数据 和合成数据 的组合,用公式表示为:。
我们使用 Dolma 作为人工生成数据的来源。我们使用 Cosmopedia 作为合成数据的来源,这些合成数据是从 Mixtral-8x7B-Instruct-v0.1
中提炼出来的。我们从头开始训练 GPT-2 和 OLMo,使用包含 500 亿个 Token 的数据混合。PPL 评估集取自 Paloma 基准[^3] 以及 Pile 的 22 个子领域验证集,如文献中所用。
发现 I:纳入纯合成数据会损害语言模型的预训练。 主要结果呈现在图3中,真实世界验证集上的 PPL 随着合成数据比例的增加而增加,表明模型性能下降。当从头开始训练时,合成数据不仅不会使模型受益,甚至可能阻碍其学习过程。然而,将人工生成的数据纳入训练混合物中可以在一定程度上缓解模型崩溃。与之前关于迭代模型崩溃的研究相比,合成数据造成的非迭代损害更令人担忧,并且与下一代语言模型的训练直接相关。
为什么合成数据在语言模型预训练中会失败?
我们进行了三项统计分析:(1)样本级分布,(2)基于特征的重叠,以及(3)分布参考数据选择。实验结果表明,与人类生成的数据相比,合成数据缺乏长尾覆盖,并存在覆盖崩溃的问题。合成数据中有限的多样性和集中的特征使得使用人类生成的数据作为参考来选择合成数据尤其具有挑战性。
设置 我们进行统计和基于特征的分析,以探究为什么合成数据在预训练中表现不佳。(1) 我们利用先验分布来估计人类生成的数据和合成数据。我们使用 Llama-3-8B 和 StableLM-Zephyr-3B。不同的先验分布始终产生相同的结果。(2) 我们从基于特征的角度分析人类生成的数据和合成数据的 n-gram 特征,例如 n-gram 响应值。(3) 基于人类生成的数据的分布,我们从合成数据集中采样数据,使其与人类生成的数据分布紧密匹配,以尝试过滤合成数据。
发现 II:合成数据分布不仅缺失长尾,还会导致覆盖范围崩溃。 图4说明合成数据的 PPL 被限制在人类生成的数据的较低 范围内,未能捕捉到人类生成的数据分布的完整范围和复杂性。具体来说,如图4-A 所示,人类生成的数据在 范围内呈现广泛的分布,其特征是尖锐的峰值和明显的长尾。相比之下,如图4B 所示,合成数据被限制在较窄的 范围内,呈现更平滑的分布。StabLM 的其他结果如图[fig:ppl_StabLM-Zephyr-3B]{reference-type="ref" reference="fig:ppl_StabLM-Zephyr-3B"}所示。虽然不同模型估计的绝对 PPL 范围可能有所不同,但这两种分布的相对形状和比例范围保持一致。这种现象提供了证据,表明当扩展到更大的合成数据集时,将明显缺乏长尾。总而言之,我们观察到更严重的覆盖范围崩溃。这种有限的覆盖范围降低了数据的有效泛化能力,并可能导致模型崩溃,如图5所示。
图4
图5
发现三:合成数据过度集中 N-gram 特征。 基于上述分布估计,我们进一步分析了为什么合成数据在特征层面表现不佳。图5显示,与人类生成的数据相比,合成数据中某些双字母组合的频率更高。为了更深入地检查特征层面的差异,我们将单字母组合和双字母组合的特征散列到 10,000 个哈希桶中。如图5所示,人类生成的数据展现出明显更广泛的响应范围,而合成数据的特征则集中在少数特定的桶中。这间接印证了我们之前关于特征过度集中的观察。随后,我们将哈希桶的范围扩大到 1,000 × 20,000 个,并使用局部敏感哈希方法来更精确地区分这些特征。然而,结果仍然一致。大多数响应值都接近于零。在合成数据中区分特征仍然是一个挑战。
发现四:分布偏移无法通过数据选择来缓解。受到最近数据选择工作的启发,我们尝试利用人工生成的数据特征作为参考分布来选择合成样本。我们应用来自 DSIR 的重要性采样来过滤合成数据。如图4A 所示,即使在合成数据的边界区域,采样数据仍然无法在嵌入空间中与人工生成的数据对齐。如图4B 所示,所选合成样本的训练结果仍然在合成数据的原始性能附近波动,这表明即使是有偏的采样也无法纠正分布偏移。
提出的策略
根据目前为止的经验教训,考虑到合成数据存在覆盖率崩溃和特征过度集中的问题,最佳策略是完全依赖人工生成的数据,避免使用合成数据。然而,我们仍然在思考如何利用合成数据来增强人工生成的数据。这引出了一个关于合成数据的一般性指导原则:仅仅依赖合成数据会导致模型崩溃,因此保持主要的人工生成数据分布至关重要。基于此,我们提出token级别的编辑方法,该方法利用先验分布来调整数据。我们的方法可以在改进源数据的同时保持源分布,我们称之为半合成数据。
Token 级别编辑
本节将介绍 Token 级别编辑,作为一种生成半合成数据的方法。此外,我们还将提供理论分析和证明,论证无论迭代次数如何,我们方法的测试平方误差都存在有限的上界。因此,我们的方法不仅能防止模型崩溃,还能提升性能。
方法
我们将数据合成公式化如下:假设 是一个先验分布,给定一个 Token 序列 ,完整的合成数据为 。合成过程推导如下:
这个条件概率公式阐述了在给定 token 序列的条件下生成合成数据的过程。随后,这些合成数据被用于训练模型。受到先前数据选择研究的启发,先验分布可以作为指针,指示哪些样本是无用的或易于学习的。在此,我们利用预训练的大语言模型来推断预训练语料库。如图6所示,即使是在数万亿 token 上进行预训练的模型也无法完美地拟合预训练语料库。具体而言, 的 token 的概率低于 0.6。概率高和概率低的 token 最为集中,这暗示了数据过滤的潜力。我们利用这种 U 形分布作为重新采样 token 的指示。具体来说,我们使用一个大语言模型作为先验分布来计算每个 token 的条件概率 。如果该概率超过某个阈值 ,则表明该 token 易于学习,我们会在此时进行重新采样。
Token 级别的编辑并非生成完整的序列,而是利用条件概率 来修改输入的序列。通过这种方式,我们可以在修改数据集的同时,避免使用纯粹的合成数据,并保留人类生成数据的长尾特征,从而获得更高质量的半合成数据。Token 级别的编辑可以公式化如下:
其中, 是编辑后序列中的最终 Token。 是从先验分布中重新采样的 Token。我们可以调整阈值 ,以平衡保留人类生成数据的结构,同时避免过度拟合合成数据。
理论分析
为了获得更深入的数学见解,我们采用了线性模型的分析框架,并沿用先前研究中的符号。这个理论框架主要考虑一个线性模型,该模型迭代地训练自身生成的数据,类似于自博弈和自蒸馏等流程,但没有复杂的约束。该过程涉及在模型前一代所生成的数据上持续训练。指出,通过迭代训练,测试误差会逐渐累积,最终导致模型崩溃。基于此理论框架,我们整合了我们提出的 token 编辑方法,并分析我们的方法是否能够防止模型崩溃。
符号和预备知识
对于给定的分布 ,在 上的数据 ,其中 从多元正态分布 中抽取, 是一个从 中采样的独立噪声项,标签 由线性模型 给出。
迭代数据编辑过程
我们利用前一轮训练得到的模型进行有限次数的修改。具体来说,我们重新采样并替换置信度相对较高的数据点。编辑操作由矩阵 定义。迭代数据合成和模型拟合过程形式化如下:
其中 是迭代次数。数据编辑和迭代的详细过程描述如下:对于 ,我们首先将协变量/特征初始化为 。目标值定义为 ,其中 。然后通过求解 来拟合线性模型。为了进行下一次迭代,我们重新采样数据,得到 ,其中 。 对于 ,输入协变量/特征保持为 ,而目标值则使用编辑后的目标值进行更新,遵循方程 。然后通过计算 来拟合线性模型。最后,为下一次迭代重新采样数据,得到 ,其中 。
矩阵 是一个对角矩阵,其中一些对角元素为 1,而另一些为 0。乘以 M 可以解释为一种选择性地修改某些数据点(那些对应于 1 的数据点)同时保留其他数据点(那些对应于 0 的数据点)的操作。然后,数据编辑过程可以表述如下:
其中, 是在第 代经过编辑后的数据,而 是来自第 代的合成数据。这个过程可以描述为:首先,为所有输入合成标签;其次, 矩阵决定哪些数据被编辑,哪些数据被保留。对于一个列满秩的矩阵 ,其 Moore-Penrose 伪逆为 。噪声项 彼此独立,并且与协变量/特征无关。由于 具有列满秩,因此对于所有 , 都保持此属性。
测试误差
模型崩溃最终通过测试误差反映出来。根据之前的工作,我们采用标准测试误差定义,如下所示。对于从训练数据中导出的任何线性估计器,我们使用以下标准方法评估测试误差:
其中,期望是相对于训练数据计算的,而测试对是从训练集的中独立采样的。
数据编辑下的测试误差
我们的目标是推导出数据编辑设置中第个模型的测试误差的解析表达式。正如公式4中的测试误差所示,这个过程包括两个主要步骤:(1)建立拟合的线性参数和真实参数之间的关系,以及(2)简化测试误差表达式。我们首先建立和之间的关系。
定理 1。在数据编辑设置中,对于所有,拟合的线性参数可以推导为:
其中,是真实参数,是原始设计矩阵,是在第次迭代中添加的额外噪声,是定义编辑操作的幂等对角矩阵。
定理 2. *考虑一个 折的数据编辑过程,其中每次迭代有 个样本,并且特征是各向同性的 (),在编辑后的数据上学习的无脊线性模型 直到第 次迭代的测试误差,其界限为:
此外,假设编辑操作满足 ,其中 ,则测试误差可以进一步界定为:
回想一下模型崩溃的原因:在合成数据上迭代训练会导致误差在迭代过程中累积,如下面的等式所示:
比较公式6与公式8,在数据编辑的情况下,测试误差被一个固定值所限制,从而防止了连续的误差累积,避免了模型崩溃。基于对合成数据的理论推导和统计分析,其根本原因在于我们的方法保留了初始分布的覆盖范围。我们从纯粹的数据合成转向了 token 级别的编辑,这使我们能够在避免模型崩溃的同时获得更好的数据。此外,先前的多项重要研究也得出了类似的结论。它们指出,将真实数据与合成数据混合可以打破模型崩溃,并在数据累积的情况下提供一个上限。与他们的工作不同,我们的数据编辑旨在产生更优质的数据,使合成数据在理论和实践中都能表现良好,而不仅仅是避免模型崩溃。
实验
为了验证我们提出的方法,我们进行了跨越语言模型训练三个阶段的实验,这三个阶段包括:预训练、持续预训练(CPT)和监督微调(SFT)。
实现
我们使用 Llama-3-8B 作为先验分布来估计每个文本样本中的 Token 分布。修改概率设置为 。这意味着我们重新采样概率超过 的位置的 Token,并且重新采样基于给定先前上下文的条件概率。整个过程只需要一次前向传递,无需自回归生成。我们集成了快速推理引擎 vLLM,允许在单个 4090 GPU 上完成整个数据编辑过程。完成数据编辑后,我们比较原始数据和编辑后的数据在预训练、CPT 和 SFT 上的语言模型训练性能。这里,我们使用 top-k 作为采样策略,其中 。我们还尝试了 top-p 和拒绝采样,它们产生了相似的结果。
数据集和模型
我们概述了实验设置。关于预训练,我们使用 Dolma 采样的 V6(包含 60 亿个 Token)作为预训练语料库,从头开始预训练了 10 亿参数的 OLMo 模型。我们使用 lm-evaluation-harness 中的 8 个通用任务来评估预训练模型。关于持续预训练,我们对 OLMo-1B 和 Llama-3-8B 模型在生物医学、金融和数学领域进行了持续预训练。每个领域的语料库包含 10 亿个 Token。相应地,我们使用 15 个下游任务来评估持续预训练的模型,每个领域选取 5 个任务。关于监督微调,我们在指令调整和代码推理任务上对 Llama-3-8B 模型进行了微调,总共使用了 6 个数据集。我们使用 9 个旨在衡量指令遵循能力的下游任务来评估监督微调(SFT)模型。所有 Llama-3-8B 实验都使用了 LoRA 技术,而 OLMo-1B 模型则使用了全部参数进行训练。
结果
表234分别展示了我们的方法在持续预训练、预训练和微调任务中的有效性。在这三个语言模型训练阶段,我们的方法在不增加数据规模的情况下,提升了模型在下游任务上的性能。我们的方法释放了现有数据的潜力,表明半合成数据是提高模型性能的一条可行路径。具体而言,如表2所示,我们的方法在OLMo-1B和LLaMA-3-8B上都显示出相对于原始数据的一致改进。例如,在生物医学领域,使用ToEdit后,OLMo-1B的平均得分从36.63提高到40.89,而LLaMA-3-8B的平均得分从54.13提高到56.48。表3进一步支持了我们的方法在预训练中的有效性。OLMo-1B的平均性能从32.75提高到33.11,反映了泛化能力的提升。虽然改进幅度不大,但在PIQA、BoolQ和ARC-c等任务上的一致趋势突显了我们方法的更广泛适用性。 关于表4中SFT(监督微调)的结果,无论是使用原始数据还是编辑后的数据,结果都显示出微小但持续的改进。具体而言,ToEdit 方法改进了原始的FLAN v2模型,平均性能从70.18提升至70.65。对于自然指令任务,LLaMA-3-8B模型的平均性能从69.34提升至69.70,在Winogrande和SIQA等任务中均有提升。这些改进表明我们的方法对指令微调任务具有良好的适应性。对于代码相关的任务,改进在ARC-c和GPQA任务中尤为显著,表明模型在推理和代码理解方面有所增强。
消融研究
我们针对超参数 进行了 4 项实验,包括:(1) 不同取值的消融研究,(2) Token 百分比统计,(3) 采样策略的比较,以及 (4) 采样大小的消融研究。如表7所示, 的不同取值对 BioMed 产生影响,在各种设置中观察到波动。表8展示了不同概率值范围内的分布百分比。如前所述,我们需要在主要保留原始分布的同时改进数据。
如图6所示,较大的 值表示将被重采样的 Token 较少,而较小的 值会导致更多的 Token 被重采样。为了平衡性能和数据分布的保留,我们将 设置为我们实验的阈值。
表5展示了不同采样策略的结果。具体来说,为了控制变量,我们为 top-k 采样设置 ,为 top-p 采样设置 。我们使用了 reject sampling 的实现。 reject sampling、top-p 和 top-k 的结果是可比较的。然而,top-p 涉及动态采样范围,而 reject sampling 需要多轮计算,导致开销增加。考虑到计算效率,我们选择 top-k 进行采样。这与我们最初保持最小计算开销的目标一致。这与我们最初尽可能减少计算开销的目标一致。表6显示了关于 top-k 采样大小的消融研究。使用较大值获得的改进相对较小。因此,我们在实验中选择 。
非迭代模型崩溃和迭代模型崩溃之间的区别是什么?
我们将非迭代模型崩溃定义为由于直接混合通用合成数据与人工生成的数据,且未进行迭代训练而导致的性能下降。理论上,如果没有额外的正则化约束来指导数据生成,模型生成数据的方差在此过程中会逐渐减小。生成数据的多样性会随着时间的推移而减少,最终导致模型本身的崩溃。
从设置的角度来看: 两者之间的区别在于它们的范围。非迭代模型崩溃不局限于在自我生成的数据上进行训练,使其能够揭示合成数据的更广泛属性。例如,在我们的实验中,我们使用 Mixtral-8x7B-Instruct-v0.1
生成的 Cosmopedia 数据集,在单次生成中训练 GPT-2。相比之下,迭代模型崩溃侧重于使用自我生成的数据在多个生成轮次中训练模型。
从属性角度来看: 非迭代模型崩溃突显了人类数据与通用纯合成数据之间的差异,尤其是在分布属性和 n-gram 特征方面。相比之下,迭代模型崩溃则阐释了模型的迭代演化过程,类似于一种自我博弈。此过程展现了自我生成数据的逐步演变,但并未分析自我生成数据与人类产生数据之间本质上的差异。尽管它们研究的是合成数据的不同方面,但两者最终都会因相同的根本原因——合成数据——而导致模型崩溃。最常见的场景是在人类数据和合成数据的混合数据上训练模型,其中合成数据并非由模型自身生成,其确切来源也可能未知。此外,已经存在许多流行的数据集,例如 UltraChat 和 OpenOrca,它们结合了合成数据和人类产生的数据,以提升训练的多样性和鲁棒性。
合成数据的定义和特征
合成数据 () 可以根据其在生成过程中与语言模型 () 的分布和人类产生的数据 () 的关系进行分类,量化为 :
其中 纯合成数据 : 完全由大语言模型生成 (),其 KL 散度 超过阈值 。这意味着大语言模型的分布与人类产生的数据分布存在显著偏差。 半合成数据 : 源自对人类产生的数据 () 的有限修改,确保所得分布 () 的 KL 散度 以 为界。这反映了半合成数据与人类产生的数据更紧密的对齐。 从生成过程来看,纯合成数据 :此数据由大语言模型通过提示词诱导生成,不修改人类产生的数据,导致与人类产生的数据的重叠内容较少。例如,Cosmopedia 扩展了人类产生的数据,并生成不包含人类产生的数据的数据。半合成数据 :此数据通过直接修改人类产生的数据生成,例如释义或 Token 级别的编辑。它源自对人类产生的数据的转换。例如,WRAP 生成人类产生的数据的释义。ToEdit(我们的方法)对人类产生的数据执行 Token 编辑。
为什么观察到的概率分布会表现出过滤潜力?
从信息论的角度来看, 我们可以如下分析U形分布的过滤潜力:我们利用图6的U形分布来重新采样高概率区域中的Token,以将U形分布调整为均匀分布。通过这样做,我们可以最大化信息熵。根据信息论,当分布均匀时,信息熵最大化。引理 1:设 是一个具有 个可能结果的离散随机变量。如果每个结果的概率是均匀的,即对于所有 ,,则香农熵最大化,由下式给出:
这代表了可以达到的最大不确定性,意味着数据集携带了最大可能的信息内容。因此,均匀分布,它为所有结果分配相等的概率,拥有最大的信息熵。为了利用这个特性,我们使用U形分布来重新采样高概率区域的Token,并将U形分布调整为更接近均匀分布。通过这样做,我们可以最大化信息熵。
**从语言模型学习的角度来看,**我们的方法强调了学习不足的数据的重要性。具体来说,我们重新采样容易的Token,并鼓励模型专注于学习更具挑战性的Token。我们的方法可以通过重新采样高概率的Token来增强对代表性不足数据的学习。编辑的逐步减少
我们在表9中展示了被编辑的Token的百分比统计数据,这表明被编辑的Token确实呈现出逐步减少的趋势。具体来说,我们观察到,随着生成次数的增加,被编辑的Token的百分比(高于阈值)会减少。从理论上讲,这是一个分布转移的过程。当Token()被重新采样时,会引入随机性。采样过程可以选择概率较低的Token。然后,Token()被替换,导致后续生成中被编辑的Token减少。表9为这种衰减模式提供了经验证据。
模型崩溃
展示了AI模型在由早期版本自身生成的数据上递归训练,随着时间的推移会导致性能下降,最终使AI模型完全失效。这个过程可以公式化如下:
这表明误差会随着迭代次数的增加而持续增加。进一步指出,合成数据也会导致缩放定律的截断。这种现象源于语言模型生成过程中使用的采样策略(例如,Top-p)。进一步通过在迭代过程中用数据累积代替数据替换来调整数据迭代设置。他们证明数据累积可以防止模型崩溃。受上述工作的启发,我们认为未来在合成数据集上训练语言模型将是不可避免的。因此,从理论上讨论如何防止模型崩溃至关重要。在上述理论框架的基础上,我们证明了token级别的编辑在迭代过程中建立了一个上限,从而防止了误差的持续累积。
合成数据
Phi-1/2 证明,在语言模型预训练中,与原始数据相比,合成数据可以提高训练效率和性能。强调合成数据将在 AI 智能体的发展中发挥关键作用。例如,合成数据可用于构建高度专业化的数据集,从而提高下游任务的性能。 利用合成数学数据训练了一个 1.25 亿参数的大语言模型,该模型成功解决了国际数学奥林匹克(IMO)问题集中选出的 30 个问题中的 25 个。 开发了一个生物医学指令数据集,用于训练专门的生物模型,使其能够在回答与医学考试和临床场景相关的问题方面表现出色。 引入了一种新颖的合成数据集和评估范式,使小型语言模型能够生成连贯、多样且语法正确的故事情节。 如上所述,在大型语言模型(LLM)的后训练阶段,合成数据增强了下游任务的性能,并使基础模型与人类对齐。 并提出将预训练数据改写为维基百科或问答风格,以更好地与下游任务对齐。 合成数据是一种强大的训练工具。 我们的方法也基于合成数据方法。 我们不是仅仅基于先验来采样数据,而是使用先验作为指导来修改数据。
结论
随着像ChatGPT和Stable Diffusion这样的生成式AI模型的日益普及,在训练下一代AI模型时,不可避免地会使用合成数据和人工生成数据的混合。因此,我们关注两个关键问题:(1)合成数据对大语言模型预训练的影响是什么,其根本原因是什么?(2)我们如何防止模型崩溃并合成高质量的数据?我们发现,当与人工生成的数据混合使用时,合成数据会损害预训练的效果,导致非迭代的模型崩溃。统计分析表明,合成数据存在显著的分布差距和过于集中的n-gram特征。为了解决这个问题,我们提出使用Token级别的编辑,而不是仅仅依赖合成数据。具体来说,我们执行由训练过的先验引导的Token重采样。从理论上讲,我们的方法可以防止模型崩溃。实验表明,我们的方法在预训练、持续预训练和监督微调方面都比源数据有所改进。