AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


【LLM】语言模型合成数据的最佳实践和经验教训
发布日期:2024-05-06 16:05:49 浏览次数: 2162


一、结论写在前面

人工智能模型的成功取决于能否获得大量多样化且高质量的数据集,但由于数据稀缺、隐私问题和高昂成本,这常常很具挑战性。合成数据作为一种有前景的解决方案应运而生,它通过生成模拟真实世界模式的人工数据。

关于合成数据的未来研究方向可以集中在提高生成模型的保真度和可控性,并开发标准化的评估和污染协议及工具上。我们还可以探索将合成数据与其他技术整合以及在其他领域的应用。尽管存在挑战,合成数据在推动人工智能研究方面的潜在益处是显著的。通    

二、论文的简单介绍

2.1 背景

人工智能(AI)技术的迅速发展导致其在诸多领域广泛应用,从助手代理(如 Adept AI 的 ACT-11)和软件开发(如 Cognition Lab 的 Devin2)到医疗保健(Singhal等,2022)和金融(Zheng等,2022)。然而,AI模型的成功在很大程度上依赖于大量多样化且高质量的数据集用于训练和评估。获取这样的数据集可能是一个重大挑战,原因是数据稀缺(Babbar 和 Schölkopf,2019)、隐私问题(Abay等,2019)以及数据采集和标注的巨大成本(Gilardi等,2023b)。有悲观者预测,到2050年我们将用尽新鲜文本数据,到2060年将用尽图像数据(Villalobos等,2022)。

合成数据作为一种有前景的解决方案应运而生(Nikolenko,2021)。合成数据指通过算法(Saxton等,2019)、生成模型(Borisov等,2022;Meng等,2022)或仿真(Liu等,2023c;Vezhnevets等,2023)而非人工创建的人工生成数据,其模拟了真实世界数据的特征和模式。通过利用合成数据,我们不仅可以克服真实世界数据的局限性,还可以释放开发更robust、可靠和公平的AI模型的潜力(Lu等,2023;Lucini,2021)。    

合成数据的众多好处之一是可以大规模生成,为AI模型提供了丰富的训练和测试数据。这在真实世界数据稀缺或难以获得的领域(如覆盖所有条件的天气数据(Lam等,2023;Li等,2023a))尤为宝贵。其次,合成数据可以根据特定需求进行定制,例如通过引入可控变化确保不同类别的平衡表示(如在多语种语言学习中增加低资源语种权重(Przystupa和AbdulMageed,2019))。对数据特征的这种控制可以提高模型性能和泛化能力。第三,合成数据可以通过创建不包含敏感个人信息的匿名或去标识化数据集来缓解隐私问题(El Emam等,2020;Howe等,2017)。这在诸如医疗保健等高度重视患者隐私的领域尤为关键(Dahmen和Cook,2019;Wei等,2019)。

2.2 合成训练数据

通过模仿从真实世界收集的真实数据生成的合成数据,已被证明是真实数据的一种行之有效且相对低成本的替代品。本节探讨利用合成训练数据的几个值得注意的领域。

2.2.1 推理

数学:语言模型数学推理能力的最新进展,导致了发展各种方法来提高相关任务的性能。一种方法是在以数学为目标的预训练数据上进行训练,如Minerva、Llemma和DeepSeekMath。另一种主流方法是生成模拟目标基准测试的训练或验证集的合成问题和答案。例如,

WizardMath利用一系列操作通过GPT-3.5增加问题和答案的复杂性,    

而MetaMath通过不同方式重写MATH和GSM8K中的问题(如语义重述、自我验证和反向推理)来启动问题。

GAIR-Abel发现,增强答案的格式对最终性能至关重要,以问题的重述开头,后跟逐步解决方案的答案比普通格式的答案表现更好。

Xwin-Math进一步将合成SFT数据扩大到100万个样本,发现LLaMA-27B模型仍可从数据扩增中获益。

MMIQC组合了一系列数据集,将SFT风格数据(通过重述问题和回答或直接来自MetaMath)与一部分高质量的数学预训练数据(如OpenWebMath)相融合。

代码:与数学不同,代码推理的合成数据可以自然地将执行结果与结构化代码相结合,因为正确代码的一个要求就是可执行。

在增强代码的模型中,CodeRL提出了一种actor-critic方法,通过合成代码样本的反馈信号来改进预训练的语言模型。

Haluptzok等人提出了一种自我改进策略,模型生成自己的合成难题-解决方案对。然后,这些对由真实解释器验证和过滤,再用于微调语言模型。

Shypula等人进一步提出了一个框架,利用模拟环境和自我改进合成数据生成、CoT提示等适应策略进行代码优化。

Yang等人(2024)开发了InterCode,这是一个旨在增强强化学习环境中交互式代码生成的框架,其中代码作为动作,执行反馈作为观察。

Reflexion(Shinn等,2024)采用外部或内部模拟的语言反馈信号来改善语言模型的代码推理能力。

