什么是In-Context Learning(上下文学习)?

f44d4f8ab19572ba10fb2cd8a7ad11d3.gif

©作者 | 董冠霆

单位 | 北京邮电大学

研究方向 | 自然语言理解

b156def638ad14acce9c9ba1ecada23e.png

前言

随着大模型(GPT3,Instruction GPT,ChatGPT)的横空出世,如何更高效地提示大模型也成了学术界与工业界的关注,因此 In-context learning 的方法在 NLP 领域十分火热。

从时间线上看,它的演变历程大约是从 Prompt learning(2021年初) 到 Demonstration learning(2021年底)再到 In-cotnext learning(2022年初),但从方法原理上,他们却有很多相似之处。

本文对一篇有代表性的 in-context learning 论文:Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?进行阅读,之后我也会做其他 ICL 论文的阅读笔记。

Paper List for In-context Learning:

https://github.com/dongguanting/In-Context-Learning_PaperList

论文链接:

https://arxiv.org/abs/2202.12837

其他相关论文链接:

https://arxiv.org/pdf/2108.04106.pdf

In-Context Learning 综述:

https://arxiv.org/pdf/2301.00234.pdf

参考文章:

https://zhuanlan.zhihu.com/p/484999828

c83b66a67c28646f1cb4d378d62f837c.png

什么是In-Context Learning

在这篇综述论文给出了详细的定义:

https://arxiv.org/pdf/2301.00234.pdf

14594e763227e2b01169dbefd1cd0c61.png

In Context Learning(ICL)的关键思想是从类比中学习。上图给出了一个描述语言模型如何使用 ICL 进行决策的例子。首先,ICL 需要一些示例来形成一个演示上下文。这些示例通常是用自然语言模板编写的。然后 ICL 将查询的问题(即你需要预测标签的 input)和一个上下文演示(一些相关的 cases)连接在一起,形成带有提示的输入,并将其输入到语言模型中进行预测。

值得注意的是,与需要使用反向梯度更新模型参数的训练阶段的监督学习不同,ICL 不需要参数更新,并直接对预先训练好的语言模型进行预测(这是与 prompt,传统 demonstration learning 不同的地方,ICL 不需要在下游 P-tuning 或 Fine-tuning)。我们希望该模型学习隐藏在演示中的模式,并据此做出正确的预测。

1d5993d105913d19e0aba0fc3746283c.png

论文分析

Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?中我们已经发现 Demonstration,ICL 与大规模语言模型结合(LMs)在零样本条件下的许多任务上取得了很好的效果,但人们对它如何工作以及演示的哪些方面有助于最终任务的执行知之甚少。本文主要以实验为主,探究以上影响 ICL 的因素。

实验设置

作者采用 12 个模型进行了实验。我们包括 6 种语言模型(表 1),所有这些模型都是仅限解码器的 dense LM。LMs 的大小从 774M 到 175B 不等。

6596b1fd5ecea830be33e93584792a07.png

对于每个模型,作者采用了两种应用方式,即 direct 和 channel:

e1e0674346013b63750cfc1df4e9a1c3.png

Direct:直接计算给定 input x 条件下,label y 的概率 P(y|x)。

Channel:与上面恰好相反,给定 y 的条件下计算 x 的概率 P(x,y)∝P(x|y)。

作者在如下数据集上进行实验,包括情感分析,段落检测,自然语言推理,仇恨言语检测,问答,句子补全等任务。

58aa8c849bb47221bb7e2f5568776c20.png

820bacbe6512df7b58da64af5ad3187c.png

结论1:ICL中Ground Truth信息无关紧要

No Demos:LMs 直接进行零样本预测,无提示

Demos w gold:依赖于 K 个标注的 examples 进行提示,进行预测

Demos w random labels:抽样 K 个 examples 提示,但样本 labels 在标签集中随机采样,而非 groundtruth。

144997e01a88a5792ab97512b01105b0.png

