AI summary
type
status
date
slug
summary
category
tags
icon
password
Demonstration
Selection
EPR

先用无监督检索器筛选出候选集,然后交给 LM (可以与推理的 LM 不同)打分,分数是输出正确 label 的概率,通过对比学习训练检索器。正样本是得分最高的样本,负样本包含 B 个得分最低的样本(包括同批次其他样本)、B-1 个同批次的“正样本”
推理时用检索器在整个训练集中检索,按相似度降序排列。
CEIL
在 DPP 中引入相关性算子,从而完成相关性+多样性建模:
其中 g 为相似性得分,结合 DPP 的公式,有:
其中 用来平衡相关性以及多样性。
先检索 n 个相关样本,然后构造 M 个子集,使用 LM 打分,训练检索器得分与 LM 得分对齐。

Vote-k

从样本池中筛选数据集,对选中的样本做标注,然后检索最相似的作为示例。在同等注释预算下比随机选择性能更好,更稳定。
根据相似性构建有向图 (V,E),边连接最相似的 k 个样本,投票选出最具代表性的 个样本构成样本集 L,剩下的是 U:
s(v) 对接近已选择样本的样本做了惩罚,鼓励多样性。
然后将剩下的输给 LLM,按照模型输出的置信度分数升序排列,分为 M 个桶,前 9M/10 个桶内取最大值。
TopK+MDL
select-then-rank 的框架。首先过滤掉用处不大的一些示例,构造一个小的候选集合,减少搜索空间。采用类似信息熵相关的方法,从可能的候选组合中,挑选出最好的组合方法。
采用最小描述长度(MDL)原则来找到最佳的排序示例:一个好的模型应该能够无损地压缩数据,包括描述模型本身的成本。
IDS
[2310.09881] In-Context Learning with Iterative Demonstration Selection EMNLP findings 2024
认为最佳选择维度(相似性/多样性)是特定于任务的,使用 CoT 产生推理路径,然后选择与推理路径最相似的样本,迭代几次,然后投票获得最后答案。

TopK+ConE
首先实验证明了不同任务适合不同的检索器,不同模型偏好不同的示例。然后提出猜想:effective demonstrations are those that can help the inference model better understand the test input. 其实和上面的 TopK+MDL 很像,只是这里是对 input,MDL 是对 label。而且这篇文章还做了实验佐证了猜想(打乱输入的部分词序结果显著变差)
MoD
Mixture of Demonstrations for In-Context Learning NeurIPS 2024

引入了混合专家机制。首先将所有演示聚类:
其中 是正则化项。
根据测试样本与簇中心的相似度来决定每个簇选择多少个样本:
参考坐标下降法,固定其他专家,优化一个专家。

训练方法参考 EPR,使用对比学习。
Ordering
GlobalE&LocalE
实验发现大多数失败的 prompt 都会产生高度不平衡的预测标签分布。
首先从训练集中挑出一部分,然后全排列分别输入到 LM 中生成探测集,通过衡量探测集中的标签分布来筛选出最好的排列。

文中给出了两种衡量方式,全局熵和局部熵:
全局熵是针对探测集整体的标签分布,局部熵是个体分布的平均。
ICCL
从简单到困难的排序,难度可以由人类专家或 LLM 指标(比如困惑度)评估。

在 base model 上效果不好,推测从易到难的学习能力是微调阶段获得的。
Other
Self-ICL
很简单,就是让模型自己生成示例样本。
- 提示模型根据给定的查询和相应的任务描述生成伪输入。
- 该模型通过零样本提示(Direct/CoT)预测伪输入的伪标签。
- 伪 input-label 对形成伪演示,然后将其添加到查询前面并继续执行标准 ICL。
Analogical
Zero-shot CoT 避免了人工标注来引导推理,但是对于一些复杂的任务难以完成推理,例如 code generation;而 Few-shot CoT 则需要人工标注或挑选 exemplar。
本文提出一种“归纳学习”的提示方法,让模型自己生成 exemplars,兼顾两种优势。

