目录
指令调优已成为将大型语言模型(LLM)与特定任务指令对齐的关键,从而减少下一个令牌预测目标与用户实际目标之间的差异。为了减少人类收集或注释数据的劳动力和时间成本,研究人员开始探索使用LLMs来 生成符合指令的合成数据。最近的工作重点是生成多样化的指令并应用 LLM 来增加指令复杂性,通常忽略下游示例。目前尚不清楚如何定制高质量数据以在不同的目标指令分布和LLMs中获得更好的指令跟踪能力。为此,我们引入了 CodecLM,这是一个通用框架,用于 自适应生成高质量合成数据,用于与不同下游指令分布和 LLM 进行 LLM 对齐。借鉴编码-解码原则,我们使用 LLM 作为编解码器来指导数据生成过程。我们首先将种子指令编码为元数据,元数据是即时生成的简洁关键字,用于捕获目标指令分布,然后解码元数据以创建定制指令。我们还在解码过程中引入了自评分表和对比过滤,以定制数据高效的样本。根据基准对四个开放域指令进行的广泛实验验证了 CodecLM 相对于当前最先进技术的有效性。
Introduction
大型语言模型 (LLM) 在各种自然语言处理 (NLP) 任务中表现出了卓越的能力(Brown 等人,2020;Ouyang 等人,2022;OpenAI,2023a;Anil 等人,2023)。特别是,LLMs可以通过各种方法进行训练,以改进指令遵循,包括对人工注释数据进行微调(Touvron 等人,2023 年;Bai 等人,2022 年)或从更强LLMs的知识中提取知识。该领域的最新进展凸显了高质量数据在增强LLMs遵循指令能力方面的关键作用(Zhou et al., 2023a; Köpf et al., 2023; Chen et al., 2023b)。然而,通过人工注释获取此类数据仍然成本高昂且难以扩展,阻碍了进展。
作为人工注释的替代解决方案,最近的工作探索通过使用示例数据或提示提示来生成用于 LLM 对齐的指令响应对,并迭代地完善结果(Honovich 等人,2022 年;Wang 等人,2022 年;Li 等人, 2023;徐等人,2023)。虽然这些方法可以有效地生成广泛的 LLM 对齐的多样化和复杂的指令,但实际应用程序通常会优先考虑将 LLM 定制为特定的下游任务,例如单个企业应用程序或个人助理代理(OpenAI,2023b),这经常涉及不同的指令分布。这种针对特定任务对齐的迫切需要给我们带来了数据合成的核心问题:我们如何定制合成数据以使LLMs能够针对不同的指令跟踪任务进行对齐?
具体来说,当前的数据合成方法不足以为特定任务的 LLM 调整提供有效的解决方案。现有工作强调多样性和复杂性是高质量数据的标志,但这些方法在面对可能涉及特定指令分布的不同下游任务时会遇到困难。一项任务的多样化数据集可能无法有效覆盖另一项任务的指令分布。此外,“复杂”指令的定义可能是主观的,并且因任务而异。更复杂的是,LLMs可能擅长某些看似复杂的指令,但在处理其他根据人为标准看似简单的指令时却遇到困难。这些限制凸显了对统一数据合成框架的需求,该框架可以生成定制数据,以使LLMs与特定下游任务保持一致。
在这项工作中,我们提出了一个新颖的框架 CodecLM,它可以系统地生成定制的高质量数据,以使LLMs能够适应不同的下游任务。图 1 显示了 CodecLM 的整体概述。受到编码-解码过程原理的启发(Kramer,1991;Kingma 和 Welling,2013),我们利用强大的 LLM 作为编解码器来“编码”来自我们的种子指令。将目标任务转换为指令元数据,然后将元数据“解码”为定制的合成指令。元数据充当输入指令分布word层级的概括,包括有效遵循指令的用例和技能。它可以通过编码种子指令自动生成,也可以由用户直接提供对下游任务的高级预期。一旦元数据被提取,我们就会**“解码”它们以生成定制的指令**。我们首先以元数据作为约束提示LLMs,创建基本说明。为了提高指令质量,我们引入了自我评分表。它从强大的LLMs中抽取适当的行动样本,根据为不同元数据生成的规则,使基本指令变得更加复杂或更具挑战性。直观地说,关于数学知识的高质量指令在复杂性方面与关