引言
在人工智能飞速发展的世界里,大语言模型 (LLMs) 以快速学习者的身份赢得了声誉。具体来说,它们擅长上下文学习 (In-Context Learning, ICL) 。 这是一种仅仅通过在提示词中查看几个示例就能适应新任务的能力,而无需对模型的权重进行任何更新。
想象一下,你想要一个 AI 将英语俚语翻译成正式文本。你不需要重新训练它;你只需提供几对示例: “Gonna -> Going to” 和 “Wanna -> Want to”,模型就能找出下一个输入的模式。
然而,这里有个陷阱。ICL 的性能对所提供示例的质量极其敏感。选错了示例——或者仅仅是排列顺序不佳——模型的准确率就会直线下降。这引发了对“完美”选择策略的探索。传统方法通常寻找在视觉或语义上与测试输入相似的示例。
但是,仅有相似性就足够了吗?
在这篇文章中,我们将探讨一篇研究论文,该论文提出了一种名为 ByCS (贝叶斯上下文示例选择) 的新方法。这种方法不仅仅是寻找相似的示例,而是利用贝叶斯定理来寻找与测试输入有强概率交互的示例。它通过提出这样一个问题有效地“反转了剧本”: 如果我知道测试问题的答案,它能帮助我预测这些示例吗?
我们将拆解这一方法如何在三种不同的模态——文本、语音和视觉——中发挥作用,并看看为什么反向思考可能是前进的最佳方式。
背景: 多模态 ICL 的挑战
在深入数学细节之前,我们需要了解一下背景。ICL 起源于基于文本的自然语言处理 (NLP) ,但最近它已扩展到多模态任务。这包括自动语音识别 (ASR) 和视觉问答 (VQA) 。
如下图所示,尽管架构发生了变化,但跨模态的核心概念保持不变。无论你是向模型输入文本、音频波形还是像素,目标都是使用少量带标签的示例 (\(C_{input}, C_{label}\)) 来引导模型预测新测试输入 (\(X\)) 的标签 (\(Y\)) 。

当前选择方法的问题
由于我们无法将整个训练数据集输入到模型的上下文窗口中 (这太昂贵且受技术限制) ,我们必须选择 \(k\) 个示例的子集。
常见的策略包括:
- 随机选择: 盲目地挑选示例。这很不稳定,且通常结果较差。
- K-最近邻 (kNN) / KATE: 这种方法将所有示例嵌入到向量空间中,并选择几何上最接近测试输入的那些。
虽然 kNN 比随机选择要好,但它有一个缺陷: 它将示例和测试输入分开对待。它寻找的是表面或语义上的相似性,但这并不一定能衡量一个示例为解决特定测试用例提供了多少信息。它忽略了上下文与测试输入之间的相互交互 。
核心方法: 贝叶斯上下文示例选择 (ByCS)
研究人员提出了一种超越简单相似性的方法。他们将选择过程视为一个概率问题。
从推理到逆向推理
要理解 ByCS,首先要看上下文学习的标准目标。我们希望在给定示例 (\(C\)) 和测试输入 (\(X\)) 的情况下,最大化得到正确答案 (\(Y\)) 的概率。

研究人员应用贝叶斯定理来扩展这一推理概率。这使他们能够分解问题,并隔离标签与示例之间的交互。

请看上面方程中的分子。术语 \(P(\mathcal{C}_{label} | X, Y, \mathcal{C}_{input})\) 是改变游戏规则的关键。这被称为逆向推理概率 (Inverse Inference Probability) 。
通俗地说,与其问:
“给定这些示例,测试输入的答案是什么?”
ByCS 问的是:
“如果我们假设测试输入及其答案是上下文,我们能多好地预测候选示例的标签?”
如果一个候选示例真的有帮助,那么应该存在很高的互信息。测试用例应该能解释该示例,就像该示例能解释测试用例一样。
ByCS 流程
实施这一点需要一个巧妙的多步估算过程,因为严格来说,我们还不知道测试输入 (\(X\)) 的真实答案 (\(Y\)) ——这正是我们试图寻找的!
ByCS 流程通过如下所示的三步估算过程解决了这个问题:

第一步: 第一轮推理
首先,模型对测试输入 (\(X\)) 做出一个“假设性”猜测。它可能会使用零样本提示 (无示例) 或简单的随机选择来生成一个临时标签 \(\hat{Y}\)。
第二步: 逆向推理
现在,“反转剧本”发生了。我们将测试输入对 (\(X, \hat{Y}\)) 视为上下文。我们从数据库中取出一个候选示例,并将它视为测试目标。我们尝试预测该候选示例的标签。
图 1 展示了这一过程的概念简化视图:

第三步: 文本相似度与选择
最后,我们将为候选示例预测的标签与其实际的真实标签进行比较。
- 如果预测准确,意味着测试输入和候选示例高度相关。该示例获得高分 (\(Q\)) 。
- 如果预测错误,则相对于测试用例而言,该示例可能是不相关或令人困惑的。
示例根据该分数进行排名,前 \(k\) 个示例被选中用于最终的 ICL 提示词。
一个具体例子
想象“逆向推理”可能有点难,所以让我们看看作者提供的基于文本的例子。

