论文解读 | ICML2024:突破Transformer上下文学习中的瓶颈

点击蓝字

e9c1d41446ffaa0727a0e34d11e52c7a.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

作者简介

付靖文,西安交通大学博士生

简介

上下文学习,即从上下文示例中学习,是Transformer一项令人印象深刻的能力。然而,由于学习瓶颈的出现——在训练过程中模型的上下文学习能力几乎没有或没有提升的时期——训练Transformer具备这种上下文学习技能是计算密集型的。为了研究学习瓶颈背后的机制,我们在概念上将模型内部表征中一个完全受模型权重影响的组件分离出来,称之为“权重组件”,其余部分被识别为“上下文组件”。通过在合成任务上的精细和受控实验,我们注意到学习瓶颈的持久性与权重组件功能受损相关。认识到权重组件性能受损是推动学习瓶颈的基本行为,我们开发了三种策略来加速Transformer的学习。这些策略的有效性在自然语言处理任务中得到了进一步确认。总之,我们的研究表明,在AI系统中以环保方式培养强大的上下文学习能力是可行的。

论文地址:https://arxiv.org/pdf/2309.06054

AITIME

01

In-context Learning

上下文学习(in-context learning),即在提供一些上下文示例的情况下,期望网络模型能够通过这些示例学到相关信息,并应用于下游任务的预测。具体来说,在给定上下文示例和一个提示的前提下,希望模型能够准确地预测相应的结果。

2f12b86f041fa8b63185f144e01ad9f1.png

作者通过几个实例来展示这种能力:对于同一张输入图片,在不同的上下文示例下,模型的应对方式会自适应地有所不同。例如图(1),左侧的图片展示了计算结果,而右侧的图片则仅用于光学字符识别(OCR)。在文本翻译任务中,相同的文本在不同的上下文示例下,可以实现从英语到法语或从英语到中文的翻译。因而,上下文学习的核心在于期望模型能够通过提供的上下文示例,自适应地学习并调整其对给定输入的预测。

AITIME

02

Learning Plateaus

在研究了Pythia 13B模型的训练过程后,作者发现其学习准确性呈现出一种模式:在训练初期,模型的损失和性能基本不变,这段时期被称为“学习瓶颈期”(Learning Plateaus)。随后,模型性能会快速提升,这称为“过渡过程”(Transition Process)。本文的研究目标是探究导致学习平台期的因素,以及寻找可能的方法来缩短这段延迟期。

11ac454df30d6fc706e13405427d95d8.png

AITIME

03

Weights component and context component

e37d4e7ae84389f5c0c70b51f5aa6722.png

ec30f290ade0dee147804fa05336951d.png

AITIME

04

Synthetic Task

基于上述思路,作者设计了一个合成数据集来进行实验。由于在真实数据上分析非常困难,影响因素众多且难以控制,我们在可控环境下观察模型的表现。

具体而言,先为每张图片生成嵌入,并根据对应的标签进行预测。例如,在第一组数据中,希望模型预测物体的颜色;在第二组数据中,希望模型预测物体的形状。这样,当给定新数据时,模型应能自动调整其输出,例如预测出绿色或方形。

33692aeb695d254308cf294ae222c47a.png

实验结果显示,这种合成任务能够完美复现之前在Pythia 13B中观察到的现象,包括学习平台期和性能提升的过渡期。通过这种方法,可以更清楚地理解和优化上下文学习过程中不同因素的影响。

之前的研究仅从概念上对上下文学习过程的两个关键部分分解,但并未在物理上中实现。本文采用探测方法,通过观察中间表征来分析这两个部分。

对于“weights component”部分,不提供上下文示例,因为只期望观察在没有上下文示例情况下性能受影响的部分如何表现。通过不提供上下文示例进行探测,检查其中特征是否包含足够的语义信息,例如是否能预测形状、颜色等。

对于“context component”部分,预测它是否能够学习并识别当前任务是颜色分类还是形状分类。

f50309879fe8194160623c366967a3a4.png

