在大型语言模型 (LLM) 的时代,我们教导机器的方式发生了巨大转变。我们不再总是通过更新数百万个参数来微调模型,而是经常依赖上下文学习 (In-Context Learning, ICL) 。 这涉及在提示词 (prompt) 中提供一些输入-输出示例 (演示) ,让模型即时“学习”模式。

然而,这有个问题。为了让 ICL 效果好,你选择的示例至关重要。通常,找到最好的示例需要从已有的海量标注数据集中进行检索。但是,如果你没有海量的标注数据集呢?如果你只有一大堆原始文本,并且预算只够人工标注 50 或 100 个示例呢?

这正是论文 “Effective Demonstration Annotation for In-Context Learning via Language Model-Based Determinantal Point Process” 所解决的问题。研究人员提出了一种名为 LM-DPP 的方法,该方法通过数学手段选择绝对最佳的示例进行标注,平衡了两个关键因素: 不确定性 (uncertainty)多样性 (diversity)

在这篇文章中,我们将详细拆解 LM-DPP 如何帮助开发者用最少的数据标注实现高性能,有效地对提示工程流程进行“精简优化”。


问题所在: 优质演示的高昂成本

要理解这篇论文的贡献,我们首先需要看看标准的 ICL 流程。

在资源丰富的情况下,你可能拥有一个包含数千个标注示例的数据集 (例如情感分析对) 。当用户提出问题时,你会使用检索器 (Retriever) (如 Sentence-BERT) 找到与用户查询最相似的示例,并将它们插入到提示词中。这被称为*实例级检索 (instance-level retrieval) *。

但在许多实际应用中,我们要从未标注数据开始。标注数据既昂贵又耗时。如果你只能负担得起标注其中的一小部分,你应该选哪些呢?

  1. 随机选择 (Random Selection) : 盲目选择示例。这通常导致覆盖范围差,性能平平。
  2. 传统主动学习 (Traditional Active Learning) : 选择模型最“困惑”的示例。
  3. 多样性采样 (Diversity Sampling) : 选择彼此看起来不同的示例以覆盖数据空间。

作者认为,对于 LLM 来说,仅仅依靠上述任何一种策略都是不够的。如下图所示,他们的方法从根本上改变了工作流程。他们不从大型标注数据集进行检索,而是插入一个选择性标注 (Selective Annotation) 步骤,首先策划出一个小而精的高质量标注集。

比较以前的检索方法与提出的 LM-DPP 工作流程。

解决方案: LM-DPP

研究人员介绍了基于语言模型的行列式点过程 (LM-DPP) 。 这个名字听起来很拗口,但其概念非常优雅。

目标是选择一个数据子集进行标注,同时满足两个条件:

  1. 低不确定性 (Low Uncertainty) : LLM 应该对示例比较熟悉 (高置信度) 。
  2. 高多样性 (High Diversity) : 示例在语义上应彼此不同,以涵盖任务的不同方面。

让我们拆解一下该方法的架构。

LM-DPP 方法的图解,展示了三个主要步骤: 困惑度估计、DPP 建模和检索。

如上图所示,该过程涉及三个不同的步骤:

  1. 评分 (Scoring) : 估计未标注数据的困惑度。
  2. 选择 (Selection) : 使用条件 DPP 对不确定性和多样性进行建模。
  3. 推理 (Inference) : 在测试时从这个精选池中进行检索。

让我们深入探讨步骤 1 和步骤 2 的数学原理和逻辑。

第一步: 通过困惑度衡量不确定性

在传统的主动学习中,我们通常选择模型不确定的示例 (高熵) ,假设这些示例能教会模型最多东西。然而,作者发现对于上下文学习 (ICL) ,情况往往相反。LLM 就像数据压缩器;当提示词类似于它们预训练分布的示例时,它们的表现会更好。

因此,这里使用的度量标准是困惑度 (Perplexity) 。 较低的困惑度意味着模型认为文本是可预测且熟悉的。评分函数 \(r(\tilde{x})\) 定义为困惑度的倒数:

