为什么上下文学习有用

上下文学习与Prompt learning 类似,但是又不完全一样,预训练的大模型不需要进行微调,只需要根据提示,也就是上下文(in-context),就能够完成特定的任务。这一点在ChatGPT中体现的尤为明显。当我们与大模型进行对话的时候,就是在给它提供上下文,它可以根据当前语境,来判断用户的意图,并给出理想的答案。如果给出了错误了答案,用户只需指出错误的地方,大模型就能自己改正错误,不过这可能需要多轮的对话才可以完成特定的任务。
所以,为什么这样的对话能有用呢?大模型怎么能够在历史对话的基础上进行学习,从而理解人们的意图呢?这就下面要探究的,为什么in-context learning (ICL)有用。
首先,我们需要知道in-context learning (ICL)的定义是什么。
Dong等人的调查和总结了in-context learning (ICL)的进展和挑战[1]。Dong等人在论文将上下文学习定义为:“A paradigm that allows language models to learn tasks given only a few examples in the form of demonstration.”。模型仅通过示范的少量示例就能够了解当前任务并给出答案。根据定义,我们可以明显看出 ICL 与其他相关概念的不同之处。
一:“Prompt Learning”:提示学习,是指一种让大模型根据一些具体的提示或者规则来产生想要的结果的方法。这些提示可以是一些具体的话语,也可以是一些抽象的参数。目的就是要激发大模型去猜测或者生成我们希望看到的输出结果。而上下文学习,它可以被看作是提示学习的一种特殊情况。在上下文学习的过程中,包括了一些实际的演示例子,这些例子成为了提示的一部分。总的来说,提示学习更加强调通过一些建议来引导计算机生成输出,而上下文学习更关注通过一些实际例子来教计算机完成任务。
二:“Fewshot Learning”:Fewshot Learning采用参数适应的方式来学习任务的最佳模型参数,是在少量标注数据上进行的有监督训练。而ICL 不需要进行参数更新,直接在预训练的 LLM 上执行。
Min等人提供了一种新的方法来理解上下文学习是如何以及为何起作用的[2]。他们讨论了大型语言模型(例如 GPT-3)的一种学习方式,即通过在示例中学习,然后在新的输入上进行推理,执行新的任务。他们发现,实际上并不需要真实的示例数据,即使在示例中随机替换标签,也几乎不会对一系列任务的性能产生明显影响。这个结果适用于包括 GPT-3 在内的12种不同的语言模型。具体来说,示例中的输入文本的分布和标签空间对上下文学习的性能提升起到关键作用,而真实的输入-标签映射的准确性影响较小。Min等人观察到 MetaICL[3] 在这方面的反应更为明显,例如对地面真实的输入-标签映射的影响更小,而对保持示例格式的影响更大。作者推测元训练可能鼓励模型更专注于利用示例的一些方面,而忽略其他方面。
那么模型是否从in-context中学习到新任务了呢?如果将学习新任务定义为模型从真实的输入-标签映射中获得信息,从而更新自身的参数,那么ICL显然没有做到。但是如果将学习新任务的定义更为宽泛,包括对特定输入和标签分布以及示例的格式的适应,以及更准确地进行预测,那么模型确实会从示例中学习到新任务。
综上所述,ICL为什么有用的原因就是它从示例中学习到了数据的分布,这些数据的分布就引导着大模型完成特定的任务。

[1]Dong Q, Li L, Dai D, et al. A survey for in-context learning[J]. arXiv preprint arXiv:2301.00234, 2022.
[2]Min S, Lyu X, Holtzman A, et al. Rethinking the role of demonstrations: What makes in-context learning work?[J]. arXiv preprint arXiv:2202.12837, 2022.
[3]Min S, Lewis M, Zettlemoyer L, et al. Metaicl: Learning to learn in context[J]. arXiv preprint arXiv:2110.15943, 2021.

猜你喜欢

转载自blog.csdn.net/onlyyoujojo/article/details/135066078
今日推荐