我们发现,用随机标签替换黄金标签只会轻微影响性能。这一趋势在几乎所有的模型上都是一致的:模型看到的性能下降在 0-5% 的绝对范围内。在多选择任务中(平均 1.7%)替换标签的影响小于在分类任务中(2.6% 的绝对标签)。

这一结果表明,地面真实值输入标签对并不是实现性能提高的必要条件。这是违反直觉的,因为正确的配对训练数据在典型的监督训练中是至关重要的——它通知模型执行下游任务所需的期望输入-标签对应。尽管如此,这些模型在下游任务上确实取得了非常重要的性能。

作者在以下 3 个维度上进一步做了消融实验:正确演示占总的百分比(下图1)与演示样本数量 K(下图2),演示的模板样式(下图3)。

9ace6d798487534c641cd375e01a71bf.png

cfd83fdd9154059934c60adb6d992d41.png

1295816cf6387e52b7a0a51eb8a3b7fa.png

可以得到相似的结论,在演示正确与否影响并不大。

714ffc5cc8fc701a759fb07f3215bd71.png

结论2:ICL的性能收益主要来自独立规范的输入空间和标签空间,以及正确一致的演示格式

作者分别从以下四个维度探究 In-Context Learning 效果增益的影响。

1. The input-label mapping:即每个输入 xi 是否与正确的标签 yi 配对

2. The distribution of the input text:即 x1...xk 的分布是否一致

3. The label space:y1...yk 所覆盖的标签空间

4. The format:使用输入标签配对作为格式。

242a2cd7dd09146bb0d5febd56c4543f.png

输入文本分布实验:

下图中,青绿色的柱子为用(从外部语料中)随机采样的句子替换输入句子的设置。可以看到,模型表现明显下降。因此,in-context learning 中,演示中的分布内输入极大地有助于提高性能。这可能是因为已 IND(in-distribution)文本的条件使任务更接近于语言建模,因为 LM 在此期间总是以 IND 文本为条件进行推理标签。

526dfa0bad5ee463ed4c434f2cf79496.png

标签空间实验:

下图中,青绿色的柱子为用随机英语词汇替代展示样本中的标签。可以看到,模型表现明显下降。因此,in-context learning 中,标签空间的一致性显著有助于提高性能。

d6586ffa5ea999d756c97ae3e26c6469.png

演示格式实验:

下图中,分别用 labels only(深紫)和 no labels(深绿)来探索演示模式的差异对模型表现的影响。可以看到,模型相对于上面两图的 OOD setting 而言,都有了进一步的下降。这可以表明 ICL 中保持输入-标签对的格式是关键的。

d9a18f6f31147b13b70a97f8236fe1e5.png

9bfcbdf8f2b363d4ade5db2914f81fa2.png

有意思的讨论

作者还进行了个有意思的讨论,即模型是否在 Test 阶段学习到了知识?

作者认为如果我们对学习进行严格的定义,即学习在训练数据中给出的输入标签对,那么 lm 在测试时不学习新的任务。然而,学习一项新任务可以更广泛地解释:它可能包括适应特定的输入和标签分布以及演示的格式,并最终更准确地做出预测。有了这个学习的定义,该模型确实可以从演示中学习任务。我们的实验表明,该模型确实利用了演示的各个方面,并实现了性能的提高。


c6cf30ede9a93fe85ada2b97d5813d1d.png

总结

本文从多个角度探究了演示是如何让 In-context learning 在不同的任务中产生性能增益的,而且随着 fine-tune 阶段的黑盒化,很多文章也提出 fine-tune 阶段可能让模型丧失了泛化性,那么 ICL 这种不 fine tune 的方法既节省时间与资源开销,且能提升效果,应该会在大模型林立的时代被人关注,并迅速火起来。

更多阅读

344dd5c7e1e1a4dcc23645940ae20cd7.png

2ad19c1be667ff01396aef23c83add71.png

4da52a12d842b022674e737bfaae91f1.png