e8ae9ae2ce0d07f53d2b8db66468cc7c.png

e46d6041227214ebb5d6eb1684a7c3ec.png

AITIME

05

Mechanism behind Learning Plateaus

在实验中,作者发现了一个有趣的现象:在处理最简单任务时,weights component在训练过程中持续上升。然而,当任务难度增加时,weights component却开始下降。相较而言,context和accuracy等其他指标则整体呈现上升趋势,特别是在简单任务中上升更快。显然,weights component的趋势与其他指标不同,它在简单任务中上升,而在困难任务中下降。

基于这个发现,作者进一步研究了整个难度区间内的weights component变化情况。在50个epoch时,作者观察到,随着任务难度的增加,weights component逐渐下降。尤其是在任务难度达到一定程度后,weights component的值甚至低于初始值。文中将这一现象描述为weights component的“失能”(disfunction)。

此外,本文还研究了weights component与learning plateau长度之间的关系。发现当weights component低于初始值时,learning plateau长度显著增加,大约在20到30之间波动。而当weights component高于初始值时,learning plateau长度大多在10以内。这个发现非常有趣,表明weights component的变化对learning plateau长度有显著影响。

e3ca9f8256b5b059894521f647f61ef3.png

AITIME

06

Breaking through the learning plateaus

本文为探究weights component的存在及其与学习表现的关系设计了三种调整方法试图缓解在上的学习停滞现象。

第一种为使用任务去预热网络,让网络能够学到较好的weights components 之后再转移到上。在简单任务中,我们观察到weights component会上升。由于weights component与上下文无关,因此它在任务难度变化时是共享的,可以互相转移。我们实验结果发现在转换后会出现性能快速快速上升的现象。这个结果表明weights component不仅真实存在,还与学习表现密切相关。通过以上方法,实现对weights component更好的理解和控制,以优化学习过程并缩短learning plateau的长度。

133bf36ed2c9d2990e652e73458a0d1b.png


第二种方法采用讲不同难度的集合混合训练的方法。我们发现这样的混合训练策略显著缓解了Learning Plateaus的发生。

接下来,作者首先设计了分别针对weights component和context component的损失函数。发现当试图提升context component时,对学习停滞现象并无显著改善,weights component相对于基准线也没有显著提升。然而,当提升weights component时,它显著缓解了学习停滞的问题。

AITIME

07

Simple Function Task

基于这一现象,作者将结论扩展至之前在标准任务中的常见现象,即Simple Function Task。该任务涉及对每个序列采样一个高斯分布的权重,然后采样一个x值,并根据线性函数生成其上下文示例。在训练过程中,先提供上下文示例,再给出一个新的查询,观察模型是否能准确预测对应的y值。

bbe1fe1d3363cd67a3606a37f9cd6e67.png

在评估weights component时,文中使用探针方法提取内部表征,观察它是否能回归输入本身。同样,在不提供上下文示例的情况下,观察其是否能自我回归。结果显示,weights component的值越低,表示性能越好。通过调整维度,作者发现当维度超过30时,weights component显著下降。

比较基线和使用实际损失的情况,发现当出现权重组件功能障碍时,额外的提升weights component的损失对准确率的提升非常显著;而在未出现权重组件功能障碍时,提升较为有限。这进一步证实了weights component与整体任务表现之间存在一定程度的因果关系。

AITIME

08

Extend to NLP tasks

在NLP数据集上进行的一系列实验验证了关于weights component和learning plateau的假设确实存在。

7b670e80136a51150c48bf25a0a23553.png

本篇文章由陈研整理

往期精彩文章推荐

0d4d346f4f2c9b01feca97cbd1a59eba.jpeg

ICML2024 | TimeSiam: 时间序列的孪生预训练方法

c404a514361feb098ff29d92feb2e0c9.png

点击 阅读原文 观看作者直播讲解!

记得关注我们呀!每天都有新知识!

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了1800多位海内外讲者,举办了逾600场活动,超700万人次观看。

