大型语言模型 (LLMs) 彻底改变了我们处理自然语言处理 (NLP) 的方式。其中最强大的功能之一就是上下文学习 (In-Context Learning, ICL) 。 你不再需要微调模型的数十亿个参数——这既昂贵又计算量大——只需在提示 (prompt) 中提供几个任务示例即可。例如,要教模型进行情感分类,你可以在要求它分类新评论之前,先提供三个带有标签的电影评论示例。

然而,这其中有一个问题。ICL 对你选择的具体示例出了名地敏感。选错了示例,模型的准确率就会大幅下降。此外,在现实场景中,你通常拥有海量的未标记数据,但聘请人类专家进行标记的预算却非常有限。如果你在 10,000 个示例中只能负担得起标记 20 个,你应该选择哪 20 个才能获得最佳性能?

这就是低预算主动学习中的选择性标注 (Selective Annotation for Low-Budget Active Learning) 问题。

在这篇文章中,我们将探讨论文*《CoverICL: Selective Annotation for In-Context Learning via Active Graph Coverage》*中提出的一个引人入胜的解决方案。研究人员提出了一种结合图论、不确定性估计和多样性采样优势的方法,以筛选出最具影响力的示例进行标注。

问题所在: 寻找“大海捞针”般的示例

在深入探讨解决方案之前,让我们先形式化这个问题。你有一个巨大的未标记数据集 (\(\mathcal{U}\)) 和一个很小的预算 (\(B\)) 。你需要选择 \(B\) 个示例发送给人类神谕 (标注员) 以获取标签。一旦标记完成,这些示例就形成了你的集合 \(\mathcal{L}\),用于构建 LLM 的提示。

图 2: 我们要研究的问题设置。我们需要从 U 中选择 B 个示例由神谕进行标注,然后用于 k-shot ICL 推理。

如图 2 所示,流程很直接,但选择策略至关重要。

两大流派

从历史上看,主动学习 (AL) 策略主要分为两类:

  1. 多样性采样 (Diversity Sampling) : 其逻辑是你的少样本示例应该代表数据的全貌。你不希望这 20 个示例实际上看起来都一样。你希望覆盖整个语义空间。
  2. 不确定性采样 (Uncertainty Sampling) : 这种方法建议你应该标注模型觉得最困惑的示例。如果模型对某个句子的判断是五五开,那么知道其真实标签将提供最大的信息增益。

低预算陷阱

在对模型进行微调的标准机器学习中,不确定性采样通常是王者。然而,在低预算 ICL 设置中,不确定性采样是不可靠的。为什么?因为在没有任何初始标记数据 (或只有极少) 的情况下,模型的不确定性估计充满了噪声。它可能对其实际上错误的东西感到“自信”,或者对所有东西都感到“不确定”。

另一方面,纯粹基于多样性的方法可能会浪费预算在那些统计上具有代表性、但对模型来说实际上很容易解决的示例上。

CoverICL 弥补了这一差距。它主张我们应该关注多样性,但只在模型感到困难的区域内关注。

核心方法: CoverICL

研究人员引入了 CoverICL , 这是一种将数据建模为图的算法。其核心思想是构建数据点的“最近邻图”,然后解决“最大覆盖”问题,以在困难样本中找到最具代表性的示例。

让我们一步步拆解这个解决方案的架构。

图 3: CoverICL 算法。它构建图,估计不确定性以找到困难示例,并求解最大覆盖问题以选择标注。

图 3 提供了路线图。我们从原始候选示例出发,构建语义图,过滤出“困难”示例,然后应用选择算法。

第 1 步: 图构建

首先,CoverICL 构建一个语义图 \(\mathcal{G}_m\)。

  • 每个未标记的示例都是图中的一个节点。
  • 节点之间根据语义相似度绘制边。
  • 具体来说,他们计算所有句子的嵌入 (使用像 SBERT 这样的模型) ,并将每个节点与其 \(m\) 个最近邻连接起来。

这个图捕捉了数据流形的底层结构。如果两个节点相连,它们在语义上就是相似的。

第 2 步: 识别困难示例 (不确定性)

接下来,系统需要知道图的哪些部分对 LLM 来说是“困难”的。由于我们处于低资源环境,无法训练一个分类器来告诉我们这一点。相反,我们直接询问 LLM 本身。

CoverICL 构建一个基础提示 (零样本或使用极小的随机初始示例集) ,并要求 LLM 预测未标记集的标签。然后我们观察模型的置信度。

