在自然语言处理 (NLP) 的现代时期,我们正见证着一场“大卫与歌利亚 (强弱对比) ”的局面。一边是“歌利亚”: 像 GPT-4、Claude 和 Llama 2 这样庞大的、通用的的大语言模型 (LLM) 。这些模型几乎无所不能,但计算成本昂贵、速度慢,而且通常只能通过 API 访问。另一边是“大卫”: 更小、更专用的模型 (如 BERT 或 DeBERTa) ,它们速度快、成本低,并且可以部署在普通的硬件上。
对于许多组织和研究人员来说,目标是知识蒸馏 : 将巨大的教师 LLM 的能力转移到较小的学生模型中。实现这一点的标准方法是让教师模型生成海量的合成数据集,然后让学生模型在这个数据集上进行训练。
但这存在一个问题。当你要求 LLM 生成成千上万个示例 (例如,“写一篇电影评论”) 时,它往往会变得重复。它依赖于其内部的参数记忆,经常反刍相同的流行实体 (例如,“复仇者联盟”或“泰坦尼克号”) 并重复使用相同的句子结构。这种多样性的缺乏造成了一个“乏味”的数据集,限制了学生模型的学习上限。
在这篇文章中,我们将探讨亚马逊和德克萨斯大学奥斯汀分校的研究人员提出的解决方案: SYNTHESIZRR 。 该方法通过引入检索步骤,从根本上改变了我们生成合成数据的方式,确保学生模型能够从丰富、多样且锚定于现实的数据分布中学习。
问题所在: 少样本生成的局限性
要理解为什么需要 SYNTHESIZRR,我们首先需要看看现有的主流方法: 少样本生成 (FEWGEN) 。
在 FEWGEN 中,你为 LLM 提供几个任务示例 (演示) ——比如说,检测政治偏见——并要求它按照该模式生成更多示例。虽然这在一定程度上有效,但它遭受着模式崩塌 (mode collapse) 的困扰。LLM 倾向于从其训练数据的高概率区域进行采样。
如果你要求生成 10,000 篇合成新闻文章,你可能会得到 500 个关于希拉里·克林顿邮件门丑闻的变体,或者是关于税收的泛泛抱怨。生成的数据集缺乏现实世界复杂性的“长尾”。

如上方的图 1 所示,FEWGEN 方法 (中间) 经常产生幻觉内容或依赖通用的陈词滥调。相比之下,SYNTHESIZRR (底部) 检索了一份真实、具体的文档 (如参议员哈里·里德的一封信) ,并将其重写以匹配目标标签。这种基于真实文档的锚定为稳健的训练提供了必要的多样性。
解决方案: SYNTHESIZRR
这篇论文的核心洞见是,数据集的合成涉及两种截然不同的能力,应该将它们解耦:
- 内容寻源 (Content Sourcing) : 获取“内容”——事实、实体和场景。
- 任务反转 (Task Inversion) : 执行“方式”——将这些内容格式化为分类任务所需的特定输入-输出对。
先前的方法强迫 LLM 仅利用其内部记忆同时完成这两项工作。SYNTHESIZRR 将内容寻源的工作卸载给了外部检索系统。
工作流程
SYNTHESIZRR 的过程可以看作是一条流水线,它将少量的“种子”示例转化为海量的、多样化的数据集。

