FuseGen: 协作式 AI 智能体如何生成更优质的训练数据

在当前的人工智能领域,我们正目睹一种“大卫与歌利亚”般的态势。一方面,我们拥有“歌利亚”——像 GPT-4、Llama-2 和 Claude 这样的大型预训练语言模型 (PLM) 。这些模型能力惊人,但计算成本高昂、速度慢,且难以部署在边缘设备或对隐私敏感的环境中。

另一方面,我们有“大卫”——小型特定任务模型 (STM) 。这些是紧凑、高效的模型 (如 BERT) ,可以在智能手机或私有服务器上运行。问题在于,“大卫”需要训练数据——而且是大量的数据——才能发挥作用。在许多现实场景中,高质量的标注数据非常稀缺,甚至根本不存在。

这就引出了一项迷人的技术,称为基于数据生成的零样本学习 (Data-generation based Zero-shot Learning) 。 其核心理念很简单: 让“歌利亚” (PLM) 编写教科书 (合成数据集) 来教导“大卫” (STM) 。然而,这其中有一个陷阱。如果仅由单个 PLM 生成数据,该数据集就会继承该特定模型的偏见、盲点以及缺乏多样性的问题。

今天,我们将深入探讨 FuseGen , 这是由清华大学和上海人工智能实验室的研究人员提出的一个新颖框架。FuseGen 通过创建一个 PLM “委员会”来解决单一教师的问题,这些模型相互协作、相互评判并相互学习,从而生成更优质的合成数据集。

问题所在: 单一教师的偏见

要理解为什么 FuseGen 是必要的,我们需要先看看当前合成数据生成的局限性。

在标准设置中,你可能会给 Llama-2 这样一个提示词: “写一篇正面情感的电影评论。” 你重复这个过程数千次以创建一个数据集,然后在这个文本上训练一个小型分类器。

问题在于分布偏差 (Distribution Bias) 。 单个 PLM 倾向于生成落入特定、狭窄概率分布的样本。它通常会产生“易学”的样本——即那些老套的例子,无法给学生模型带来挑战。

FuseGen 的作者使用一种称为数据集地图 (Dataset Cartography) 的技术生动地可视化了这个问题。该方法根据两个指标映射数据样本:

  1. 置信度 (Confidence) : 模型对标签的确定程度。
  2. 变异性 (Variability) : 模型预测在训练过程中的波动程度。

基于这些指标,数据被分为三类:

  • 易学样本 (Easy-to-learn) : 高置信度,低变异性。有助于收敛,但很无聊。
  • 歧义样本 (Ambiguous) : 高变异性。这些是“恰到好处”的样本——棘手、微妙的例子,能真正迫使模型学习复杂的边界。
  • 难学样本 (Hard-to-learn) : 低置信度,低变异性。这些通常是标记错误或垃圾数据。

图 1: 比较单 PLM 方法 (ZeroGen, ProGen) 与 FuseGen 的数据集地图。

如上方的 图 1 所示,请观察分布的差异。

  • 图 1(a) 和 1(b): Llama-2 (左列) 主要生成“易学”样本 (红色区域) 。“歧义”区域 (黑色) 很稀疏。
  • 图 1(d) 和 1(e): Flan-T5 (底行) 有着不同的偏差。
  • 图 1(c) 和 1(f): 这就是 FuseGen 。 注意分布是如何变化的?它成功生成了易学样本和歧义样本的丰富混合。

这里的核心洞察是,一个理想的数据集不应该仅仅是巨大的;它应该在正确的方式上具有难度。它需要单一模型难以独自提供的多样性。

解决方案: FuseGen 框架

FuseGen (融合生成) 建立在一个前提之上: 一个多样化的模型委员会可以弥补彼此的盲点。它是一个多 PLM 框架,可以迭代地提高合成数据的质量,而无需人工标注。

该框架分两个主要阶段运行:

  1. 跨模型数据集生成 (CDG) : 模型生成数据,对其进行评判,并使用最好的例子来启发下一批次。
  2. 跨模型数据质量提升 (CDI) : 最后的过滤阶段,学生模型 (STM) 学习忽略糟糕的数据。

让我们分解一下架构。

图 3: FuseGen 的工作流程图,展示了迭代生成循环。

第一阶段: 跨模型数据集生成 (CDG)

这是框架的引擎 (图 3 中的步骤 1、2 和 3) 。这里的目标是选择“上下文示例 (In-Context Examples) ”——即包含在提示词中以指导 PLM 的样本——这些样本必须是高质量且多样化的。

