【论文笔记】A Survey on Data Synthesis and Augmentation for Large Language Models

【论文笔记】A Survey on Data Synthesis and Augmentation for Large Language Models

A Survey on Data Synthesis and Augmentation for Large Language Models(大型语言模型的数据合成与增强综述)

1. 作者

image-20251222204850855

2. 年份

2024

零、摘要

大型语言模型(LLM)的成功与否,本质上与用于训练和评估的海量、多样化和高质量数据的可用性息息相关。然而,高质量数据的增长速度明显落后于训练数据集的扩展速度,从而导致迫在眉睫的数据耗尽危机。这突显了提高数据效率和探索新数据来源的迫切需求。在此背景下,合成数据已成为一种有前景的解决方案。目前,数据生成主要包括两种主要方法:数据增强和合成。本文全面回顾并总结了LLM生命周期中的数据生成技术,包括数据准备、预训练、微调、指令调整、偏好对齐和应用。此外,我们还讨论了这些方法目前面临的限制,并探讨了未来发展和研究的潜在途径。我们的愿望是使研究人员清楚地了解这些方法,使他们能够在构建LLM时迅速确定适当的数据生成策略,同时为未来的探索提供有价值的见解。

一、介绍

  • 近年来,LLM在许多行业取得了巨大的进步。但是大模型的性能高度依赖它们接受训练的数据的质量和数量。
  • 大模型对训练数据集的需求增长速度远高于数据增长的速度,最后可用数据会被用尽,导致LLM无法继续进步。因此,数据合成与数据扩充技术对于LLM的发展是至关重要的。
  • 该领域在时间上和位置上的趋势
  • 以前的调查主要侧重于应用这些方法来支持特定的下游任务或 LLM 的特定阶段,我们的工作强调面向 LLM 的技术在提高 LLM 在其生命周期和核心功能的各个阶段的整体性能方面的直接作用。
image-20251222211104301
  • 本综述的主要内容和分类
image-20251222213021514
  • LLM的数据扩充与合成的发展
image-20251222213120466

二、分类法

2.1 数据扩充

  • 数据扩充是一种从数据到数据的生成方法,通常涉及处理原始数据以增加其多样性和数量,而不显著改变其本质特征。
  • 我们系统地将现有的数据扩充研究分为三个不同的类别:数据标注,数据重构,和协同标注。
    • 数据标注:数据标注致力于利用LLMs全面的语言理解能力来标注大量未标注的数据集。
    • **数据重构:数据重构包括将现有数据转换和重组为更大范围的变量,从而促进更细粒度的数据扩充。
    • 协同标注:协同标注指的是人类标注者和LLM在标注过程中的协作努力。通过集成两种标注方法的优势,联合标注不仅降低了标注成本,还同时提高了标注性能,从而形成了一种更加高效和有效的数据标注方法。

2.2 数据合成

  • 数据合成旨在从零开始或基于生成模型创建全新的数据,这类似于真实数据的分布。
  • 本文将数据合成方法分为三大类:通用模型蒸馏,领域模型蒸馏和模型自我提升.
    • 通用模型蒸馏:通用模型蒸馏涉及利用强大的通用模型,通常具有较大的参数和卓越的性能,如 StableVicuna、ChatGPT和GPT-4,以生成可以增强较弱模型能力的数据集。
    • 领域模型蒸馏:领域模型蒸馏涉及到模型的利用,这些模型被定制在特定的领域内生成数据。当通用模型无法满足行业应用的特定需求时,这种方法通常是必要的。
    • 模型自我提升:模型自我提升是指模型生成更高质量的数据以增强其能力的过程。

三、LLM全生命周期中的数据合成和扩充

3.1 数据准备

在数据准备阶段,数据合成和扩充旨在生成多样化和高质量的数据集,用于 LLM的训练,解决现实世界数据稀缺的挑战。

3.1.1 通用模型蒸馏

这种方式旨在利用通用LLM的强大功能来提取高质量的数据。

  • 从种子生成数据:为了合成用于特定任务的数据集,用少量相关的例子来提示 LLM 可以有效地以低成本产生高质量的数据集。
  • 合成推理步骤:为了增强 LLMs 的推理能力,在数据合成过程中产生了额外的推理步骤。
  • 可控性合成:为了控制合成数据的质量,对具有可控性的数据合成技术进行了研究。
  • 从头开始合成数据:避免依赖种子数据集,从头开始合成数据
  • 合成多模态数据:与单峰类似,促使像GPT这样强大的LLM基于种子集合合成数据也是多峰数据合成的最常见方法 。