以下是分步细解:
- 内容寻源 (检索) : 系统从一小组带标签的种子示例 (\(x_{ICL}, y_{ICL}\)) 开始。它使用这些示例作为查询来搜索海量的无标签语料库 (如 RealNews 或亚马逊产品数据库) 。对于每个种子示例,它检索 \(K\) 个唯一文档 (\(r_1...r_K\)) 。
- 任务反转 (精炼) : 然后,系统构建一个包含这些检索文档之一的提示。它指示教师 LLM 重写或利用此检索到的文档来匹配特定的目标标签。
这种方法的妙处在于扩展因子 。 单个种子示例可以用来检索 50 或 100 个不同的文档。由于每个文档都包含独特的实体和背景,LLM 被迫生成 50 或 100 个独特的合成训练示例,而不是重复相同的概念。
从数学上讲,合成示例 \(\tilde{x}\) 的生成不仅以提示指令为条件,而且明确地以检索到的文档 \(r_k\) 为条件:
\[ \begin{array} { r } { \tilde { x } _ { j } ^ { i } \sim \mathcal { M } _ { \mathrm { L M } } \big ( \cdot | \tilde { x } _ { < j } ^ { i } , \mathcal { P } _ { \tau } ( R _ { i n v } , r _ { k } , \mathcal { V } ( y _ { { I C L } } ) ) \big ) , } \end{array} \]
这个公式强调了生成是有依据的。模型 \(\mathcal{M}_{LM}\) 基于提示 \(\mathcal{P}_\tau\) 生成下一个 token,该提示包含了反转指令 \(R_{inv}\)、检索到的文档 \(r_k\) 和标签的语言化形式 \(\mathcal{V}(y)\)。
算法: RETRICL
作者介绍了一种名为 SYNTHESIZRR RETRICL (检索上下文学习) 的特定算法。
在标准的少样本提示中,你会提供来自种子集的随机示例。在 RETRICL 中,作者甚至在*演示 (demonstrations) *环节也使用了检索。当基于检索到的文档 \(r_k\) 生成合成示例时,提示中包含的“shots” (示例) 在语义上与该文档是相似的。
最终的合成数据集 \(\mathcal{D}_{SYNTH}\) 是源自所有检索文档的所有生成结果的并集:
\[ \mathcal { D } _ { \mathrm { { S Y N T H } } } = \bigcup _ { ( x , y , \Gamma _ { K } ) \in \mathcal { D } _ { \mathrm { { R E T R } } } } \bigcup _ { r _ { k } \in \Gamma _ { K } } \big \{ ( \tilde { x } ^ { i } , y ) \big \} . \]
为什么有效: 内在评估
添加检索步骤真的能让数据变好吗?研究人员使用多个指标分析了生成的文本,以衡量多样性和质量。
1. 词汇多样性 (Self-BLEU)
Self-BLEU 衡量生成的句子与同一数据集中其他句子的相似程度。分数越低越好,表明重复性越低。

如图 3 所示,SYNTHESIZRR (蓝色和粉色线) 实现的 Self-BLEU 分数显着低于 FEWGEN (橙色/绿色线) 。SYNTHESIZRR 的多样性接近人类编写的文本 (GOLD) 。这证实了用不同的检索文档作为种子供给模型,会迫使它使用多样化的词汇。
2. 实体多样性 (熵)
LLM 的最大弱点之一是“流行度偏差”——它们会谈论纽约和伦敦,但很少谈论斯克兰顿或利兹。

图 4 展示了不同类别如组织 (ORG) 、人物 (PERSON) 和地点 (LOC) 的实体熵 (提及实体的随机性) 。SYNTHESIZRR 保持了高熵,类似于黄金标准 (GOLD) 。相反,FEWGEN 塌缩到了狭窄的流行实体范围内。通过从语料库的“长尾”进行检索,SYNTHESIZRR 确保学生模型在训练期间能看到罕见的实体。
3. 定性比较
当你阅读文本时,差异甚至更加明显。在下方的表 3 中,看看“电子产品”类别。FEWGEN 的例子很模糊 (“满意的客户”、“快”、“好的外部驱动器”) 。它读起来像个模板。而源自检索到的产品描述的 SYNTHESIZRR 示例则很具体: 它提到了“便携式笔记本麦克风”、“直角”和“平坦的频率响应”。

这种特异性有助于学生模型学习对分类真正重要的特征,而不是依赖通用的情感词汇。
蒸馏性能: 外在评估
合成数据集的终极测试是: 它能训练出更好的学生模型吗?
作者在通过不同方法生成的数据集上微调了一个 DeBERTa-v3-Large 模型 (学生模型) 。