图 4: 使用负对数似然 (NLL) 估计不确定性。高 NLL 方差或低置信度表示困难示例。

如图 4 所示,我们可以使用诸如预测标记的负对数似然 (NLL) 等指标来衡量不确定性。

  • 简单示例: 模型赋予某个标签极高的概率,而其他标签概率很低。
  • 困难示例: 模型感到“困惑”,给相互冲突的标签赋予相似的概率,或者给所有标签的概率都很低。

我们将所有未标记示例按不确定性分数排序,并选取顶部部分 (例如,前 50%) 组成困难集 (Hard Set) (\(\mathcal{U}_h\))。

第 3 步: 构建“活跃图”

这是 CoverICL 巧妙的创新之处。CoverICL 不是对所有数据进行多样性采样,也不是对孤立点进行不确定性采样,而是构建一个活跃图 (Active Graph)

活跃图由以下部分组成:

  1. 来自困难集 (\(\mathcal{U}_h\)) 的节点。
  2. 连接这些困难节点与其邻居的边。

这个图有效地代表了数据景观中的“困难区域”。我们希望我们标注的示例能“覆盖”这些区域。

第 4 步: 最大覆盖 (MAXCOVER)

现在我们有了一个困难示例图。我们要用预算 \(B\) (例如 20 个示例) 挑选 20 个节点,使得与这些选定节点相连的不重复困难示例数量最大化。

在图论中,这就是最大覆盖问题 (Maximum Coverage Problem) 。 如果我们选择一个节点进行标注,我们假设它“覆盖”了其自身及其直接邻居 (即它的“自我网络”) 。其逻辑是,如果我们知道中心节点的真实标签,该信息很可能会传播到其相似的语义邻居,从而澄清该局部集群的困惑。

目标函数如下所示:

最大化困难示例覆盖率的公式。

这里,\(c_j\) 是一个指示变量,如果困难示例 \(x_j\) 被我们的选择“覆盖”,则为 1,否则为 0。我们要最大化被覆盖的困难示例的总数。

此最大化受到预算约束:

描述预算约束和覆盖逻辑的公式。

基本上,我们最多只能选择 \(B\) 个集合 (节点) ,并且只有当一个节点属于被选节点的邻居集合时,它才被视为“被覆盖”。

贪婪解法: 完美求解 MAXCOVER 是一个 NP 难问题 (对于大型图来说计算上是不可能的) 。然而,一个简单的“贪婪”算法可以很好地近似最优解 (至少达到最优解的 \(1 - 1/e \approx 63\%\)) 。

  1. 找到一个能覆盖最多当前未被覆盖的困难示例的节点。
  2. 将其添加到我们的选择列表中。
  3. 将其邻居标记为“已覆盖”。
  4. 重复直到预算用完。

这种方法确保我们选择的示例既具有多样性 (因为我们挑选覆盖图的不同部分的节点) ,又具有信息量 (因为我们专注于困难集) 。

迭代改进: CoverICL+

作者还提出了一个名为 CoverICL+ 的变体。它不是一次性选择所有 \(B\) 个示例,而是将预算分成 \(T\) 次迭代。

  1. 选择一批示例。
  2. 让它们被标注。
  3. 使用提示中的新示例重新估计不确定性
  4. 更新困难集和活跃图。
  5. 重复。

这使得模型能够随着学习不断修正其对“困难”的理解,从而使后续的选择更具针对性。

实验结果

这种图论方法真的比随机选择或仅基于多样性的选择更好吗?作者在涵盖主题分类、情感分析、自然语言推理、摘要生成和数学推理的十个数据集上测试了 CoverICL,使用了七种不同的 LLM (参数范围从 1.3B 到 65B) 。

性能比较

结果是一致积极的。

图 1: GPT-J 和 GPT-Neo 上 CoverICL 与多样性、不确定性和随机基线的准确率比较。

如图 1 所示,CoverICL (蓝色) 的表现始终优于多样性 (红色) 、不确定性 (米色) 和随机 (灰色) 策略。平均而言,CoverICL 比现有的主动学习方法提高了 2–4.6% 的准确率。虽然几个百分点看起来很小,但在少样本学习这种微利必争的领域,这是一个显著的提升。

我们可以通过表 1 深入了解具体数据:

表 1: 比较 CoverICL 与 Fast-Vote-K、IDEAL 和 Patron 等方法的详细准确率表。