3.1.2 数据扩充

数据扩充旨在进一步处理现有数据,以获得更多样化的高质量数据。

  • 数据标注:数据标注旨在利用 LLM 的语言理解能力来标注未标注的数据集。
  • 数据重构:数据重构试图将现有的数据转换成更大范围的变化,它通常涉及到利用 prompt 工程来指导 LLM 生成重新格式化的数据。
  • 协同标注:协同标注是指人类和LLM一起标注未标注数据的过程。
  • 非LLM驱动的数据增强:一些方法不使用 LLM 来合成或过滤高质量的数据。

3.2 预训练

在预训练阶段,数据合成和扩充可以为 LLMs 提供丰富、多样和可控的训练数据,从而提高模型性能并减少偏差。

3.2.1 模型自我提升

在预训练阶段,模型自我提升表示通过LLM合成数据,并进一步利用合成数据来预训练相同的 LLM。

3.2.2 通用模型蒸馏

通用模型蒸馏表示利用通用LLM提取高质量数据的强大能力。

3.2.3 数据扩充

数据扩充旨在进一步处理现有数据,以获得更加多样化的数据集。在预训练阶段,主要有两种方法:数据重构和非LLMs驱动的方法。

  • 数据重构:对原始数据集进行转换,以获得具有多样性和质量的新数据集。
  • 非 LLMs 驱动:其他方法在不利用 LLM 的情况下扩充原始数据集。

3.3 微调

3.3.1 模型自我提升

模型自我提升方法使LLM能够通过反馈过程从其输出中学习,从而消除了对外部支持的需要。根据该方法是否使用迭代自我改进和合成数据的模态,我们将现有的自我改进策略分为两类:单次自我提升和迭代自我提升。

  • 单次自我提升:表示通过 LLM 合成数据,然后使用合成的数据对相同的 LLM 执行单次微调的过程。一类方法包括向训练数据集补充信息,另一类方法基于现有种子数据合成新样本。
  • 迭代自我提升:为了提高合成数据的质量、多样性和数量,各种方法迭代地合成数据集,并在循环中提升自己。

3.3.2 通用模型蒸馏

通用模型蒸馏表示从强大的LLM中提取高质量的微调数据。在本综述中,我们将现有的通用模型提取方法分为五类:通过种子合成数据、迭代式合成数据、合成推理步骤、基于分类法的合成和合成多模态数据。

  • 通过种子合成数据:从现有实例或数据种子中合成数据是最常见的方法。
  • 迭代合成数据:为了构建具有多样性的高质量数据,一些方法构建可以多次执行的框架。
  • 合成推理步骤:最近的研究集中在通过模仿学习提高 LLM 的性能,利用大型基础模型(LFM)产生的输出。然而,较小的语言模型倾向于模仿 LFM 的风格,而不是推理过程。
  • 基于分类法的合成:上述方法大多基于合成来自种子的数据集,而最近的研究采用了另一种新颖的方法,通过分类学驱动的方法来合成数据集。
  • 合成多模态数据:通用模型蒸馏对于多模态应用也有很大的潜力。

3.3.3 数据扩充

数据扩充涉及通过各种技术增强现有数据,以创建更广泛、更多样的数据集。在微调阶段,主要有两种方法:数据标记和数据重构。

  • 数据标注:数据标注表示为未标记的数据生成注释。
  • 数据重构:数据重构是指将现有数据转换成更多样化的形式,从而扩充数据。

3.4 指令调整

在指令调优阶段,数据合成旨在探索合成指令或提示内容,以通过 LLMs 生成遵循指令的高质量数据。根据合成数据的方式,它们包括以下几类:通用模型蒸馏、模型自我提升、数据扩充

3.4.1 通用模型蒸馏

为了获得多样化的数据,一种流行的方法是采用更强的LLM来合成数据并执行针对较弱 LLM 的指令调整,包括单模态综合和多模态综合。

  • 单一模态:单一模态通过教师 LLMs 合成特定类型的数据。
  • 多模态:多模态通过 LLMs 生成跨模态数据。

3.4.2 模型的自我提升