表 6 展示了六个不同数据集 (AG News, Hyperpartisan 等) 的结果。
- 零样本 (Zero-Shot) : 即使没有任何上下文示例,SYNTHESIZRR 也显着优于 FEWGEN。这表明仅检索步骤本身就提供了巨大的价值。
- 少样本 (Few-Shot) : 3-shot SYNTHESIZRR (RETRICL) 始终击败 32-shot FEWGEN。这是一个显著的效率提升——利用检索可以用更少的上下文演示获得更好的性能。
与最先进方法的比较
研究人员还将 SYNTHESIZRR 与其他复杂的合成方法 (如 SunGen、ReGen 和 AttrPrompt) 进行了基准测试。

如上表 (表 7) 所示,SYNTHESIZRR 通常生成的数据集能带来比其他方法更高的准确率 (内在和外在) ,且通常使用较小的教师模型 (Llama-2 13B 对比 GPT-3.5) 。它在 MAUVE 分数上表现尤为出色,该指标衡量合成文本的分布与人类文本的接近程度。
为什么有效?数据图谱分析
为了理解为什么学生模型学得更好,作者采用了数据集制图学 (Dataset Cartography) 。 该技术将训练样本绘制在两个轴上:
- 置信度 (Confidence) : 模型对真实标签的确信程度。
- 变异性 (Variability) : 训练期间模型预测的波动程度。
高变异性通常表示“模棱两可”或“难以学习”的样本。这些通常对学习决策边界最有价值。

图 5 揭示了一个关键的洞见。
- FEWGEN (中间) : 数据聚集在左上角 (高置信度,低变异性) 。这些是“简单”的例子。模型瞬间学会了它们,然后就停止学习了。
- SYNTHESIZRR (右) : 分布看起来更像 GOLD 人类数据 (左) 。它包含健康的、模棱两可的样本分布 (较高的变异性) 。
因为 SYNTHESIZRR 强迫 LLM 处理现实世界的、检索到的上下文 (这可能是混乱或复杂的) ,它生成的训练数据能够挑战学生模型,防止其学习简单、脆弱的启发式规则。
上下文示例的影响
提供更多的上下文示例 (shots) 对 SYNTHESIZRR 有帮助吗?作者在 RETRICL 过程中改变了使用的 shot 数量。

图 7 显示,增加 shot 的数量 (从 0 到 8) 通常会提高学生的准确性 (左图) 。然而,有趣的是,提供更多的 shot 会在实体熵上产生轻微的权衡 (中图) 。随着提示因更多示例而变得更严格,LLM 可能会稍微限制其创造力,尽管性能收益通常超过这种下降。
结论
SYNTHESIZRR 论文对合成数据的“黑盒”生成提出了强有力的反对论点。如果仅仅依赖 LLM 的内部参数 (FEWGEN) ,我们得到的数据就会偏向分布的“头部”——重复、乏味且过于简单。
通过将数据集生成视为一个两部分的过程——检索 (内容) + 精炼 (风格) ——SYNTHESIZRR 实现了两全其美。它利用了外部语料库中包含的海量知识,以及现代 LLM 的指令遵循能力。
给学生的关键启示:
- 分解: 复杂的 NLP 任务往往受益于将其分解。在这里,将说什么与怎么说分开,解锁了多样性。
- 锚定: 合成数据的质量取决于其来源。将生成锚定于检索到的文档可以防止模式崩塌。
- 难度很重要: 为了让学生模型学习,教师必须提供具有挑战性的、模棱两可的例子,而不仅仅是简单的例子。
随着我们迈向大多数训练数据可能都是合成数据的未来,像 SYNTHESIZRR 这样的技术将至关重要,它可以防止我们的 AI 模型陷入自身重复输出的反馈循环中。
](https://deep-paper.org/en/paper/2405.10040/images/cover.png)