In Context Learning 相关分享
个人知乎详见
https://zhuanlan.zhihu.com/p/603650082/edit
1. 前言
随着大模型(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论文的阅读笔记。
2. 什么是In-Context Learning:
在这篇综述论文https://arxiv.org/pdf/2301.00234.pdf 给出了详细的定义:
In Context Learning(ICL)的关键思想是从类比中学习。上图给出了一个描述语言模型如何使用ICL进行决策的例子。首先,ICL需要一些示例来形成一个演示上下文。这些示例通常是用自然语言模板编写的。然后ICL将查询的问题(即你需要预测标签的input)和一个上下文演示(一些相关的cases)连接在一起,形成带有提示的输入,并将其输入到语言模型中进行预测。
值得注意的是,与需要使用反向梯度更新模型参数的训练阶段的监督学习不同,ICL不需要参数更新,并直接对预先训练好的语言模型进行预测(这是与prompt,传统demonstration learning不同的地方,ICL不需要在下游P-tuning或Fine-tuning)。我们希望该模型学习隐藏在演示中的模式,并据此做出正确的预测。
详细介绍见论文
3. 论文分析:
Rethinking the Role of Demonstrations: What Makes In-Context Learning Work? 中我们已经发现Demonstration,ICL与大规模语言模型结合(LMs)在零样本条件下的许多任务上取得了很好的效果,但人们对它如何工作以及演示的哪些方面有助于最终任务的执行知之甚少。本文主要以实验为主,探究以上影响ICL的因素。
实验设置:
作者采用12个模型进行了实验。我们包括6种语言模型(表1),所有这些模型都是仅限解码器的dense LM。LMs的大小从774M到175B不等。
对于每个模型,作者采用了两种应用方式,即direct和channel:
**Direct:**直接计算给定input x条件下,label y的概率P(y|x)。
**Channel:**与上面恰好相反,给定y的条件下计算x的概率P(x,y)∝P(x|y)。
作者在如下数据集上进行实验,包括情感分析,段落检测,自然语言推理,仇恨言语检测,问答,句子补全等任务。
结论1:ICL中 Ground Truth 信息无关紧要
No Demos:LMs直接进行零样本预测,无提示
Demos w gold:依赖于K个标注的examples进行提示,进行预测
Demos w random labels:抽样K个examples提示,但样本labels在标签集中随机采样,而非groundtruth。
我们发现,用随机标签替换黄金标签只会轻微影响性能。这一趋势在几乎所有的模型上都是一致的:模型看到的性能下降在0-5%的绝对范围内。在多选择任务中(平均1.7%)替换标签的影响小于在分类任务中(2.6%的绝对标签)。
这一结果表明,地面真实值输入标签对并不是实现性能提高的必要条件。这是违反直觉的,因为正确的配对训练数据在典型的监督训练中是至关重要的——它通知模型执行下游任务所需的期望输入-标签对应。尽管如此,这些模型在下游任务上确实取得了非常重要的性能。
作者在以下3个维度上进一步做了消融实验:正确演示占总的百分比(下图1)与演示样本数量K(下图2),演示的模板样式(下图3)
可以得到相似的结论,在演示正确与否影响并不大。
结论2:ICL的性能收益主要来自独立规范的 输入空间 和 标签空间 ,以及正确一致的演示格式
作者分别从以下四个维度探究In-Context Learning效果增益的影响
- The input-label mapping:即每个输入xi是否与正确的标签yi配对
- The distribution of the input text:即x1…xk的分布是否一致
- The label space:y1…yk所覆盖的标签空间
- The format:使用输入标签配对作为格式。
输入文本分布实验:
下图中,青绿色的柱子为用(从外部语料中)随机采样的句子替换输入句子的设置。可以看到,模型表现明显下降。因此,in-context learning中,演示中的分布内输入极大地有助于提高性能。这可能是因为已IND(in-distribution)文本的条件使任务更接近于语言建模,因为LM在此期间总是以IND文本为条件进行推理标签。
标签空间实验:
下图中,青绿色的柱子为用随机英语词汇替代展示样本中的标签。可以看到,模型表现明显下降。因此,in-context learning中,标签空间的一致性显著有助于提高性能。
演示格式实验:
下图中,分别用labels only(深紫)和no labels(深绿)来探索演示模式的差异对模型表现的影响。可以看到,模型相对于上面两图的OOD setting而言,都有了进一步的下降。这可以表明ICL中保持输入-标签对的格式是关键的。
有意思的讨论:
作者还进行了个有意思的讨论,即模型是否在Test阶段学习到了知识?
作者认为如果我们对学习进行严格的定义,即学习在训练数据中给出的输入标签对,那么lm在测试时不学习新的任务。然而,学习一项新任务可以更广泛地解释:它可能包括适应特定的输入和标签分布以及演示的格式,并最终更准确地做出预测。有了这个学习的定义,该模型确实可以从演示中学习任务。我们的实验表明,该模型确实利用了演示的各个方面,并实现了性能的提高。
4. 总结:
本文从多个角度探究了演示是如何让In-context learning在不同的任务中产生性能增益的,而且随着fine-tune阶段的黑盒化,很多文章也提出fine-tune阶段可能让模型丧失了泛化性,那么ICL这种不fine tune的方法既节省时间与资源开销,且能提升效果,应该会在大模型林立的时代被人关注,并迅速火起来。
相关文章:

In Context Learning 相关分享
个人知乎详见 https://zhuanlan.zhihu.com/p/603650082/edit 1. 前言 随着大模型(GPT3,Instruction GPT,ChatGPT)的横空出世,如何更高效地提示大模型也成了学术界与工业界的关注,因此In-context learning…...

【前端笔试题一】:解析url路径中的query参数
前言 本文记录下在笔试过程中的前端笔试编程题目,会持续更新 1. 题目: 解析 url 路径中的 query 参数,比如:‘http://building/#/skeleton?serialNumber2023020818332821073&jobNo210347&target%7B%22a%22%3A%22b%22%2C…...

K_A12_001 基于STM32等单片机采集火光火焰传感参数串口与OLED0.96双显示
K_A12_001 基于STM32等单片机采集火光火焰传感参数串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明IIC地址/采集通道选择/时序对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RC火光火焰模块1.2、STM32F103C8T6火光火焰模块五、基础知识学习与相…...

Java基础42 枚举与注解
枚举与注解一、枚举(enumeration)1.1 自定义类实现枚举1.2 enum关键字实现枚举1.2.1 enum的注意事项1.2.2 enum的使用练习1.2.3 enum的常用方法1.2.4 enum的使用细节及注意事项1.2.5 enum练习二、注解(Annotation)2.1 Override&am…...

shell的变量和引用
文章目录二、变量和引用2.1 什么是变量2.2变量的命名2.3 变量的类型2.3.1 根据数据类型分类2.3.2 根据作用域分类2.4 变量的定义2.5 shell中的引用2.6 变量的运算练习:二、变量和引用 在程序设计语言中,变量是一个非常重要的概念。也是初学者在进行Shel…...

基于PHP的招聘网站
摘要在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括在线招聘的网络应用,在外国在线招聘已经是很普遍的方式,不过国内的在线招聘可能还处于起步阶段。招聘网站具有招聘信息功能的双向选择,…...

轻松使用 Python 检测和识别车牌(附代码)
车牌检测与识别技术用途广泛,可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计算机视觉和人工智能。 本文将使用Python创建一个车牌检测和识别程序。该程序对输入图像进行处理,检测和识别车牌,最后显示车牌字符,作为…...

DVWA—CSRF-Medium跨站请求伪造中级
注意: 1、这里对XSS(Stored)关卡不熟悉的可以从这里去看http://t.csdn.cn/ggQDK 2、把难度设置成 Medium 一、这一关同样我们需要埋下伏笔,诱使用户点击来提交,首先从XSS(Stored)入手。 注意:在前面介绍…...

【电商】后台订单生成
结合商品流转的电商系列介绍了一些了,商品已经采购入库、价格税率设置好了、活动及相关模板也已经准备完毕,下面就应该上架销售了,现在接着聊下订单的生成。 订单从产生到最终的关闭需要经历很多的环节,订单也是电商系统的核心数据…...

作为公司,这个5款在线软件工具赶紧安利起来!
2023年了 ,您的企业还没使用在线软件工具吗?自从用了在线工具之后,感觉打开了新办公世界的大门,效率蹭蹭蹭地往上涨啊。对于喜欢追求效率和便捷的我来说,在线实在是太棒了!今天安利几个非常不错的在线软件工…...

面试(七)为什么一般希望将析构函数定义为虚函数
class B { public:~B() // 基类析构函数不为虚函数{cout << "B::~B()" << endl;} };class D : public B { public:~D(){cout << "D::~D()" << endl;} };void Test(B* t) {delete t;t nullptr; }int main() {B *pb new B;Test…...
MySQL必会四大函数-时间函数
一、时间日期获取函数 获取当前日期(date)函数:curdate() mysql> select curdate(); 2023-02-09 获取当前时间(time)函数:curtime() select curtime(); 08:49:27 获取当前时间戳(date &…...

震惊!邻桌的程序猿做可视化报告竟然比我还快,带着好奇心我打开了他的电脑,发现惊天秘密,原因竟是...
其实,本文就是想分享一个做可视化的捷径! 制作可视化的方式有千千万。 Excel 控若能轻车熟路驾驭 VBA,能玩出各种花来,再不济借助图表插件外援也能秒杀一众小白选 手。 会编程的,Echarts 几十行代码,分分…...
mathtype7与word冲突,无法安装,不显示工具栏的问题解决
首先无法安装,或安装出错时,要清理注册表防止以后再次出现该问题,以此记录留作备份。打开注册表的方法是键盘winr键同时按(win就是Alt旁边像窗户图标的键),正常的话会跳出一个叫“运行”的家伙,…...

IBM AIX 升级Openssh 实现篇(编译安装)
升级成功佐证 !!!本文所有内容仅作参考,请在测试环境中具体测试完毕后才能应用于生产环境!!! [1]备份和恢复方案 开启telnet 服务,防止ssh 掉线后无法重连维护。在修复漏洞后关闭telnet。 备份该服务相关的所有文件,以便恢复。 root@TEST:/etc# vi inetd.conf #ftp…...

linux的睡眠框架及实现
睡眠 4 种模式:S2I (Suspend-to-Idle): 挂起系统,IO进入低功耗模式。需配置CONFIG_SUSPEND。Standby:执行S2I后,把AP (nonboot CPU) 离线。除了CONFIG_SUSPEND的支持外,还需要向suspend子系统注册ÿ…...

Java面试知识点
工作也有好些年了,从刚毕业到前几年看过无数的面试题,总想着自己写一个面试总结,随着自我认识的变化,一些知识点的理解也越来越不一样了。写下来温故而知新。很多问题可能别人也总结过,但是答案不尽相同,如…...
PTA Advanced 1159 Structure of a Binary Tree C++
目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 思路 代码 题目 Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, a binary tree can be un…...

CDN绕过技术总汇
注 本文首发于合天网安实验室 首发链接:https://mp.weixin.qq.com/s/9oeUpFUZ_0FUu6YAhQGuAg 近日HVV培训以及面试,有人问了CDN该如何绕过找到目标真实IP,这向来是个老生常谈的问题,而且网上大多都有,但是有些不够全面…...

算法训练营DAY51|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
本期是求子序列的新的一期,题目前两道有一些相似之处,思路差不多,第三道有一点难度,但并不意味着第一道没有难度,没有做过该类型题的选手,并不容易解出题解。 300. 最长递增子序列 - 力扣(Leet…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...