模型自改进旨在从模型本身引导合成数据,包括单模态合成和多模态合成

  • 单一模态:这个类别生成单模态数据,通过 LLM 本身实现指令调优。
  • 多模态:以上设计了各种指令示例来提高 LLM 的对齐能力。但是,这些作品通常都是纯文字的。另一类通过 LLM 本身合成多模态数据。

3.4.3 数据扩充

数据扩充旨在通过多样化训练样本来增强模型性能,而不需要额外的数据。它利用高质量的指令或提示来生成用户期望的和匹配目标任务的扩充数据。主要有三种类型:数据标注、数据重构和协同标注。

  • 数据标记:数据标注采用 LLM 的语言理解能力来标注未标注的示例。
  • 数据重构:数据重构将现有数据转换成其他变体,以满足目标任务的数据格式要求。
  • 协同标注:协同标注的目的是共同注释来自人类和 LLM 的数据。

3.5 偏好对齐

偏好对齐是通过系统地提炼大型模型以匹配复杂的人类偏好来实现的。这一过程始于一般模型提炼,它综合了广泛的偏好数据,提供了跨不同任务的基本一致性。领域模型提取然后使用专门的数据集优化模型,增强特定领域的性能。模型自我提升允许模型使用自我生成的反馈,在最少的人工干预下迭代地改进它们的能力。数据扩充通过扩展和多样化训练数据来进一步加强模型概括。这些相互关联的方法形成了一个一致的框架,用于优化与一般和特定领域人类偏好的模型对齐。

3.5.1 通用模型蒸馏

通用模型蒸馏。通用模型提炼旨在通过利用大型语言模型(LLM)和外部工具来更好地将模型与复杂的人类偏好相匹配,从而生成高质量的偏好数据。这一过程对于提高LLM在实际应用中的性能至关重要,特别是在安全性、可靠性和伦理考虑等领域。这种方法的主要挑战之一是模型固有的偏见和局限性。为了解决这个问题,可以从多个模型中提取精华,而不是依赖单个模型,以减少偏差并增加响应的多样性。

3.5.2 领域模型蒸馏

领域模型蒸馏侧重于通过在专门的领域和特定的数据集上训练模型来优化特定任务的模型,通常使用强化学习和偏好建模技术。这种方法使模型能够在不同的领域中表现良好,增强了它们处理复杂的、专门的任务的能力。通过这个过程,模型被蒸馏以满足各种领域的要求,包括面向安全的场景,总结,数学问题解决,基于搜索的问题回答,以及代码生成和逻辑推理。

3.5.3 模型自我提升

模型自我提升的重点是使较弱的LLM能够迭代地增强它们的性能,而不需要额外的人工注释数据。这种方法包括两个类别:自我反馈循环和依靠外部评估者评估模型的响应。这两种方法都旨在通过减少对人工干预的依赖来创建可扩展的改进系统,允许模型通过内部调整或外部指导来不断优化其性能。

3.5.4 数据扩充

数据扩充对于通过创建现有数据的特定于任务的变化来增强大型模型对齐是必不可少的,这加强了模型的泛化和稳健性。这种方法增加了训练数据的多样性,而不需要额外的数据收集。 像数据标注,数据重构,和协同标注被用于确保补充的数据保持相关和一致,有助于跨各种任务的更精确的模型性能。

3.6 应用

大多数大型语言模型都是在通用语料库上进行预训练和微调的。然而,与大量的通用数据不同,特定领域的数据集通常很少,因为创建它们需要大量的知识。为了解决这个问题,许多研究已经探索了具有为每个应用定制的不同特征的专门数据的合成。

3.6.1 数学

在数学场景中应用LLM,涉及问题理解和回答,需要密集的逻辑推理。许多研究人员提出,在训练语料库中生成更多的基本原理语料库和不同的问题和答案有助于模型更好地理解和推理。多样化的问题和解决方案也可以增强逻辑思维模式的数学理解和推理能力。由于数学问题和答案是可验证的,一些方法通过自我生成的模拟问题和已经被自己或外部工具和模型验证的证明来扩展训练语料库。

3.6.2 科学

科学应用需要对知识密集型概念和推理的深刻理解,这需要高质量的数据集来进行有效的指令微调。然而,生成这样的数据集是具有挑战性的,因为不同学科之间的格式各不相同,并且底层逻辑可能难以表达。统一不同学科的格式是处理科学相关语料库的第一步,通过将结构化数据转换成可读文本或专门的标记器。然后从收集的原始数据中生成指令调节数据集。