0bdf1723fa630abd3f0872316212d462.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

05cc0262ef9410f8e0f7c65d74d8afc2.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

8e68631e19ec0d8439f3fe98c0365613.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18074.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACL2023论文写作能否使用ChatGPT?

每天给你送来NLP技术干货! 来自:HFL实验室 随着以ChatGPT为代表的生成式AI的火热,近期人工智能领域的顶级会议相继推出相关政策以进一步规范这类工具在科学文献撰写中的使用。ACL 2023程序委员会主席在近期的一篇博客中披露了ACL 2023大会的相…

五年引用3.8万次,Transformer宇宙发展成了这样,ChatGPT只是其中之一

©作者 | 袁铭怿、陈萍 来源 | 机器之心 关于 Transformer ,这是一篇很好的学习指南,可以帮助你熟悉最流行的 Transformer 模型。 自 2017 年提出至今,Transformer 模型已经在自然语言处理、计算机视觉等其他领域展现了前所未有的实力&am…

很全面的提示工程指南(包含大量示例!)

提示工程指南 提示工程介绍基础提示配置参数的含义标准提示语提示语的要素提示设计的一般技巧从简单的提示开始指令(Instruction)具体(Specificity)避免不精确的描述(Preciseness)避免说不要做什么 基础提示…

PgSQL修改登录密码

(1)首先必须在安装postgerSql的服务器上进行操作。先找到postgerSql的安装目录,如下图所示。 (2)在postgerSql的安装目录下,找到data文件夹下的pg_hba.conf文件,用文本文档编辑工具打开该文件。…

admin是谁,以及如何修改admin密码

一、admin是谁? admin是多可文档管理系统默认的系统管理员。当你安装完多可文档管理系统后,立刻就能通过他来登陆多可系统。 admin是包含在用户数里的。如果你用的是10个用户的免费版,那么admin就会占用一个用户,也就是说你可以…

chatgpt赋能Python-python_ichat

Python iChat: 一款高效的通讯工具 如果你正在寻找一款既功能全面、又易于使用的通讯工具,那么Python iChat就是你所需要的。Python iChat是一款基于Python编程语言的开源通讯应用程序,它具有轻巧、快速、易扩展等特点,因此得到了众多开发者…

从零开始,通过 ChatGPT-4 十分钟开发了一个浏览器插件,并成功运行

点击上方“Java基基”,选择“设为星标” 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应…

chatgpt人工智能AI付费对话自适应源码openai写代码写论文付费问答3.5接口

ChatGPT为你服务: 1. 知乎百度答题、做作业题目 2. 写代码、写文案、写论文,写小说 3. 文案润色、翻译、写诗作词 4. 扮演面试官、扮演书籍电影角色 5. 陪聊倾诉、解忧、讲故事. 6. 项目判断,资源寻找,百度答题 运行环境&a…

搭建一个chatgpt的计费接口,让别人对接使用+api管理系统源码

前言: 要做一个对接chatgpt的接口,让别人对接使用的话,首先我们必须要有一个自己的api管理系统的代码,代码我放在了gitee上,大家感兴趣的可以下载,可以使用官方接口,也可以使用自己定义的接口&…

P、NP与NPC 的通俗理解

P、NP与NPC 的通俗理解 1.多项式时间复杂度 定义: 解决问题需要的时间与问题的规模之间是多项式关系。 多项式关系形如O(nk)” role”presentation” style”position: relative;”>O(nk)O(nk),k为某个常数,n是问题的输入规模。例如&am…

【计算理论】计算理论总结 ( P 、NP 、NPC 总结 ) ★★

文章目录 一、P 类二、NP 类三、NPC 类 ( NP 完全 )四、P 、NP 、NPC 三者关系 一、P 类 P \rm P P 类 : ★ 所有 能够被 确定性 单个带子图灵机 , 在 多项式时间 内 , 能够被 判定的计算问题 ( 语言类 ) , 将这些问题放在一起 ( 广义并集 ⋃ \bigcup ⋃ ) , 组成一个整体 ,…

