论文题目:A Survey on In-context Learning
论文地址:[2301.00234] A Survey on In-context Learning (arxiv.org)
版本: [v3] Thu, 1 Jun 2023 12:23:40 UTC (6,761 KB)
参考文献列表: dqxiu/ICL_PaperList: Paper List for In-context Learning (github.com)
二作解读:A Survey on In-Context Learning 论文解读_哔哩哔哩_bilibili
二作解读ppt:In-Context Learning Survey Sharing-Lei-2300313.pdf - Google 云端硬盘
笔记参考:In-Context Learning玩法大全 (qq.com)
随着大模型能力的增强,上下文学习(In-context learning, ICL)已成为自然语言处理的新范式,其中LLM仅仅基于添加了几个示例的上下文进行预测。探索ICL来评估和推断LLM的能力已经成为一种新的趋势。
本文旨在调查和总结ICL的进展和挑战。
首先给出了ICL 的正式定义,并阐明了它和相关研究的相关性。
然后,组织并讨论了先进的技术,包括训练策略,演示设计策略以及相关分析。
最后,讨论了ICL面临的挑战,并为进一步研究提供了潜在的方向。
希望我们的工作能够鼓励更多的研究来揭示ICL的工作原理并改进ICL。
随着模型大小和语料大小的扩大,大模型展现了ICL的能力,即 从上下文的少量例子中学习。
LLMs可以通过ICL执行一系列复杂的任务,如解决数学推理问题。
ICL的核心思想就是 从类比中学习。
图1:上下文学习的说明。ICL需要一个演示上下文,其中包含一些用自然语言模板编写的示例。将演示和查询作为输入,大型语言模型负责进行预测。
图一给出了一个图示,描述了LLM怎样利用ICL进行决策。
与监督学习的一个很大不同是, ICL不需要进行参数更新,而是直接对预训练的语言模型上进行预测。
ICL有很多优势:
还有一些有趣的问题和特性需要研究:
ICL的强大能力依赖于两个阶段:
图2:上下文学习的分类。训练阶段和推理阶段是ICL的两个主要阶段。在训练阶段,现有的ICL研究主要以一个预训练的LLM为骨干,选择性地对模型进行预热,以增强和推广ICL能力。在推理阶段,演示设计和评分函数的选择是最终性能的关键。
图二展示了作者对上下文学习进展的分类,同时也是文章的组织结构。
关键部分如下:
作者根据GPT-3 【1】 的论文,给出ICL的 定义:ICL是一种范式,它允许LM根据以演示形式给出的示例来学习任务。本质上,它使用经过良好训练的语言模型估计潜在答案的可能性,条件是演示。
给定输入文本 x x x,一组候选答案 Y = { y 1 , y 2 , . . . y m } Y=\{y_1,y_2,...y_m\} Y={y1,y2,...ym}( Y Y Y可能是类别标签或者一组自由文本序列),预训练模型 M M M在给定演示集合 C C C的条件下,选取具有最高分数的候选答案作为预测结果。
C C C包含一个可选的任务指令 I I I和 k k k个演示示例,因此 C = { I , s ( x 1 , y 1 ) , . . , s ( x k , y k ) } C=\{I,s(x_1,y_1),..,s(x_k,y_k)\} C={I,s(x1,y1),..,s(xk,yk)},或者 C = { s ( x 1 , y 1 ) , . . . , s ( x k , y k ) } C=\{s(x_1,y_1),...,s(x_k,y_k)\} C={s(x1,y1),...,s(xk,yk)}。其中 s ( x k , y k , I ) s(x_k,y_k,I) s(xk,yk,I)是根据任务用自然语言编写的案例。一个候选答案 y i y_i yi的可能性可以通过模型 M \mathcal{M} M的整个输入序列的评分函数 f f f表示:
P ( y j ∣ x ) ≜ f M ( y j , C , x ) P(y_j\mid x)\triangleq f_{\mathcal{M}}(y_j,C,x) P(yj∣x)≜fM(yj,C,x)
最终的预测的标签是概率最高的候选答案
y ^ = arg max y j ∈ Y P ( y j ∣ x ) \hat{y}=\arg\mathop{\max}\limits_{y_j\in Y} P(y_j|x) y^=argyj∈YmaxP(yj∣x)
评分函数 f f f评估了给出演示和查询文本时当前答案的可能性。
根据定义,可以看到与ICL与其他相关概念的区别。
在预训练和ICL推理之间存在一个持续训练阶段,即模型预热Warmup阶段,可以进一步提高ICL推理能力。
这是一个可选过程,包括调整模型参数或者新增参数,与传统的finetune过程不同,finetune是为了提高LLM在特定任务上的性能,而 warmup是为了使得模型具备更好的通用ICL能力。
虽然与训练后的语言模型已经初步具备ICL能力,但是预训练的目标并不是为了ICL而优化的,因此与下游ICL目标还是存在gap,最直观的方法就是在有监督的ICL数据上进行训练,来消除两者之间的gap。
比如MetaICL 【4】 直接将很多任务调整为ICL形式并进行整合,增强了模型的few-shot能力。
此外,Google为了进一步鼓励模型学习输入-标签映射提出了symbol tuning方法 【5】 ,具体而言,用任意符号(比如,foo/bar)替换掉自然语言标签(比如,积极/消极情绪)。它利用了这样的直觉,当模型无法使用指令或自然语言标签来找出任务时,它必须通过学习输入-标签映射来实现。
还有部分研究专注于 instruction tuning,与MetaICL相比,它们更加考虑对于任务的解释,这种方式更容易扩展,比如LaMDA-PT 【6】 、FLAN 【7】 。
除了使用有监督的数据提升ICL能力外,也有工作尝试使用自监督的方式。
MetaAI提出根据下游任务的ICL格式构造自监督训练数据 【8】 。它们将原始文本转化为输入-输出对,探索4个自监督目标,包括masked token prediction 和classification task。
PICL(Pre-training for in-context learning) 【20】 也利用了原始语料,但是只使用了一个简单的语言建模目标,在保留了原来模型生成能力的同时,提示了基于上下文的任务推理和执行。
takeaway 可以指获得的心得,领悟,总结
一些研究表明,ICL的性能严重依赖于演示,包括演示的格式,演示示例的顺序。
下面从两方面来进行研究,演示组织和演示格式。
这部分讨论如何从示例池中选取合适的示例以及怎样组织它们的顺序。
对于ICL来说,哪些样本是好的?选取合适样本的方法分为两类:无监督与监督。
句向量距离:Liu等人 【9】 的研究表明选择与输入的测试句子最相似的邻居作为ICL的例子是一个好的方案。(这种方式在GPT-NER论文【GPT-NER: Named Entity Recognition via Large Language Models】也提到过)。他们是用距离指标来衡量相似度,比如L2距离或余弦相似度。他们提出了KATE ,一个基于KNN的无监督提取器,用来选取上下文例子。
互信息(mutation information,MI): 见论文 【10】 ,互信息可以用来表示两个变量之间是否有关系,以及关系的强弱。它的优势是不需要有标签的示例以及特定的LLM。
此外,还有学者尝试利用perplexity(PPL) 【11】 或者演示的多样性 【12】 等指标进行选取。
甚至,可以让LLM自己生成适合的演示,称为SG-ICL 【13】 。
还有其他研究利用LM的输出分数 P ( y ∣ C , x ) P(y|C,x) P(y∣C,x)作为指标来选取示例,如Self-Adaptive ICL 【14】 、Informative Score 【15】 。
Rubin等人 【16】 提出了一个两阶段的提取方法,先用无监督检索器召回若干相似的样本,再通过监督学习训练的Efficient Prompt Retriever(EPR)进行打分,从而筛选出最合适的样本。
Li等人 【17】 对上述方法的EPR进行了改进,得到了一个统一演示检索器Unified Demonstration Retriever (UDR),统一了不同任务间的演示选择。
此外,也有基于prompt tuning 和强化学习(如 【18】 采用了Q-Learning)的方式选择样本的方法。
挑选完演示示例后,如何对它们排序也很重要。 论文 【19】 证实了顺序敏感度是存在于很多模型中的一个普遍问题。
目前的研究并不多,有两种思路:
这部分讨论如何设计演示的格式?
最简单的方式就是将示例的x-y对按照顺序直接拼接到一起。但是对于复杂的推理问题,语言模型很难直接根据x推理出y,这种格式就不适用了。
通常有两种方式: instruction指令格式以及reasoning steps格式 。
任务的指令描述非常依赖于人工,不过现在有很多人尝试让LLM自己生成任务描述并选择。
Honovich等人 【21】 展示了语言模型可以通过提示它们生成符合示例的自然语言指令,从一些示例中显式地推断出一个底层任务,并引入了 instruction induction 挑战,对生成指令的能力进行了评估。
Wang 等人【22】提出了 Self-instruct 方法,旨在引导LLM依靠自己的生成能力提高指令遵循能力(instrutction-following)。
Wei 等人【23】在构建演示时,在输入和输出之间添加了中间推理步骤,这些步骤被称为 Chain-of-thoughts,即 CoT。
Qiao等人【24】对语言模型的推理能力的前沿研究做了全面综述。
CoT也有不同的设计策略。
Wei等人【23】采用的手工撰写CoT的方法,而Zhang等人【25】提出了Auto-CoT的方法,自动构建包含问题和推理链的说明信息。
此外,还有研究 Multi-stage ICL ,分多个步骤来完成任务,每一步都设计不同的演示,让模型一步步解答。比如 Self-Ask 【26】(让模型根据输入生成后续问题,并问自己这些问题)、iCAP 【27】(迭代上下文感知提示器)、Least-to-Most Prompting 【28】(将一个复杂的问题分为一系列更为简单的子问题,然后按顺序解决它们)。
此外,Xu等人【29】提出了 Super In-Context learning (SuperICL) ,利用LLM与较小模型的组合,较小模型作为插件,有效地执行任务。
作者对Prompt设计部分的工作进行了讨论
已有样例选择的策略都是基于单个样本的, 语料库级别的研究 更加重要并有待研究。
llm的输出分数或概率分布在实例选择中起着重要的作用
从k个样例的k!个排列中, 找到最优解是一个很有挑战的问题
CoT技术可以提升推理效果,怎么优化CoT有待探索
要善于利用LLM的生成能力来摆脱人工的限制,来辅助演示设计,如生成指令,演示,CoT 等。
评分函数决定了我们如何将一个语言模型的预测转换为对一个特定答案的可能性的估计。
主要方法有:
Direct【1】:GPT-3中使用,直接取答案的条件概率,缺点是只能衡量固定模式的答案,如答案在输入序列的最后。
这里不太明白
PPL :它计算整个句子的困惑度,消除了token位置的限制,但是需要额外的计算时间。
Channel:此方法与之前给定输入上下文的情况下估计标签的概率的方法不同,它计算了反向的条件概率,即估计给定标签的情况下,输入的可能。这个方法对于不平衡的数据表现很好。
此外,还有一个方向上合并超出上下文长度约束的信息来校准分数,如Structured Prompting 与 KNN Prompting 。
现有的评分函数都直接从llm的条件概率计算一个分数。关于通过评分策略来校准偏差或减轻敏感性的研究有限。
作者还调研了可能会影响ICL效果的因素,如下表
Shin等人【30】研究了预训练语料库的来源和大小对上下文学习的影响
Wei等人【31】发现预训练模型的参数量以及训练步数对ICL能力的产生有影响。
一些研究指出,在推理阶段,示例的属性也会影响ICL的性能。
比如,Min等人【32】提出了影响演示性能的四个方面:“the input-label pairing format”(即模板)、“the label space”、“the input distribution”、“the input-label mapping”(标签y是否正确)。他们证明了前三个因素对ICL性能有很大影响,但是标签的正确性影响很小。
但Kim等人【 33】却提出了相反的观点,认为正确的标签对ICL性能有影响,这却决于具体实现配置。
也有其他研究指出了影响ICL性能的其他因素,具体见表格3,相关论文为【33】、【34】、【9】。
Distribution of Training Data :跟训练数据的分布有关。有研究发现当训练数据表现出特定的分布属性时就会出现上下文学习,另外,也有学者认为ICL可能是隐式的Bayesian inference。
Learning Mechanism :跟学习机制有关。比如Li等人【36】将ICL抽象为算法学习温柔,表明Transformer可以通过演示中的隐式经验风险最小化来实现合适的函数类。也有其他工作试图在ICL与微调之间建立联系。Dai等人【37】将大模型解释为元优化器然后将ICL立即为隐式微调,其实验表明,上下文学习的行为类似于从多个角度进行的显式微调。
Functional Components :跟特定的功能模块有关。有学者【38】发现Transformer里有些注意力头会拷贝之前的模式来预测下一个token,他们认为感应头可能是大模型中ICL机制的来源。
在传统的数据集和基准上进行研究,例如SuperGLUE、SQuAD。但目前,于微调相比,ICL在传统的NLP任务上还有一定的进步空间。
研究人员更感兴趣于评估不要下游任务微调的大语言模型的内在能力。
Srivastava 等人【39】提出了 BIG-Bench (Beyond the Imitation Game benchmark),是一个涵盖了多种任务的大型benchmark。最好的模型已经在65%的BIG-Bench任务上超过了平均的人类评分结果。
在此基础上,Suzgun等人【40】提出了 BIG-Bench Hard (BBH),由23个具有挑战性的任务构成,这些任务最新模型都低于人类的性能。
此外,还有研究人员在寻找inverse scaling 任务,即当模型扩大的时候,模型性能反而下降的任务,这些任务突出显示了ICL范式的潜在问题。
Iyer等人提出了 OPT-IML Bench ,由8个现有benchmarks的2000个NLP任务构成,用来探索大模型的泛化能力。
此外,还有一系列的研究针对于ICL的推理能力,如MGSM(针对多语言环境下的思维链能力)、LLMAS(评估行为和变化方面的推理能力)等,具体见表4
OpenICL【42】,一个用于ICL和LLM评估的开源工具包,支持各种最先进的检索和推理方法、任务和零/少样本评估LLM。
在NLP领域ICL的巨大成功引发了研究人员探索其在其他模态领域的潜力的热情,比如visual、vision+language、speech等任务。
这一部分简要的进行了阅读,暂时不做详细笔记,仅记录一下takeaway部分
ICL不止在传统的NLP任务上如机器翻译或信息抽取以及text-to-SQL上展示了突出性能,还在需要 复杂推理 (complexity reasoning) 和 组合泛化 (compositional generalization) 的任务上表现显著。
ICL还为 meta-learning 以及 instruction-tuning 提供了潜力。
下面展示了几个新兴的应用场景:
数据注释:对于许多NLP任务来说,数据注释是一个耗时且费力的过程。使用GPT-3生成标签的成本比使用人类标签要低很多,并且,将伪标签与人类标签相结合,可以获得更好的性能。
知识图谱构建:利用上下文学习的范式,可以显著提高自动构造和完成知识图谱的水平,进而降低知识图谱构建的成本。
尽管,与人类标注相比,ICL可以以较低的成本生成相对质量高的数据,怎样在数据注释中利用ICL仍然有待解决。
ICL的上下文灵活性展示了提高检索增强方法的潜力。
比如,Ram等人提出的 In-context RALM (retrieval-augmented language modeling) 方法,保持了LM结构不变,并在输入前加入真实文档,利用现成的通用检索器,取得了可观的LM收益。
ICL还显示出了在安全方面的潜力,有学者使用ICL进行检索演示来引导模型朝着更安全的方向生成内容,减少偏见与毒性。
LLM可能会包含错误或过时的知识,ICL可以有效编辑或更新这些知识。
比如,Si等人【44】发现当提供反事实 (counterfactual 通过未发生的条件来进行推理可能的结果,就是反事实推理)例子时,GPT-3在85%的时候都可以更新答案,并且更大的模型在上下文知识更新时表现更好。他们通过适当的提示,使得GPT-3在多个方面都比小规模的监督模型要可靠。
语言建模的目标和ICL的能力并不匹配【45】。第4章的方法可以 减少两者之间的差距。而更进一步,为ICL量身定做的预训练目标和指标可能更能培养出具有强大ICL能力的LLM。
随着计算规模和参数超过某个阈值,ICL能力就会出现。
如果能将ICL的能力转移到小模型上时,就可以极大地促进模型部署。
Magister【46】 探索了通过知识蒸馏将推理能力转移到较小的模型上,还探索了模型和数据集大小的权衡。具体来说,他们在更大的教师模型产生的思维链输出上微调学生模型。
尽管实现了性能的提升,但改进可能来自于任务。 通过从更大的LLM中学习来提高推理能力的进一步研究可能是有趣的方向。
先前的研究证明,ICL的性能很不稳定,从瞎猜到SOTA不等,并且对很多因素敏感,包括演示的排列,演示的格式等。因此保持ICL的鲁棒性是一个挑战性的问题。
但很多研究陷入了准确性和鲁棒性的两难境地,甚至有人牺牲推理效果来提升鲁棒性。
为了有效提高 ICL 的鲁棒性,**需要对 ICL 的工作机制进行更深入的分析 **。从更理论的角度而不是经验角度分析 ICL 的鲁棒性可以得到未来对更鲁棒的ICL 的研究。
ICL需要的演示面对着一些挑战:
第5章内容关注于利用有限数量的演示来实现更好的ICL性能,并提出了几种演示设计策略。 将ICL扩展到更多演示并提高其效率仍然是一种具有挑战性的任务。
已经有一些工作提出了解决方法,如 structured prompting、demonstration ensembling、dynamic prompting、iteration forward tuning、EVaLM等等。
作者调查了现有的ICL文献,并对先进的技术进行了回顾与总结,从warmup方法、演示设计策略、评估方法、数据集和资源等方面对ICL相关研究做了分析,并强调了一些具有挑战性的问题和未来方向。
[1] Language Models are Few-Shot Learners (neurips.cc)
[2] Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing | ACM Computing Surveys
[3] Generalizing from a Few Examples: A Survey on Few-Shot Learning
[4] NAACL MetaICL: Learning to Learn In Context - ACL Anthology
[5] [2305.08298] Symbol tuning improves in-context learning in language models (arxiv.org)
[6] [2201.08239] LaMDA: Language Models for Dialog Applications (arxiv.org)
[7] [2109.01652] Finetuned Language Models Are Zero-Shot Learners (arxiv.org)
[8] NAACL Improving In-Context Few-Shot Learning via Self-Supervised Training - ACL Anthology
[9] DeeLIO What Makes Good In-Context Examples for GPT-3? -
[10] ACL An Information-theoretic Approach to Prompt Engineering Without Ground Truth Labels - ACL Anthology
[11] [2212.04037] Demystifying Prompts in Language Models via Perplexity Estimation (arxiv.org)
[12] ACL [2212.06800] Diverse Demonstrations Improve In-context Compositional Generalization (arxiv.org)
[13] Self-Generated In-Context Learning: Leveraging Auto-regressive Language Models as a Demonstration Generator (arxiv.org)
[14] ACL [2212.10375] Self-Adaptive In-Context Learning: An Information Compression Perspective for In-Context Example Selection and Ordering (arxiv.org)
[15] [2302.13539] Finding Supporting Examples for In-Context Learning (arxiv.org)
[16] NAACL Learning To Retrieve Prompts for In-Context Learning - ACL Anthology
[17] ACL Unified Demonstration Retriever for In-Context Learning - ACL Anthology
[18] EMNLP Active Example Selection for In-Context Learning - ACL Anthology
[19] ACL Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity - ACL Anthology
[20] ACL Pre-Training to Learn in Context - ACL Anthology
[21] ACL Instruction Induction: From Few Examples to Natural Language Task Descriptions - ACL Anthology
[22] ACL Self-Instruct: Aligning Language Models with Self-Generated Instructions - ACL Anthology
[23] NeurIPS Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (neurips.cc)
[24] ACL Reasoning with Language Model Prompting: A Survey - ACL Anthology
[25] [2210.03493] Automatic Chain of Thought Prompting in Large Language Models (arxiv.org)
[26] [2210.03350] Measuring and Narrowing the Compositionality Gap in Language Models (arxiv.org)
[27] EMNLP [2203.08383] Iteratively Prompt Pre-trained Language Models for Chain of Thought (arxiv.org)
[28] ICLR Least-to-Most Prompting Enables Complex Reasoning in Large Language Models Poster (iclr.cc)
[29] [[2305.08848] Small Models are Valuable Plug-ins for Large Language Models (arxiv.org)](https://arxiv.org/abs/2305.08848#:~:text=Small Models are Valuable Plug-ins for Large Language,models difficult to be tuned with common hardware.)
[30] ACL On the Effect of Pretraining Corpora on In-context Learning by a Large-scale Language Model - ACL Anthology
[31] TMLR [2206.07682] Emergent Abilities of Large Language Models (arxiv.org)
[32] EMNLP Rethinking the Role of Demonstrations: What Makes In-Context Learning Work? - ACL Anthology
[33] EMNLP [Ground-Truth Labels Matter: A Deeper Look into Input-Label Demonstrations - ACL Anthology](https://aclanthology.org/2022.emnlp-main.155/#:~:text=Ground-Truth Labels Matter%3A A Deeper Look into Input-Label,impact of the quality of demonstrations remain elusive.)
[34] ACL How Do In-Context Examples Affect Compositional Generalization? - ACL Anthology
[35] ACL Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity - ACL Anthology
[36] ICML Transformers as Algorithms: Generalization and Stability in In-context Learning Poster (icml.cc)
[37] ACL Why Can GPT Learn In-Context? Language Models Secretly Perform Gradient Descent as Meta-Optimizers - ACL Anthology
[38] [2209.11895] In-context Learning and Induction Heads (arxiv.org)
[39] [2206.04615] Beyond the Imitation Game: Quantifying and extrapolating the capabilities of language models (arxiv.org)
[40] [2210.09261] Challenging BIG-Bench Tasks and Whether Chain-of-Thought Can Solve Them (arxiv.org)
[41] [2212.12017] OPT-IML: Scaling Language Model Instruction Meta Learning through the Lens of Generalization (arxiv.org)
[42] ACL OpenICL: An Open-Source Framework for In-context Learning - ACL Anthology
[43] TACL [2302.00083] In-Context Retrieval-Augmented Language Models (arxiv.org)
[44] ICLR Prompting GPT-3 To Be Reliable Poster (iclr.cc)
[45] NAACL On the Effect of Pretraining Corpora on In-context Learning by a Large-scale Language Model - ACL Anthology
[46] ACL Teaching Small Language Models to Reason - ACL Anthology