3.6.3 代码生成

产生增强代码生成性能的合成数据已经被研究了很长时间,这需要清楚地理解问题和精确的推理来产生正确的代码。由于可以在模拟编码环境中轻松验证代码的准确性,这使得能够为编码任务生成大规模指令内调整数据集。

3.6.4 医疗

在医疗应用中,大模型主要作为医疗对话聊天机器人,需要与患者进行多轮对话交互。为了实现交互式数据合成,首先收集专门的文档作为种子语料库,例如医疗诊断记录。在此基础上,借助于通用大型语言模型,可以生成不同的问答对,并用于提高理解能力产生有益的反应。在处理敏感病历时,隐私也是一个首要问题,一些文献从知识图中提取医学知识,并生成没有任何个人信息的合成医学文本。

3.6.5 法律。

以法学硕士为基础的法律助理因提供负担得起和方便的法律服务,特别是在法律问答和咨询领域,已经获得了相当大的关注。最近的研究集中在通过使用数据合成来提高响应的清晰度和正确性的微调数据集的数量和质量。

四、功能

从 LLMs 的功能角度来看,数据扩充和合成可分为四类:理解、逻辑、记忆和生成。通过探索 LLMs 中的四个基本功能,数据合成和扩充可以充分捕捉大规模数据中的内在模式,并将其有效地应用于下游应用和任务

4.1 理解

理解功能利用对 LLM 的强大语言理解来理解数据。从理解的内容来看,它包括单模态理解和多模态理解。单模态理解主要理解文本的语义,包括文本理解和语义标注。多模态理解结合了多种模态。

4.2 逻辑

逻辑功能在合成和扩充数据的过程中充分利用推理和逻辑功能。根据逻辑的应用,有以下三类:代码逻辑、数学逻辑和推理。

4.3 记忆

当合成数据时,记忆功能记住并利用 LLM 中先前学习的信息。根据记忆内容的性质,记忆功能可以分为三类:程序记忆、语义记忆和情景记忆。

4.4 生成

生成功能旨在为下游任务和应用程序生成连贯且上下文相关的内容。基于生成内容的形式,有以下两类:内容生成(例如,文本和多模态生成)和检索增强生成。

五、挑战与局限

5.1 合成与扩充的方法

尽管合成和扩充数据很重要,但是使用不同的合成和扩充方法仍然存在严峻的挑战

  1. 对 LLM 的依赖
  2. 模型训练中的复杂评估和去污染
  3. RLAIF 中的不确定性和搜索复杂性
  4. 不稳定和不一致的逻辑路径

5.2 数据质量

与已经存在的多样、可信、高质量的真实数据不同,数据合成和扩充的性质可能会影响生成数据的质量。

  1. 数据多样性
  2. 长尾现象
  3. 可靠性
  4. 分布不一致

5.3 数据合成与扩充的影响

  1. 隐私
  2. 安全
  3. 社会影响

5.4 对不同应用和任务的影响

  1. 泛化
  2. 可转移性和领域适配

5.5 未来方向

  1. 多模态合成
  2. 实时合成
  3. 领域模型蒸馏
  4. 大规模合成
  5. 稳健的质量评估指标
  6. 伦理考虑与负责任的数据合成和增强

六、结论

数据合成和扩充对于推进LLM至关重要,特别是在满足LLM对大规模和高质量数据的需求方面。这项调查提供了一个面向 LLM 的数据合成和增强技术的全面审查,系统地探索了它们在 LLM 的整个生命周期和核心功能中的应用,同时建立了一个连接现有研究的框架,强调了关键方法,并阐明了优势和局限性。我们预计,面向 LLM 的数据合成和增强方法的进步将释放新的可能性,以提高数据效率,改善跨任务的通用性,并推动以数据为中心的人工智能的发展。我们希望这项调查能作为未来研究的基础,激励面向 LLM 的数据合成和增强领域的创新和进步。

Read more

文心一言API接入指南:手把手教你快速集成AI能力