显示评分函数 r(x) 为困惑度倒数的公式。

在这里,较高的分数 \(r(\tilde{x})\) 表示较低的不确定性 (或较高的熟悉度) 。作者明确旨在选择得分高的示例,避免可能会让模型感到困惑的离群点。

第二步: 用 DPP 建模多样性

如果我们只选择困惑度最低的示例,我们可能会得到 100 个完全相同的简单句子的变体。这就是行列式点过程 (Determinantal Point Process, DPP) 发挥作用的地方。

DPP 是一种用于物理学和机器学习的概率模型,用于选择具有多样性的项目子集。它依赖于一个核矩阵 (Kernel Matrix, L) , 该矩阵描述了项目之间的相似性。选择某个子集的概率由该矩阵的行列式决定。如果两个项目非常相似,行列式就会收缩,使得两者同时被选中的可能性降低。这实际上在相似项目之间产生了一种“排斥力”。

作者修改了标准 DPP,加入了步骤 1 中的不确定性分数。他们定义了一个权衡参数 \(\lambda\),以平衡对确定性的需求与对多样性的需求。

公式 2 显示了不确定性分数 r 和多样性之间的对数行列式权衡。

  • 第一项 (\(\lambda \sum r_i\)): 奖励具有高“熟悉度”分数 (低不确定性) 的子集。
  • 第二项 (\((1-\lambda) \dots\)): 奖励几何上多样化的子集 (高行列式) 。

通过调整 \(\lambda\),研究人员可以找到“最佳平衡点”: 示例既足够多样化以覆盖任务空间,又足够标准以至于 LLM 能很好地理解它们。

第三步: 贪婪推理

寻找绝对完美的子集是一个 NP 难问题 (对于大数据集来说计算上是不可能的) 。然而,由于 DPP 的数学特性,我们可以使用贪婪算法 (greedy algorithm)

该算法迭代地将一个项目添加到集合中,该项目能最大化对数行列式分数的边际增益。

公式 5 显示了将项目 j 添加到集合 S_map 的贪婪选择逻辑。

这将一个计算繁重的问题转化为可以在多项式时间内解决的问题,使其在大型未标注数据集上运行变得可行。


实验结果

这种数学上的平衡行为真的有效吗?作者在 9 个自然语言理解 (NLU) 任务 (如情感分析和推理) 和 2 个生成任务 (如摘要) 上测试了 LM-DPP。

NLU 任务上的表现

下表将 LM-DPP 与几个基线进行了比较:

  • Random (随机) : 只是随机挑选示例。
  • K-means: 对数据进行聚类并挑选质心 (仅多样性) 。
  • Vote-k: 一种基于图的选择方法 (之前的最先进技术) 。

表 1: GPT-J 和 LlaMA-2-7B 在 NLU 任务上的结果,比较了各种标注方法。

数据中的关键结论:

  1. 一致性: LM-DPP (每个模型的底部行) 在几乎所有数据集上一致地实现了最高或第二高的准确率。
  2. 预算效率: 即使预算极低,仅有 16 个标注示例 , LM-DPP 的表现也明显优于随机选择。在 GPT-J 上,它的平均得分为 63.67,而随机选择为 60.31。
  3. 模型无关性: 该方法对 GPT-J (60 亿参数) 和 LlaMA-2 (70 亿参数) 都有效,表明它可以很好地泛化到不同的架构中。

扩展到 GPT-3 (175B)

你可能会想,这是否只适用于较小的开源模型。作者还在巨大的 GPT-3 模型上测试了该方法。

图 5: GPT-3-Turbo 在 100 个标注示例下的结果,显示 LM-DPP 持续提升结果。

如上所示,LM-DPP (粉色柱状条) 始终击败随机 (蓝色) 和 Fast Vote-k (橙色) 。在 TREC 分类任务中,提升非常显著,从大约 74% 跃升至近 80%。