对于像 code-generation 等复杂的任务,low-level exemplar generation 不一定能过让模型很好地解决此类问题,因此本文提出一种 high-level generation 方法。通过设计如下指令来实现:
# Tutorial: Identify core concepts in the problem and provide a tutorial.
Analysis
[2307.12375] In-Context Learning Learns Label Relationships but Is Not Conventional Learning ICLR 2024
文章主要研究了 ICL 的学习机制,与之前的研究不同,本文逐步扩大 context size,使能够全面了解 ICL 的 “training dynamics”。为了节省计算成本,提出了一种评估 ICL 的新方法,在一次前向传递中给出所有上下文数据集大小的性能指标。
三个零假设:
- ICL 预测与上下文中给定示例的条件标签分布无关。
- ICL 可以克服预训练模型的零镜头预测偏好。
- ICL 平等考虑所有上下文。
假设 1 通过随机替换上下文标签的实验拒绝,不同任务、不同模型。

假设 2:
- 翻转默认标签,例如 SST-2 的(negative, positive)映射到(positive, negative)
- 替换任意标签,例如(negative, positive)变成(A, B)或(B, A)
结果也拒绝。
假设 3:每次观察后,在默认标签和翻转标签之间交替。

如果假设 3 成立,最后结果应该相同。
另外,作者还从私人消息中创建了一个作者身份识别数据集,保证不会在预训练中。实验结果说明 LLM 可以在上下文中学习真正新颖的任务。
Cross-Task
[2405.10548] Language Models can Exploit Cross-Task In-context Learning for Data-Scarce Novel Tasks ACL 2024
实验了 5×10 个源任务-目标任务对,比 Zero-shot 有改进。

实验了随机选择和语义相似选择的效果,结果是语义相似选择普遍更好。
实验了三种 mixed cross-task prompting 的效果:
- Best source cross-task:从实验一中选择最佳的源任务,取 4 个语义最相似的样本。(结果发现 4 个样本并)
- Random mixed cross-task:随机选择 4 个源任务,每个任务选最相似的样本。
- Best mixed cross-task:结合前两种方法
在有一些已标记的任务内样本的场景下,将任务内示例与跨任务提示相结合。
实验了在 8-shot 场景下逐渐从完全的任务内提示变为完全的跨任务提示的性能变化。
提出了一种基于伪标签的方法:在数据稀缺的场景中,选择一部分未标记的样本集,采用多数投票的 cross-task prompting 来生成伪标签。结果显示在部分情况下通过跨任务提示生成的伪标签比零样本伪标签要好得多。
总结了跨任务提示中发生的四种类型的错误:
- Label space replication:输出的是源任务的标签空间
- Junk prediction:输出的是不明意义的垃圾
- Copying effect:输出与上下文示例相同的标签
- Definition not followed:输出不符合指令,比如选择题直接输出文本答案,而不是 ABCD 选项标识。
Scoring
Calibrate
实验发现 Few-Shot 表现不稳定,原因有:
- Majority Label Bias。总是倾向于预测出常见的 label,所以样本的分布影响着结果。
- Recency Bias。更倾向于预测离结尾最近的样本 label,样本的顺序会影响结果。
- Common Token Bias。倾向于预测一些常见的词(这个现象在前几年对话系统也经常会遇到,生成 safe 但 meaningless 的话)

提出了输出校正的方法:
其中 是将示例和无内容输入(比如N/A)给 LLM 获得的输出分布,。
Channel
把语言模型推理的模式分为了:直推模式(Direct)、噪声通道模式(Noise channel),channel 模式是通过标签推理输入。
当训练样本数量少、训练数据中标签不平衡或者需要泛化到看不见的标签时,选择通道模式更好。
kNN-Prompting
很新颖的方法,解决了两个问题:
- 上下文学习容量有限
- 受到多种 bias 影响
本文提出一种基于近邻检索的方法,简单且十分有效地解决以上两个问题。
首先将所有训练样本分为:Train Set 和 Anchor Set 将 Anchor 样本用于推理,得到 LLM 输出的 LM Probability Distribution,作为 Key,而 Anchor 样本的 Label 作为 Value,构建 Datastore。
对于测试样本,不再直接解码 LM Distribution 到 Label,而是计算该分布在 Anchor Set 分布中的最近邻,取其 Value 直接作为最终的预测结果。