文心一言API接入指南:手把手教你快速集成AI能力 关键词:文心一言API、大模型集成、开发者指南、AI能力调用、API接入实战 摘要:本文是面向开发者的文心一言API接入全流程指南,从注册账号到代码调用,用“手把手”式讲解+实战案例,带你快速掌握大模型能力集成方法。无论你是想给产品增加智能对话功能的中小团队,还是想尝试AI开发的个人开发者,读完本文都能轻松上手文心一言API! 背景介绍 目的和范围 近年来,以文心一言(ERNIE Bot)为代表的大语言模型(LLM)彻底改变了AI应用开发模式——开发者无需从头训练模型,通过API调用就能快速为产品注入智能对话、内容生成、文本理解等能力。本文聚焦文心一言API的实际接入流程,覆盖从账号注册到代码调试的全链路操作,帮助开发者快速将大模型能力集成到自己的应用中。 预期读者 * 中小团队开发者(需要为产品添加智能交互功能) * 个人开发者(想尝试AI应用开发) * 学生/技术爱好者(对大模型实际应用感兴趣) 文档结构概述 本文采用“知识铺垫→操作指南→实战验证→场景拓展”的逻辑,

论文写作神器!9款AI工具一键生成初稿,AIGC率低至7%轻松搞定

一、9款AI论文工具横向对比:选对工具效率提升10倍 作为论文写作新手,最头疼的莫过于“工具太多挑花眼”——到底哪款工具能生成初稿?哪款能降重?哪款适合文献检索?别慌,我整理了9款主流AI论文工具的核心参数对比表,帮你1分钟锁定适配需求的工具: 工具名称核心功能定位初稿生成能力AIGC率控制特色优势适用场景图灵论文AI写作助手一站式论文深度解决方案★★★★★(30分钟5万字)★★★★★(低至7%)文献综述/问卷数据/图表公式一键生成毕业论文、实证分析、导师意见修改SciSpace文献阅读+写作排版工具★★★☆☆★★☆☆☆AI术语解释、期刊格式自动适配外文文献阅读、期刊论文排版Kimi长文本处理+对话式写作辅助★★★★☆★☆☆☆☆超长上下文(支持百万字文档)文献总结、论文结构搭建知学空间免费论文资源库+写作参考★☆☆☆☆——海量毕业论文范文、学术资料写作思路拓展、结构参考豆包AI中文对话式写作辅助★★★☆☆★☆☆☆☆中文理解能力强、多模态交互选题 brainstorm、摘要生成ArXiv预印本文献库————前沿研究快速发布、免费开放理工科文献检索、最新研究跟踪ERIC教育领域专业

用 OpenAI Whisper + pyannote.audio 打造“谁在说什么”的全栈语音理解系统

用 OpenAI Whisper + pyannote.audio 打造“谁在说什么”的全栈语音理解系统

只做语音识别的系统,只能回答“说了什么”; 只有说话人分离的系统,只能回答“谁在什么时候说话”; 把两者拼在一起,你就有了一个真正能看懂对话的机器。 这篇文章,我们从工程落地的角度,聊一聊:如何把 OpenAI 的 Whisper 语音识别模型,和 pyannote.audio 的说话人分离管线拼成一个“谁在什么时候说了什么”的完整解决方案。 我们会回答这三个核心问题: 1. 技术思路:Whisper + pyannote.audio 的组合到底在解决什么问题? 2. 工程实现:从一段音频到“带说话人标签的转写结果”,需要哪些关键步骤? 3. 实战建议:在真实业务里,这种方案要怎么做取舍、怎么优化? 全文尽量站在“要上线一个能工作的系统”的视角,而不是“能跑就行的 demo”。 一、为什么一定要把 Whisper 和 pyannote.

【源力觉醒 创作者计划】开源、易用、强中文:文心一言4.5或是 普通人/非AI程序员 的第一款中文AI?

【源力觉醒 创作者计划】开源、易用、强中文:文心一言4.5或是 普通人/非AI程序员 的第一款中文AI?

前言 * 你有没有发现,AI 正在悄悄渗透进我们的生活:写文案、画插图、做PPT、答作业,它几乎无所不能😍 !但很多人可能会问: AI,我能用吗?用得起吗?适合我吗?特别是中文用户,面对清一色英文界面、动辄上百元的 API 费用、还要“翻墙”的闭源大模型,常常望而却步😩。 * 好消息来了,文心一言4.5 正式开源,带着「能跑、好用、懂中文」的标签亮相😎。这不仅是一款中文大模型,更像是为中文用户量身定做的一把 AI 钥匙,让你在本地就能打开 AI 世界的大门!在这个“不会用 AI 就像不会用手机”的时代,早点上手,早点受益。 * 一起来轻松玩转文心大模型吧👉一文心大模型免费下载地址: https://ai.