标注预算的影响

主动学习最有力的论据之一是降低成本。当我们把标注示例的数量从 16 增加到 800 时,性能如何变化?

图 4: 折线图比较了随标注数量增加 (16 到 800) 不同选择方法的效果。

在图 4 中,请看粉色线 (LM-DPP) 。

  • 早期优势: 在 RTE 和 Hellaswag 等数据集上,LM-DPP 在 x 轴的最初阶段 (小数据量) 提供了巨大的性能飞跃。
  • 持续表现: 随着数据量的增加,它保持竞争力,通常保持在顶层梯队。
  • 稳定性: 与波动不可预测的随机选择 (浅蓝色) 不同,LM-DPP 提供了稳定的上升趋势。

时间效率

复杂的选择算法通常伴随着巨大的计算负担。然而,作者表明,与之前的最先进技术 Vote-k 相比,LM-DPP 的效率惊人地高。

图 6: 条形图比较运行时间。Vote-k 耗时超过 4000 秒,而 LM-DPP 耗时约 382 秒。

虽然“随机”选择是即时的 (0.3秒) ,但其效果很差。Vote-k 耗时超过一小时 (4039秒) 。相比之下,LM-DPP 大约在 6 分钟内完成 (382秒) ——相对于主要竞争对手有 10 倍的速度提升,同时提供了更好的准确率。


深度剖析: 为什么它有效?

论文对为什么这种特定的不确定性和多样性组合如此有效提供了一些迷人的分析。

“恰到好处”的权衡

研究人员对 \(\lambda\) 参数 (不确定性和多样性之间的滑块) 进行了实验。

  • \(\lambda = 0\) (纯多样性) : 模型选择了非常不同的示例,但其中一些是让模型困惑的离群点。
  • \(\lambda = 1\) (纯熟悉度) : 模型选择了安全的、可预测的示例,但它们都是同一事物的变体 (冗余) 。
  • \(\lambda \approx 0.5\): 这种平衡一致地产生了最好的结果。这证实了 LLM 需要一个覆盖整个主题 (多样性) 但仍易于理解 (低不确定性) 的示例“教学大纲”。

案例研究: 演示的质量

为了直观地展示差异,让我们看看来自 XSUM 数据集的生成摘要的实际比较。

图 8: XSUM 中的案例分析,比较 Random 和 LM-DPP 的摘要。

在这个例子中, Random (随机) 选择导致的摘要 ROUGE 分数较低 (43.24) ,并且遗漏了细微差别。 LM-DPP 选择的演示帮助模型生成了质量高得多的摘要 (ROUGE 58.06) 。

注意事项: 注意上图中的 “FactCC” 分数。虽然 LM-DPP 提高了风格流畅度 (ROUGE) ,但在这一特定实例中,它的事实一致性得分实际上较低。作者指出,通过优先考虑多样性,模型有时可能会检索到风格完美但事实松散的示例。这突显了一个局限性: 我们在平衡多样性与严格的事实基础时必须小心。


结论

论文 LM-DPP 为现代 NLP 从业者提出了一个令人信服的工作流程。随着我们从大规模微调转向上下文学习,提示词的质量成为了瓶颈。

这项研究证明,“大数据”并不总是答案。“智能数据”才是。通过数学建模模型所知 (不确定性)模型所需 (多样性) 之间的张力,LM-DPP 让我们能够以极小的标注工作量实现最先进的结果。

对于学生和工程师来说,结论很明确:

  1. 不要盲目标注。 随机选择是一种机会的浪费。
  2. 尊重模型的先验知识。 模型觉得“令人困惑”的示例通常是 ICL 的糟糕老师。
  3. 使用数学。 行列式点过程提供了一种稳健的、非启发式的方法来确保你的数据具有多样性。

随着 LLM 的不断发展,像 LM-DPP 这样的高效方法对于在每个数据点都至关重要的专业化、低资源领域部署这些模型将是必不可少的。