eb0d4be59fbbb1f5e291f298f24a3aa2.png

我知道你

在看

提出观点,表达想法,欢迎

留言

46218899747d3f76ad549e136fd3a98e.gif

点击 阅读原文 观看作者直播讲解!

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

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

相关文章

移动UI:任务中心的作用,该如何设计更合理?

任务中心是移动应用中用于展示和管理用户待办任务、提醒事项、用户福利、打卡签到等内容的功能模块。合理设计任务中心可以提升用户体验和工作效率。 以下是一些设计任务中心的合理建议: 1. 易于查看和管理: 任务中心的设计应该使用户能够快速、直观地…

C# 实现跨进程条件变量

C# 进程通信系列 第一章 共享内存 第二章 条件变量(本章) 第三章 消息队列 文章目录 C# 进程通信系列前言一、关键实现1、用到的主要对象2、初始化区分创建和打开3、变量放到共享内存4、等待和释放逻辑 二、完整代码三、使用示例1、同步控制2、跨进程控…

202496读书笔记|《飞花令·菊(中国文化·古典诗词品鉴)》——荷尽已无擎雨盖,菊残犹有傲霜枝

202496读书笔记|《飞花令菊(中国文化古典诗词品鉴)》——荷尽已无擎雨盖,菊残犹有傲霜枝 《飞花令菊(中国文化古典诗词品鉴)》素心落雪 编著。飞花令得名于唐代诗人韩翃《寒食》中的名句“春城无处不飞花”&#xff0c…

KubeSphere核心实战_kubesphere全功能安装_启用kubesphere的热插拔插件---分布式云原生部署架构搭建037

然后我们开始安装kubesphere,首先进入官网点击kubernetes安装 可以看到对应的,条件说kubernetes要在1.20.x以上,我们的是 1.20.9,然后cpu硬件满足,然后,默认存储类型,上一节我们安装好了 然后就可以开始,去下载两个配置文件可以看到上面的两个配置文件 这两个文件,上面是直接…

跨域问题:预检请求

解决跨域问题之预检请求 预检请求(Preflight Request)是跨域资源共享(CORS)中用于安全检查的一种机制。 它是由浏览器自动发起的一个OPTIONS请求,目的是在实际跨域请求之前,询问服务器是否允许这次跨域操…

学习TS -类型

let a:number10;//数值型 let b:string"zhaoya";//字符串型 let c:booleantrue;//布尔类型 let d:10;//字面量 let e:any10;//任意类型,可以给别人赋值,而且不会提示报错 let f:unknown50;//未知类型,他给别人赋值,赋值…

kafka开启kerberos和ACL

作者:恩慈 一、部署kafka-KB包 1.上传软件包 依次点击 部署中心----部署组件----上传软件包 选择需要升级的kafka版本并点击确定 2.部署kafka 依次点击部署中心----部署组件----物理/虚拟机部署----选择集群----下一步 选择手动部署-…

消费金融系统开发回忆录

架构设计图 整个支付链路上的功能 支付系统应该有:账户管理、渠道管理、支付管理、对账管理、清算管理、结算管理 一笔支付订单,在支付系统侧就是要记录清楚,谁发起的、对哪个商品进行支付、通过哪个渠道支付、支付时间、支付结果等…

C++基础入门(二)(函数重载,引用,内联函数,nullptr)

目录 一. 函数重载 1. 概念 2. 实现 (1). 参数类型不同 (2). 参数个数不同 (3). 参数类型顺序不同 3. 注意事项 (1). 返回值不能作为重载的条件 (2). 不能仅按函数返回类型重载 (3). 与缺省参数的问题 二. 引用 1. 概念和定义 2. 引用的特性 (1). 引用在定义时必须…

LDR6020双盲插便携显示器应用

随着USB Type-C接口的普及,越来越多的手机和笔记本电脑都支持通过C接口输出视频。这个小巧而精密的接口,大有把传统的HDMI和DisplayPort接口取而代之的架势。特别是usb4的推出,更是为USB TYPE-C接口一统有线接口形态奠定了基础。 单USB-C接口…