在上图中:
- 顶部 (标准推理) : 我们使用 “Einstein -> German” 来预测 “Marie Curie -> ?"。
- 底部 (逆向推理) : 我们假设知道 “Marie Curie -> Polish”。利用这一点,我们尝试预测 “Einstein” 的标签。
- 因为这种关系 (科学家 -> 国籍) 是一致的,所以逆向推理有效。如果我们尝试使用不相关的示例 (如 “Gandhi -> Male”) ,在给定居里夫人的背景下,逆向推理很可能无法预测出爱因斯坦是 “German”。
计算分数
分数不一定是原始概率。在实践中,计算示例的预测标签与真实标签之间的文本相似度效果最好。这使得该方法能够兼容商业 LLM (如 GPT-4) ,因为在这些模型中,访问原始概率 logits 可能会受到限制。

解决计算成本问题
你可能会注意到一个潜在的瓶颈: 在海量数据集中的每个示例上运行推理是很慢的。作者通过两个优化解决了这个问题:
- 预选: 他们使用快速方法 (如 kNN) 将数据集缩小到一个小池子 (例如,前 10 或 20 个候选者) 。ByCS 仅在这个小池子上运行,以找出绝对最好的示例。
- 更小的代理模型: 他们发现不需要使用巨大的 175B+ 参数模型来进行逆向步骤。来自同一家族的较小模型 (例如使用 Whisper Small 代替 Whisper Large) 可以有效地近似逆向推理,从而显著加快过程。
实验与结果
作者在三种不同的模态下测试了 ByCS: 音频 (ASR) 、文本 (NLP) 和 图像 (VQA) 。
1. 音频: 自动语音识别 (ASR)
在这项任务中,模型必须转录语音,特别关注困难的方言词汇。他们使用了 Whisper 模型家族。
下表比较了 ByCS 与随机选择和 “KATE+” (一种改进的 kNN 基线) 的结果。

分析:
- WER (词错率) 越低越好。
- ByCS 始终优于基线。例如,在 \(k=1\) 的 RASC863 重庆方言数据集上,ByCS 实现了 62.4% 的 WER,而随机和 KATE+ 为 67.1%。
- “Oracle ByCS” 这一行显示了如果在第一步中模型知道测试输入的实际标签会发生什么。标准 ByCS 的表现非常接近这一理想情况,证明了第一步中的“假设性”标签足以让该方法奏效。
2. 文本: NLP 任务
该方法被应用于主题分类 (TREC) 、情感分析 (SST2) 、Text-to-SQL (Spider) 和 ASR 重评分 (HyPoradise) 。

分析:
- 在使用 GPT-3.5 和 GPT-4 的几乎所有类别中,ByCS 都实现了最高的准确率 (或最低的 WER) 。
- 这种改进在开放式生成任务 (如 Text-to-SQL 或 ASR 修正) 中尤为强劲。
为什么它在某些任务上比其他任务效果更好? 作者分析了相似度分数的分布。

- SST2 (蓝色) : 这是一个简单的分类任务 (正面/负面) 。分数聚集在 0 和 1。它是二元的。
- HyPoradise (红色) : 这是一个生成任务。分数是分散的。ByCS 在这里表现出色,因为它可以根据生成文本的细微差别来区分“还不错”和“非常好”的示例,而不仅仅是一个二元的正确/错误标签。
3. 视觉: 视觉问答 (VQA)
最后,研究人员将 ByCS 应用于 OKVQA 数据集,该数据集要求模型回答需要外部知识的图像相关问题。

分析:
- 即使在视觉领域,ByCS 也略微领先于 KATE+ 基线。
- 这里的收益略小,可能是因为 VQA 的答案通常非常短 (一两个词) ,这限制了逆向推理信号相对于较长文本生成的“丰富度”。
结论与启示
“ByCS” 论文提出了一个令人信服的观点: 当通过示例教导 AI 时, 交互比表面相似性更重要。
通过利用贝叶斯定理,研究人员证明了我们可以从数学上量化测试输入和训练示例彼此“理解”的程度。这种逆向推理方法确保了所选示例不仅在向量空间中接近,而且在功能上对特定的预测任务是有用的。
主要收获:
- 鲁棒性: ByCS 适用于音频、文本和视觉任务。
- 效率: 可以使用较小的代理模型来优化选择步骤,而不会损失准确性。
- 生成能力: 它在复杂的开放式生成任务中表现最出色,而在这些任务中,示例的细微差别最为重要。
随着 LLM 继续主导 AI 领域,像 ByCS 这样的技术将至关重要。它们让我们能够通过更聪明地选择要求模型查看的内容,从而从现有的冻结模型中榨取更多性能。事实证明,有时候,为了得到正确的答案,你必须反向工作。
](https://deep-paper.org/en/paper/2404.14716/images/cover.png)