步骤 1: 并行生成与训练

想象我们有一个由 \(K\) 个不同 PLM 组成的集群 (例如 GPT-2, Llama-2, Vicuna 等) 。 首先,每个 PLM 使用简单的提示词生成一批合成数据。然后,我们为每一个数据集训练一个临时的 STM (小型特定任务模型) 。

步骤 2: 跨模型质量评估

现在到了“融合”环节。我们需要决定这海量生成的文本中哪些样本实际上是好的。FuseGen 使用了一种跨模型标准 (Cross-model Criteria)

FuseGen 不是询问一个模型样本是否良好,而是查看所有受训 STM 预测的变异性 。 如果不同的模型 (基于不同 PLM 的数据训练) 对一个样本的标签产生分歧,那么该样本通常具有很高的“信息价值”。

一个样本的变异性 \(d_{k,i}\) 计算为不同模型预测概率的标准差:

跨模型变异性标准差公式。

这里,\(p\) 代表标签的预测概率。

  • 高变异性: 委员会意见不一。这可能是一个“歧义”样本——对训练非常有价值。
  • 低变异性: 委员会达成一致。这可能是一个“易学”样本。

FuseGen 选择混合了这两类样本的子集 (由超参数 \(\alpha\) 控制) 。这确保了下一轮生成的提示词既具有稳定性 (易学) ,又具有挑战性 (歧义) 。

步骤 3: 跨 PLM 上下文学习

一旦从集体池中识别出最佳样本,它们将被用作下一轮生成的上下文示例

至关重要的是,模型 A 可能会收到包含由模型 B 和模型 C 生成的优秀示例的提示词。这允许模型之间进行知识迁移,而无需它们直接交流参数。它们通过数据进行交流。

图 8: 柱状图显示不同 PLM 如何随时间推移为选定子集做出贡献。

图 8 展示了这种交叉促进。它显示了用于上下文学习的选定样本的来源。随着轮次的推进 (0 到 4) ,你可以看到选出的“最佳”样本来自于所有可用 PLM 的混合 (由不同颜色表示) 。没有任何单一模型能主导“好点子”池。

第二阶段: 跨模型数据质量提升 (CDI)

经过几轮迭代生成后,我们拥有了一个庞大、多样化的数据集。然而,合成数据是有噪声的。即使是最好的 PLM 也会产生幻觉或生成不相关的文本。

为了解决这个问题,FuseGen 采用了自助式权重调整 (Self-boosting Weight Adjustment, SWA)

FuseGen 不仅仅是在原始数据上训练最终的 STM,而是为每个样本分配一个权重 \(w\)。它训练模型,检查模型在哪些样本上挣扎或能轻松预测,并相应地调整权重。

权重更新规则受提升算法 (如 AdaBoost) 的启发:

基于预测误差的权重调整公式。

简单来说:

  1. STM 对合成数据进行预测。
  2. 我们查看误差。
  3. 我们调整下一轮次 (epoch) 的权重 \(w_{k,i}\)。
  4. 被正确预测的样本通常会增加其影响力 (确认信号) ,而混淆的或可能标记错误的数据 (模型在其中反复波动或以特定模式失败) 会被降低权重。

*关于公式的注记: * 该逻辑确保模型专注于高质量、可靠的数据,同时抑制零样本生成中固有的噪声。

最后,STM 使用加权损失函数进行训练:

最终加权损失函数公式。

为什么“朴素混合”会失败

你可能会想: “为什么要这么麻烦?为什么不直接让 6 个不同的模型生成数据,把它们混成一大堆,然后训练 STM?”

研究人员测试了这个假设。他们称之为“混合 (mixed) ”方法。

图 2: 性能比较显示 FuseGen 与朴素混合的对比。

图 2 显示了结果。标记为“mixed”的条形 (结合 6 个 PLM 的数据) 通常比最好的单一 PLM (例如 Flan-T5) 表现更差。

为什么?因为把垃圾堆和金子堆混在一起,只会给你一堆更大的脏金子。你没有过滤掉噪音;你只是积累了更多的噪音。 FuseGen (底部的条形) 始终优于“混合”策略,因为它主动筛选质量并重新加权以忽略噪声。

实验结果

研究人员在各种任务上评估了 FuseGen,包括电影评论 (IMDb, SST-2) 、新闻分类 (AgNews) 和自然语言推理 (QNLI, MNLI) 。他们使用了开源模型 (Llama-2, Vicuna, OPT) 和闭源模型 (GPT-3.5, GPT-4) 的混合。