python入门课程Pro(1)--数据结构及判断

数据结构及判断 第1课 复杂的多向选择1.if-elif-else2.if嵌套3.练习题(1)大招来了(2)奇数还是偶数(3)简洁代码 第2课 数据与判断小结1.变量2.格式化输出3.逻辑运算-或与非4.判断条件5.练习题(1&…

【手撕数据结构】拿捏双向链表

目录 链表介绍初始化链表销毁链表查找节点打印链表增加节点尾插头插在指定位置之后插入节点 删除节点尾删头删删除指定位置节点 链表判空 链表介绍 前面说到,链表的结构一共有八种:带头单向循环链表、带头单向非循环链表、带头双向循环链表、带头双向非…

【初阶数据结构】5.栈和队列

文章目录 1.栈1.1 概念与结构1.2 栈的实现2.队列2.1 概念与结构2.2 队列的实现3.栈和队列算法题3.1 有效的括号3.2 用队列实现栈3.3 用栈实现队列3.4 设计循环队列 1.栈 1.1 概念与结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操…

C语言宏定义格式化控制台打印

写了个简单的控制台打印代码&#xff0c;有三种打印级别 DEBUG INFO ERROR&#xff0c;支持颜色打印&#xff0c;支持时间打印 在MSVC环境中使用 #include <time.h> #include <string.h> #include <stdio.h>/* log level */ #define LOG_LEVEL_DEBUG (1) #d…

【STM32 HAL库】全双工I2S+双缓冲DMA的使用

1、配置I2S 我们的有效数据是32位的&#xff0c;使用飞利浦格式。 2、配置DMA **这里需要注意&#xff1a;**i2s的DR寄存器是16位的&#xff0c;如果需要发送32位的数据&#xff0c;是需要写两次DR寄存器的&#xff0c;所以DMA的外设数据宽度设置16位&#xff0c;而不是32位。…

一文带你读懂MLIR论文,理解MLIR设计准则.

论文MLIR: Scaling Compiler Infrastructure for Domain Specific Computation MLIR&#xff1a;针对特定领域计算扩展编译器基础设施 文章目录 论文MLIR: Scaling Compiler Infrastructure for Domain Specific Computation1. 论文下载2. TVM关于MLIR的讨论3. 论文正文0. 摘要…

02互联网行业的产品方向(2)

数字与策略产品 大数据时代&#xff0c;数据的价值越来越重要。大多数公司开始对内外全部数据进行管理与挖掘&#xff0c;将业务数据化&#xff0c;数据资产化&#xff0c;资产业务化&#xff0c;将数据产品赋能业务&#xff0c;通过数据驱动公司业务发展&#xff0c;支撑公司战…

Unity VR开发入门:探索虚拟现实世界的无限可能

目录 引言 Unity VR开发基础 1. 安装Unity与VR SDK 2. 创建VR项目 3. 理解VR场景结构 Unity VR开发实战 1. 场景搭建 2. 交互设计 创建C#脚本 编写VRInteractor脚本 应用脚本到场景 注意 修改VRInteractor脚本 3. 用户体验优化 4. 测试与调试 引言 随着科技的飞速…

docker: No space left on device处理与迁移目录

简介&#xff1a;工作中当遇到Docker容器内部的磁盘空间已满。可能的原因包括日志文件过大、临时文件过多或者是Docker容器的存储卷已满&#xff0c;需要我们及时清理相关文件&#xff0c;并对docker的路径进行迁移。 历史攻略&#xff1a; centos&#xff1a;清理磁盘空间 …

记录些MySQL题集(17)

一、MySQL索引为何使用B树结构&#xff1f; MySQL的索引机制中&#xff0c;默认使用BTree作为底层的数据结构&#xff0c;但为什么要选择B树呢&#xff1f;有人会说树结构是以二分法查找数据&#xff0c;所以会在很大程度上提升检索性能&#xff0c;这点确实没错&#xff0c;但…