关于合成SFT数据,Code Alpaca包括一个20K条代码指令数据集,通过将SELF-INSTRUCT(Wang et al., 2022a)应用于ChatGPT的21个种子任务自动生成。WizardCoder引入了Code Evol-Instruct,通过启发式提示引导ChatGPT增强合成数据的复杂性和多样性。与此同时,Magicoder开发了OSS-INSTRUCT,从开源代码片段生成75K个不同的合成指令样本。

其他推理任务:合成数据也在其他推理任务中取得了令人印象深刻的性能。例如,    

Wei等人(2023a)通过用任意符号替换自然语言标签来增强现有的自然语言数据集,生成了超过500k的合成样本。使用这些合成数据进行监督微调,大大提高了模型在看不见上下文学习和算法推理任务上的性能。

STaR(Zelikman et al., 2022)生成合成的思维链推理,并过滤掉导致错误答案的那些用于微调语言模型以改善其推理能力。

在物理推理领域,Mind's Eye(Liu et al., 2022)采用了一种新颖的方法,用合成的"文本描述→渲染代码"数据训练文本到代码模型。这使得该模型能够将文本问题转换为渲染代码,然后在物理引擎(即DeepMind MuJoCo中执行。渲染结果被注入上下文中,使得即使是小型语言模型也可以在加入Mind's Eye后达到与100倍大型模型相当的性能。

2.2.2.工具使用和规划

通过合成轨迹学习工具使用:合成数据也是一种强大的方法,可以通过模拟轨迹使语言模型学习使用工具的能力,因为收集真实世界的人类工具使用数据可能耗时较长,而且实际对工具的调用分布可能存在偏差。例如,LaMDA不仅在网络文档上受过训练,还在群众工作者与模型自身之间的交互数据上受过训练,合成数据被标注了适当的工具调用。这个训练过程使LaMDA能够使用计算器进行算术运算、使用搜索引擎进行实时信息查找,以及使用机器翻译进行翻译。类似地,Toolformer通过在模板生成的数据上训练,学会决定调用哪些API以及传递什么参数,而Galactica则将API调用数据融入预训练混合物中。ToolAlpaca是一种新颖的框架,旨在通过构建多智能体模拟环境并让代理重复选择和使用工具来自动生成多样化的工具使用语料库。这些例子展示了合成轨迹在使语言模型获得工具使用能力和增强各领域推理能力的潜力。

在合成环境中学习规划:自主机器智能中代理的一个重要特征是规划——将复杂任务分解为子任务并以奖赏最优方式完成子任务的能力。合成数据在这里可以是一个宝贵的工具,因为它可以作为从模拟器收集的反馈信号,并在其上学习可以使代理意识到可及性。例如,Inner Monologue利用模拟环境生成的自然语言形式反馈来教LLM驱动的机器人进行规划。他们发现这种反馈显著改善了模拟和真实领域中高层指令完成的情况。为了编排大量现实规划任务(如"重新排列桌面上的物体与给定场景相匹配"),VIMA创建了一个称为VIMA-Bench的多模态模拟环境,支持可扩展的物体和纹理集合。在Minecraft游戏中,Voyager部署了一些基于GPT-4的代理与合成环境进行交互,发现在合成反馈的帮助下,代理可以更快解锁新技能并更高效地完成规划。    

2.2.3. 多模态

从视觉到文本的反向渲染:视觉-语言对齐数据侧重于准确地将视觉输入植入语言大模型(通常通过视觉编码器)。在过去几年里,由于CLIP和ALIGN,网络抓取的图像-Caption对是最流行的多模态对齐数据。然而,网络抓取的图像-文本对通常是嘈杂的,并且只有粗粒度对应,不足以在语言中对图像细节进行植入。在文档、屏幕、数字和图表等领域,这种细粒度对齐最方便地来自于使用图像渲染引擎构建的数据合成管道。

Pix2Struct使用Web服务器将HTML代码渲染为网站屏幕截图,训练任务是将遮蔽的屏幕截图反渲染为完整的HTML代码。

MatCha和DePlot使用Python绘图库将表格数据渲染为图表,并通过给出渲染图像并生成代码和/或表格数据来预训练基础模型。

Si等人(2024)和Laurençon等人(2024)在合成生成的HTML和CSS文件上训练,将网页截图转换为代码实现。在合成数据上微调的模型可以在从互联网抓取的真实数据上很好地泛化。

Borkman等人(2021)提议使用物理引擎或游戏引擎(如Unity)作为合成数据生成器来帮助计算机视觉研究。

多模态指令执行:多模态语言大模型的下游应用需要推理和执行指令的能力。这种数据通常是长形式的问题响应对,由人工创建成本高昂。

LLaVA(Liu et al., 2024b)使用现有的图像说明来提示GPT-4(仅文本模式)编写多样化和长格式的提示-回答对。在多模态语言大模型训练期间,图像和提示被用作输入,而说明和边界框信息则可以被隐藏。