开源模型上的表现

下面的比较显示了最终小型特定任务模型 (BERT-base) 的分类准确率。

  • ZeroGen: 基线方法 (单一 PLM,标准提示词) 。
  • ProGen: 渐进式生成 (单一 PLM,反馈循环) 。
  • FuseGen: 提出的多 PLM 方法。

表 1: 比较 FuseGen 与基线的主要实验结果。

表 1 揭示了 FuseGen 的持续胜利。

  • IMDb 上,FuseGen 达到了 90.06% , 击败了最佳单一模型表现 (Flan-T5 的 87.06%) 。
  • AgNews 上,FuseGen 达到了 86.89% , 超越了所有竞争对手。
  • 至关重要的是,FuseGen 是 PLM 无关 (PLM-agnostic) 的。你不需要预先知道哪个 PLM 最适合你的特定任务。FuseGen 会自动利用集群中最佳模型的优势。

既然有 GPT-4 呢?

这是否仅适用于较小的开源模型?研究人员通过融合 GPT-3.5 和 GPT-4 测试了 FuseGen。

表 2: 在闭源 PLM (GPT-3.5 和 GPT-4) 上的结果。

表 2 所示,即使是像 GPT-4 这样的强大模型,融合方法 (FuseGen) 也产生了比单独依赖 GPT-4 (ProGen 下为 55.76%) 更高的准确率 (QNLI 上为 56.56%) 。协作甚至能帮助巨头。

可视化数据质量

为了直观地看到生成数据的差异,研究人员使用了 t-SNE,这是一种在二维空间可视化高维文本数据的技术。

图 7: 合成样本的 t-SNE 可视化。

图 7 中:

  • 蓝点 是正面评论; 橙点 是负面评论。
  • (a) ZeroGen 中,聚类有些混乱,并且以无益的方式重叠 (噪声) 。
  • (c) FuseGen 中,注意其结构。核心聚类很密集 (易学样本) ,但蓝色和橙色之间的边界更丰富。FuseGen 生成的样本更好地填充了决策边界——这正是机器学习模型需要练习以变得更智能的区域。

消融实验: 什么最重要?

论文包括广泛的消融研究,以确定 FuseGen 的哪些组件驱动了性能。

图 5: 展示超参数影响的消融研究图表。

图 5 提供了三个关键见解:

  1. 图 (a) - \(\alpha\) 比率: x 轴代表“高变异性”样本的比率。性能在 0.5 处达到峰值。这证实了假设: 数据集不应该全是难题 (歧义) ,也不应该全是简单题。50/50 的混合是最佳的。
  2. 图 (b) - 样本量 (\(N\)): 数据越多越好,但 FuseGen 即使在相对较小的合成数据集 (\(N=1000\)) 下也能实现高性能。
  3. 图 (c) - 反馈轮次 (\(J\)): 更多的反馈循环迭代导致更好的结果,因为模型有更多机会根据跨模型反馈完善其提示词。

此外,查看下面的消融表:

表 4: 移除 SWA 和 CDG 组件的消融研究。

表 4 显示,移除自助式权重调整( w/o SWA )会导致性能下降。移除跨模型数据集生成( w/o CDG & SWA )会导致大幅下降。这证实了协作生成阶段是成功的最关键贡献者。

结论与启示

FuseGen 代表了零样本学习向前迈出的重要一步。它让我们摆脱了寻找“一个完美模型”来生成数据的范式,转向了模型协作的范式。

通过允许模型通过预测变异性相互评判,并通过上下文提示相互教学,FuseGen 创建了具有以下特点的合成数据集:

  1. 偏差更小: 它平滑了单个 PLM 的分布偏差。
  2. 更多样化: 它捕获了更广泛的语言表达范围。
  3. 质量更高: 它主动过滤掉噪声和低质量的幻觉。

对于学生和从业者来说,结论很明确: STM (小型特定任务模型) 并没有消亡。事实上,它们比以往任何时候都更容易获得。有了像 FuseGen 这样的框架,你可以利用大型专有模型的智慧来训练高效、私有、随处运行的模型——而无需自己标记任何一条数据。

AI 训练的未来可能不是人类教机器,而是机器教机器。


本博客文章基于 Tianyuan Zou 等人的研究论文 “FuseGen: PLM Fusion for Data-generation based Zero-shot Learning”。