奇迹私服服务器端npc修改,奇迹教程-奇迹EX802 NPC商店修改教程与NPC编号查询

摘 要 本教程适用于EX802的NPC商代为XML文件的,主要详细介绍手动修改NPC商店教程,我们记得在03H版本中NPC商店修改的是TXT文件,本次修改是XML文件,修改大致相同,就是格式不是太一样,为了 y8xrookie博客-Rk Blog 本教程适用于EX802的NPC商代为XML文件的,主要详细介绍…

我的世界服务器最新npc获得,我的世界1.8Citizens2——NPC插件

Citizens2(公民2)是一款非常有趣的NPC插件,他可以给服务器带来故事背景,风格,是纯净服务器必备的选择! 可以创建一个NPC,让它说话,让它走动,让他当守卫等等。 它也有很多扩展插件(扩展插件有时间…

我的世界服务器npc怎么修改,我的世界NPCmod教程如何设置任务NPC

我的世界中,玩家可通过npcmod来创建有任务的npc,那么有任务的npc该怎么创建呢,下面一起来看看吧。 一,创建新的NPC 请使用这个东西右键地面 这时就创建好了一个漂亮的NPC 这是你建立好的成品 如果你想改他的皮肤或者是名称请打开他基本属性栏我就不详说了 这时候我们创建好…

传奇服务器npc位置文件,传奇GEE引擎服务端自定义NPC示列工具

传奇GEE引擎服务端自定义NPC示列工具 测试自定义NPC 配置文件:D:\MirServer\Mir200\Envir\CustomNPC 先在 Merchant.txt 中,设置一个 appr 10000 的npc,然后重新加载npc,进入自定义npc设置 在 Merchant.txt 中配置一个npc appr …

018 打开NPC交接任务功能分析

文章目录 打开NPC交任务接任务 打开NPC 来到明文封包call头部,点击NPC,然后断下。这里最好新建一个1级的小号,去分析,这样周围没有其他玩家会少很多干扰项。 返回上层,这个call应该就是我们要的选择NPC的call 但是我们…

传奇私服服务器怎么增加npc,传奇添加NPC的方法以及形象代码计算

今天介绍一下如何在传奇私服里面增加NPC,以及自定义NPC的外观样子。 本文使用的GOM引擎,添加自定义NPC很简单只需要两步: 传奇添加NPC的方法步骤: 首先:在服务端目录Mir200中的Envir目录里面找到Merchant.txt&#xff…

群晖部署nps的客户端npc in docker

先下载一个npc的容器,注意是npc 启动 然后高级设置 (3)点击“高级设置” (4)点击“添加文件夹” (5)选择一个NAS本地文件夹。(要记住,待会用到) (6)装载路径为“/conf” 注意这个是配置文件所在地 网络选择本地hosts网络 然后创建后,到conf目录添加下配置文件…

服务器自定义npc音乐,Custom NPC 自定义NPC模组自定义音乐添加教程

教程 一、格式转换[也是很重要的一部,音乐格式必须为ogg不然放不出声音] MC所使用的音乐格式为ogg,所以你要把需要添加的音乐转换成合适的ogg格式。 二、添加文件 打开MC的.minecraft\customnpcs\assets\customnpcs\sounds文件夹然后你可以直接把ogg音乐放在那里,也可以新建一…

传奇私服服务器怎么增加npc,传奇新建NPC/npc修改功能/NPC修改模版

先拿最简单的公告NPC做例子 咱们在自己搭建的版本上找到一个公告的NPC 那么我们怎么去修改,或者添加类似的NPC呢? 我们先找到这个NPC在服务端的位置 搜索关键字找到这两个NPC.我们打开看看里面都是写的什么 然后对应搜索命令脚本的意思。每个引擎里面都有一个指导文件 我们打…