摘要
大型语言模型(LLM)的成功与否,本质上与用于训练和评估的海量、多样化和高质量数据的可用性息息相关。然而,高质量数据的增长速度明显落后于训练数据集的扩展速度,从而导致迫在眉睫的数据耗尽危机。这突显了提高数据效率和探索新数据来源的迫切需求。在此背景下,合成数据已成为一种有前景的解决方案。目前,数据生成主要包括两种主要方法:数据增强和合成。本文全面回顾并总结了 LLM 生命周期中的数据生成技术,包括数据准备、预训练、微调、指令调整、偏好对齐和应用。此外,我们还讨论了这些方法目前面临的限制,并探讨了未来发展和研究的潜在途径。
引言
近年来,LLM 在许多行业取得了巨大的进步。但是大模型的性能高度依赖它们接受训练的数据的质量和数量。大模型对训练数据集的需求增长速度远高于数据增长的速度,最后可用数据会被用尽,导致 LLM 无法继续进步。因此,数据合成与数据扩充技术对于 LLM 的发展是至关重要的。
本综述强调面向 LLM 的技术在提高 LLM 在其生命周期和核心功能的各个阶段的整体性能方面的直接作用,区别于以往侧重于特定下游任务或 LLM 特定阶段的工作。
分类体系
数据扩充
数据扩充是一种从数据到数据的生成方法,通常涉及处理原始数据以增加其多样性和数量,而不显著改变其本质特征。我们系统地将现有的数据扩充研究分为三个不同的类别:数据标注,数据重构,和协同标注。
- 数据标注:数据标注致力于利用 LLMs 全面的语言理解能力来标注大量未标注的数据集。
- 数据重构:数据重构包括将现有数据转换和重组为更大范围的变量,从而促进更细粒度的数据扩充。
- 协同标注:协同标注指的是人类标注者和 LLM 在标注过程中的协作努力。通过集成两种标注方法的优势,联合标注不仅降低了标注成本,还同时提高了标注性能,从而形成了一种更加高效和有效的数据标注方法。
数据合成
数据合成旨在从零开始或基于生成模型创建全新的数据,这类似于真实数据的分布。本文将数据合成方法分为三大类:通用模型蒸馏,领域模型蒸馏和模型自我提升。
- 通用模型蒸馏:通用模型蒸馏涉及利用强大的通用模型,通常具有较大的参数和卓越的性能,如 StableVicuna、ChatGPT 和 GPT-4,以生成可以增强较弱模型能力的数据集。
- 领域模型蒸馏:领域模型蒸馏涉及到模型的利用,这些模型被定制在特定的领域内生成数据。当通用模型无法满足行业应用的特定需求时,这种方法通常是必要的。
- 模型自我提升:模型自我提升是指模型生成更高质量的数据以增强其能力的过程。
LLM 全生命周期中的数据合成和扩充
数据准备
在数据准备阶段,数据合成和扩充旨在生成多样化和高质量的数据集,用于 LLM 的训练,解决现实世界数据稀缺的挑战。
通用模型蒸馏
这种方式旨在利用通用 LLM 的强大功能来提取高质量的数据。
- 从种子生成数据:为了合成用于特定任务的数据集,用少量相关的例子来提示 LLM 可以有效地以低成本产生高质量的数据集。
- 合成推理步骤:为了增强 LLMs 的推理能力,在数据合成过程中产生了额外的推理步骤。
- 可控性合成:为了控制合成数据的质量,对具有可控性的数据合成技术进行了研究。
- 从头开始合成数据:避免依赖种子数据集,从头开始合成数据
- 合成多模态数据:与单峰类似,促使像 GPT 这样强大的 LLM 基于种子集合合成数据也是多峰数据合成的最常见方法。
数据扩充
数据扩充旨在进一步处理现有数据,以获得更多样化的高质量数据。
- 数据标注:数据标注旨在利用 LLM 的语言理解能力来标注未标注的数据集。
- 数据重构:数据重构试图将现有的数据转换成更大范围的变化,它通常涉及到利用 prompt 工程来指导 LLM 生成重新格式化的数据。
- 协同标注:协同标注是指人类和 LLM 一起标注未标注数据的过程。
- 非 LLM 驱动的数据增强:一些方法不使用 LLM 来合成或过滤高质量的数据。