除了图像说明之外,对象边界框(Zhao et al., 2023)、OCR(Zhang et al., 2023d)和反渲染图表(Carbune et al., 2024; Masry et al., 2023)等其他图像属性信息来源都可以融入到诸如图像属性+文本语言大模型重写合成数据管道中。    

2.2.4. 多语种

反向翻译增强:许多多语种语言模型使用反向翻译作为一种数据增强方法,从单语数据源创建合成的平行训练数据。例如,

Sennrich等人(2016)将单语目标数据反向翻译成源语言数据,为翻译任务提供额外的平行训练样本,从而大幅改善性能。研究人员还探索了反向翻译的不同采样方法(如束搜索、受约束采样、无约束采样)及其相对有效性。

Xu等人(2022)强调了使用反向翻译时合成数据的权重和质量对于获得最佳NMT性能的重要性。他们提出了一种优化搜索方法比率和伽马分数的方法,以平衡估计的重要性权重和质量。

然而,基于反向翻译的合成数据生成存在一些局限性。例如,合成数据的质量和多样性取决于反向翻译方法的性能。如果合成数据太嘈杂或不够多样,性能提升将是有限的(Chauhan et al., 2022; Epaliyana et al., 2021)。

大规模生成多语种问题和答案:最新研究探索了生成和利用合成的多语种问答(QA)对,以提高语言模型在多语种和跨语种问答中的性能。一种方法是将现有的单语问题和/或答案翻译成其他语言。另一种方法是根据答案和/或源文本,使用问题生成(QG)模型以跨语种方式生成合成问题。最新的研究还致力于以更大的灵活性联合生成多语种问题和答案。例如,Shakeri等人(2021)在问答生成任务和多语种掩码语言模型任务的混合物上微调预训练的多语种T5模型,以生成多语种合成问答对。这些工作通常表明,在合成问答对上训练的语言模型在多语种问答和信息检索基准测试中表现出更好的性能。

2.2.5. 对齐

指令跟随:合成数据可以作为一种有前景的方法来训练指令跟随模型,特别是在真实世界数据稀缺、昂贵或难以获得的情况下。Self-instruct和Stanford Alpaca都使用语言大模型来生成覆盖广泛场景的指令跟随数据。他们首先选取一小组"种子指令跟随样本",然后要求语言大模型模仿该格式生成更多示例。这种方法的一个问题是如何保持生成数据的高质量,这涉及查询的复杂性、语义的多样性和合成数据集的规模。为此,

Xu等人(2023)提出了Evol-Instruct,它通过提示增加了简单指令的复杂性。    

Mukherjee等人(2023)利用语言大模型对FLAN数据集(Wei et al., 2022)中的指令和响应进行迭代修订,以包含高质量的解释踪迹,他们发现经过训练的模型在许多NLP任务中性能有所提高。

UltraChat(Ding et al., 2023)是一个大规模多轮合成对话数据集,由两个独立的ChatGPT Turbo API模型生成——一个扮演用户角色,另一个扮演助手角色。他们用精心设计的提示指导用户模型,以模拟真实的人类用户行为。

许多语言模型都经过监督微调以学习如何遵循指令,但在学习这种行为的过程中,它们可能无意中也学会了奉承行为(Perez et al., 2023),调整响应以遵循用户的观点,即使该观点在客观上是不正确的(Wei et al., 2023b)。Sharma等人(2024)发现,偏好模型(即用于RLHF训练的奖励模型)甚至人类有时也更喜欢奉承性回应。在这方面,Wei等人(2023b)生成合成数据来鼓励模型对用户观点保持robust,并在微调步骤中添加这些数据以减少对未见过的提示的奉承行为。

缓解幻觉:许多广泛使用的语言模型利用监督微调(SFT)来学习与用户互动的对齐。特别是存在许多生成合成SFT数据的方法,可以改善推理和对齐等能力。然而,已经表明这些合成数据可能会通过包含大量虚构的答案或迫使模型学习如何回答它们不知道答案的问题,从而将幻觉诱导到语言模型中。这些案例证明,如果使用不当,合成数据实际上会增加语言模型中的幻觉。

另一方面,最新研究也显示出使用合成数据可以有效缓解幻觉的前景。例如,GPT-4(OpenAI, 2023)使用了一种利用合成幻觉数据进行强化学习的奖励模型进行训练。这种方法在TruthfulQA(Lin et al., 2022)数据集上显著提高了性能。类似地,Jones等人(2023)设计了一个可以轻松评估幻觉的合成任务,利用这一任务通过前缀调优学习连续后缀来优化语言大模型的输出。Tian等人(2023)使用自动事实核查和置信度分数对模型响应对的factuality分数进行排序,然后使用DPO对语言模型进行微调以提高其factuality。然而,继续研究使用合成数据缓解幻觉仍然受到可以扩展评估幻觉的合成任务缺乏的限制。

               

 

               

 

               

 

论文标题:Best Practices and Lessons Learned on Synthetic Data for Language Models

论文链接:https://arxiv.org/pdf/2404.07503.pdf    


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询