在最右侧的“平均”列中,CoverICL 达到了 65.45% , 明显超过了第二名的方法 (Active-K means 的 63.45%) ,并显著击败了随机基线 (61.40%) 。它在情感分析和主题分类方面表现尤为出色。

预算效率

CoverICL 最具说服力的理由之一是成本效益。主动学习的目标是尽可能少地付费获取标签。

图 5: 显示准确率与预算关系的性能曲线。CoverICL+ 用更少的示例达到了高准确率。

图 5 绘制了准确率与预算 (\(B\)) 的关系。

  • 看那条绿线 (CoverICL+) 。 它上升得很陡峭。
  • 在许多情况下,使用 10 个示例预算的 CoverICL+ 达到了与其他使用 20 个示例的方法相同甚至更好的准确率。
  • 这实际上意味着通过使用这种选择策略,你可以将标注成本减半。

可视化过程

为了理解这为什么有效,可视化向量空间会有所帮助。

图 7: 嵌入的可视化。绿色代表自信的预测,红色代表不确定的预测。星号显示了选中的示例。

在图 7 中,作者使用 PCA 可视化了数据。颜色渐变代表不确定性:

  • 红色: 模型不确定。
  • 绿色: 模型自信。

在左上角 (0-shot) ,我们看到颜色的混合。模型有点困惑。 在右上角 (CoverICL 选择的 5-shot) ,注意那些黑色星号 。 这些是 CoverICL 选择的示例。它们被策略性地放置在簇中。 最重要的是,看颜色的变化。仅仅提供了这 5 个示例后,地图主要变成了绿色 。 模型成功解决了大部分数据集上的不确定性,因为选定的示例有效地“覆盖”了那些令人困惑的区域。

鲁棒性和通用性

作者进一步测试了该方法在不同条件下的表现。

生成任务: 它不仅仅适用于分类。他们在摘要生成 (XSUM) 和数学推理 (GSM8K) 上进行了测试。

表 2: 生成任务的结果。CoverICL 提升了 RougeL 分数和数学准确率。

表 2 显示,对于使用 LLaMa-65B 的数学推理 (GSM8K) ,CoverICL 将准确率从 45.04% (Vote-k) 提高到了 49.08% 。 数学任务通常对糟糕的提示非常敏感,因此这种稳定性非常有价值。

不同的嵌入: 使用哪个模型来构建图有关系吗?

表 4: 嵌入模型的消融研究。无论使用 SBERT、RoBERTa 还是 BERT,CoverICL 的表现都是最好的。

表 4 证实,虽然嵌入模型 (SBERT vs. BERT vs. RoBERTa) 的选择会改变绝对数值,但 CoverICL (最后一行) 在几乎所有配置中都是赢家。该方法对底层的语义表示具有鲁棒性。

为什么它有效?

论文提供了由定理 1 总结的理论直觉 (虽然我们这里不推导证明) 。要点是 CoverICL 充当了特定流形上的多样性采样的近似值。

如果不确定性估计是完美的,CoverICL 就会纯粹关注模型正在挣扎的决策边界。然而,即使不确定性估计充满噪声 (随机) ,基于图的 MAXCOVER 目标也能确保选定的示例是分离良好的,并且能够代表底层数据分布。

这种双重性质是它的超能力:

  1. 当不确定性准确时: 它像手术刀一样,修复特定的模型盲点。
  2. 当不确定性糟糕时: 它回退为稳健的多样性采样器,确保你不会挑选冗余的示例。

结论

提示工程时代教会了我们,LLM 的好坏取决于我们给它们的上下文。 CoverICL 提供了一个严格的数学框架来选择该上下文。

通过将数据集视为一个图,并将“最大覆盖”原则应用于模型的不确定区域,它使学生、研究人员和工程师能够在最小化标注成本的同时最大化模型性能。无论你是使用巨大的 65B 参数模型还是较小的 1.3B 模型,教训都很清楚: 不要随机挑选示例。构建一个图,找到困惑点,然后覆盖它。

关键要点

  • 上下文至关重要: 上下文学习就像非参数回归;“训练”示例的质量决定了推理质量。
  • 结合策略: 纯粹的多样性或纯粹的不确定性采样通常在低预算设置中失败。通过活跃图覆盖将它们结合起来则能成功。
  • 效率: CoverICL 可以用大约一半的标注预算达到最先进的性能。
  • 通用性: 该方法适用于分类、摘要和推理任务,且无需参数更新 (微调) 。