Why Can GPT Learn In-Context?

news2024/11/18 14:49:50

Why Can GPT Learn In-Context?

Language Models Secretly Perform Gradient Descent as Meta-Optimizers

为什么GPT能够在In-context的环境中进行学习呢?Language Models能够像Meta-Optimizer一样秘密地执行梯度下降。

这篇文章的作者来自清华、北大,代码发布在 https://github.com/microsoft/LMOps

Abstract

motivation:

Large pertrained Language models have shown surprising In-Context Learning ability.

To better understans how ICL works, this paper explains language models as meta-opetimizers and understands ICL as a kind of implicit finetuning.

这篇文章的发现:

Theoretically, we figure out that the Transformer attention has a dual form of gradient descent based optimization. 从理论上,作者发现Transformer的注意力机制同时具有基于梯度下降优化的双重形式。

在这里理论的基础上,作者认为GPT ①首先通过一些示例样例来构造meta-gradients ② 然后将这个meta-gradients应用在原始的GPT上,构造一个ICL model。

  1. a pretrained GPT serves as a meta-optimizer;
  2. it produces meta-gradients according to the demon stration examples through forward computation;
  3. the meta-gradients are applied to the original language model through attention to build an ICL model.

image-20230112154242719

在实验上:

作者比较了ICL和显式地fine-tuning。结果是它们的表现在 prediction level、representation level、attention behavior level上相似。

🤔 这里引出了一个思考的问题,既然两种方法的结果相似,为啥要用ICL呢?

当然是有必要的,这篇文章的主要目标是提出了一种理解GPT学习In-context的原因。基于这种深层次的理解,即,既然GPT本质上是构造了一个meta-gradient,那是不是可以使用momentum控制这个gradient,就好像基于动量的梯度下降算法一样,这个是本文的一个重要贡献:

Further, we attempt to take advantage of our understanding of meta-optimization for model designing. To be specifific, we design a momentum based attention, which regards the attention values as meta-gradients and applies the momentum mechanism to them. Experiments on both language modeling and in-context learning show that our momentum-based attention consistently outperforms vanilla attention, which supports our understanding of meta-optimization again from another aspect.

😀 这里有一个问题,我们可以去思考一下,GPT learn in-context时学习了meta-gradient,那这样的理解能不能引入模块化呢?

  1. 如果我们把GPT当做一个meta-optimizer,那其在一些logic reasoning数据的能力上必然不能达到一些模块化设计的结构上要好。所以我们可以尝试在一些具有更高logic reasoning能力的LLM来实现这一过程。

    1. 按照这个思路走,那motivation是什么?怎么编写这个
  2. 在这篇文章中,作者将Transformer应用在meta-learning中,或者是in-context learning中,作者将ICL理解为一种隐式的meta-train的过程。 在General purpose in-context learning by meta-learning transformers这篇文章中,作者研究了在Transformer中进行in-context learning时,they show that the capabilities of meta-trained algorithms are bottlenecked by the accessible state size (memory) determining the next prediction, unlike standard models which are thought to be bottlenecked by parameter count.

    1. 这么看来,General purpose in-context learning by meta-learning transformers这篇文章与目前的这篇文章的理解实际上并不是冲突的,可以使用那篇文章提出的观点来优化这篇文章中所提到GPT learn in-context时的能力。通俗一点就是,gpt在learn In-context时得到了meta-gradient,而这个meta-gradient的计算在更大的accessible memory下具有更好的性能,这并不冲突。
    2. 那继续沿用这这个思考,在LLM中,对于示例样例的计算会得到一组gradient,那这个gradient在一些logic reasoning的任务上,如果不加入一些模块化的设计,必然在逻辑推理任务上不能取得一些比较好的效果。
    3. 我们可以在训练GPT时添加模块化的结构、如Compositional Transformer、shared global workspace、shared global key-value codebook。加入这些元素可能会提升meta-learning在推理任务上的性能。
    4. 讲故事就可以这样讲,为了提升meta-learning在推理任务上的性能,所以我们提出了这篇文章中的结构。
      1. 但是要保证本文涉及的结构能够超过meta-learning with only modular、without modular.
  3. 作者把ICL当做一种隐式的finetuning,这对我有什么启发呢?

    1. 既然ICL可以当做一种隐私的finetuning,那是不是就可以不通过finetuning来更新梯度了,而是在数据的输入方下功夫,让其具有更好的效果。
    2. 如果ICL可以当做一个隐式的finetuning的话,那我们可以应用在finetuning中的一些方法来提升ICL中的性能。
      1. 增加样本量
  4. 作者还认为ICL本质上是通过attention机制中的keys和values来计算得到了梯度的值,这个值可以当做meta-gradient,所以可以当做隐式地计算了梯度的信息。

    1. 引用这篇文章的一句话:We have fifigured out the dual form between Transformer attention and gradient descent based optimization.

    2. 所以这篇文章受这个发现的启发,作者打算将一个常用于优化算法的技术——momentum应用在Transformer的attention中。

      1. 作者首先在language model中训练得到了MoAttn,取得了与vanilla Transformer一致的效果。

      2. 接下来作者将上述训练得到的language model在in-context learning中进行实验,得到了结果要比baseline要好,

        1. 印证了作者对Transformer keys、values本质上是计算前向的梯度值的假设
  5. 这篇文章是对meta-optimizer的一个新的理解,将meta-optimizer当做finetuning。即,这篇文章的目的是帮助in-context learning得到一个更好的发展。

Introduction

ICL与finetuning之间的区别?

Different from finetuning which needs additional parameter updates, ICL just needs several demonstration examples prepended before the original input, and then the model can predict the label for even unseen inputs.

finetuning 是需要利用一些下游任务的数据进行retrain,而ICL仅仅需要在原始数据之前输入一些示例样例。

Dual Form Between Gradient Descent Based Optimization and Attention

这篇文章将一个线性层通过梯度下降算法进行优化的过程定义为下面两种式子:

在反向传播算法中, △ W = ∑ i e i ⨂ x ′ i T \bigtriangleup W = \sum_ie_i\bigotimes {x'}_i^T W=ieixiT,也就是说 △ W 是 \bigtriangleup W 是 W根据一系列的历史输入和相应输出所对应的梯度计算的。

F ( x ) = ( W 0 + △ W ) x F(x) = (W_0 + \bigtriangleup W) x F(x)=(W0+W)x

F ( x ) = W 0 x + L I n e a r A t t n ( E , X ′ , x ) F(x) = W_0x + LInearAttn(E, X', x) F(x)=W0x+LInearAttn(E,X,x)

In-Context Learning(ICL)本质上执行了一个隐式的Finetuning。

在3.1章,作者对Transformer Attention as Meta-Optmization进行了一些证明,证明过程没看懂。

In summary, we explain ICL as a process of meta-optimization:

(1) a Transformer-based pretrained language model serves as a meta-optimizer;

(2) it produces meta-gradients according to the demonstration examples through forward computation;

(3) through attention, the meta-gradients are applied to the original language model to build an ICL model.

作者将ICL与Finetuning进行了比较

在Finetuning阶段有一些特别的设计,因为在3.1章节中证明了ICL只对keys和values产生了影响,所以在finetuning阶段时只对keys、values所对应的投影进行更新

为了更公平的进行比较:

但是我觉得这个设定是不是要求地太高了,因为在

  1. 指定训练数据只能是在ICL中用到的数据
  2. 对每个在ICL中出现的数据按照顺序只训练一次。
  3. 使用与ICL相同的template

作者organize many common properties from following four aspects:

从这下面四个特点,作者认为ICL是一种隐式的finetuning

  • Both Perform Gradient Descent
    • 在ICL中的梯度和FT中的梯度,都可以被当做梯度下降
    • 唯一不同的是,在ICL中是通过正向计算得到了meta-gradients,而在Finetuning中是通过back-propagation得到了真正的梯度信息,但他们都是作为了梯度的功能使用。The only difference is that ICL produces meta-gradients by forward computation while fifinetuning acquires real gradients by back propagation.
  • Same Training Information
    • 相同的训练信息
  • Same Causal Order of Training Examples
    • 相同的因果顺序
  • Both Aim at Attention
    • 在ICL中,只对keys、values进行计算
    • 在这篇文章限制的finetuning中,也只是对keys、values的投影矩阵进行update

最后

与这篇文章相近的一些文章是:

Same work, published earlier: “Transformers learn in-context by gradient descent” https://arxiv.org/pdf/2212.07677.pdf

🤔 既然这篇文章的作者将ICL当做meta-optimizer。而在ICL中的一个比较重要的挑战是不能输入太多的样例。那我们是不是可以多输入几组样本,然后将多组输出信息进行聚合,以获得更好的梯度计算结果呢?

要想将模块化引入到这篇文章中来,首先要问的问题是,ICL能不能很好的解决reasoning的问题、OOD的问题(System2)

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

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

相关文章

Silane-PEG-COOH,硅烷-聚乙二醇-羧基结构式及相关应用介绍

英文名称:Silane-PEG-acid;Silane-PEG-COOH 中文名称:硅烷-聚乙二醇-羧基 分子量:1k,2k,3.4k,5k,10k,20k。。。 存储条件:-20C,避光&#xff0…

AI入门| 机器学习和深度学习傻傻分不清?

(本文阅读时间:5分钟)目前,人工智能主流的支持技术是机器学习和深度学习。二者有什么异同呢?文末为你揭晓!在了解机器是怎么学习之前,我们先来回顾一下人类自己的学习过程。人类是如何学习的&am…

二叉树的基本操作

目录 一、二叉树遍历 1、前序遍历: 动态图解析: 2、中序遍历: 3、后序遍历: 4、层序遍历 (利用队列) 动态图解析: 二、统计二叉树的节点个数: 1、二叉树总节点…

【OpenAI】基于 Gym-CarRacing 的自动驾驶项目 | 车道检测功能的实现 | 边缘检测与分配 | 样条拟合

限时开放,猛戳订阅! 👉 《一起玩蛇》🐍 💭 写在前面: 本篇是关于多伦多大学自动驾驶专业项目的博客。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D…

【High 翻天】Higer-order Networks with Battiston Federico (7)

目录传播与社会动力学(1)传播simplicial complexeshypergraphs传播与社会动力学(1) 模拟人类行为的动态过程一直是许多研究的焦点,其中社会关系和交互通常被认为是一种潜在结构,是高阶方法的天然试验场。 …

广告业务系统 之 框架沉淀 —— “数据消费型服务框架”

文章目录广告业务系统 之 框架沉淀 —— “数据消费型服务框架”数据消费型服务统一框架主流程Plugin 构建广告业务系统 之 框架沉淀 —— “数据消费型服务框架” 数据消费型服务统一框架 由于 ADX 系统中,大量数据以流式涌动,整个链路中出现了 “多处…

MMCME4_ADV与PLL4_ADV原语

MMCM与PLL ​ UltraScale器件中时钟管理模块(CMT)包含mixed-mode clock manager (MMCM) 和phase-locked loops (PLLs) 。PLL主要用来生成I/O时钟,也包含一部分MMCM的功能。 ​ 其中MMCM输出时钟相位调整语VCO频率相关。 MMCME4_ADV原语 ​ MMCM原语包含MMCME3_B…

2023年最新版Java入门教程,一套很哇塞的Java基础课

所谓天道好轮回,鬼畜饶过谁。最近B站学习区也沦陷了,由此诞生出了一种让人闻所未闻的冷概念:鬼畜教学法!这种奇怪的组合让人匪夷所思,但架不住网友们的推荐!!!爱嘤嘤嘤斯坦:早看到这些视频,妈妈就再也不用担…

东南亚跨境电商迅猛发展,商机转瞬即逝!

2022年中国跨境电商进入了转型调整期,前几年高歌猛进的发展势头似乎有所减弱。回顾2022年,跨境电商卖家们都表示心情复杂,过去一年,卖家们经历许多大事件,比如9月份拼多多强势推出Temu奔向北美市场,10月份字…

Linux权限和粘滞位

目录 一.权限概念 二.用户分类 三.文件权限 1.执行操作的人的分类 2.文件类型和访问权限(事物属性) 03.文件权限值的表示方法 四.目录权限与粘滞位 一.权限概念 操作系统用来限制对资源访问的机制,一件事情是否可以被“谁”做&#x…

【观察】浪潮信息龙蜥联合实验室:打造下一代操作系统,筑牢基础软件创新根基...

毫无疑问,在当今世界日益复杂的竞争环境下,随着中国企业数字化转型的加速和自主创新进程的加快,再加上开源和云计算已成为行业发展的大趋势之下,如何在“变局中开新局”?如何解决中国在核心基础软件领域面临的各种挑战…

Java语法七:文件操作---IO

目录 1.File概述 1.1:File概述的方法 2:文件内容的读写 2.1:字节流 2.1.1:读--InputStream 2.1.2:写---OutputStream 2.2:字符 前言: 这一篇我们将讲文件操作的相关方法,以及…

详解Reflect:Reflect和Object的异同,Reflect的一些内置方法以及方法注意点

Reflect Reflect拥有Object对象的一些内部方法,某些方法会同时在Object对象和Reflect对象上部署,也就是说Object对象上存在的方法,通过Reflect也可以访问到。 单论Reflect的话,可以这么理解,Reflect就是继承了Object的…

C语言学习前序 - VS Code安装

要想学习一门编程语言,首先要有一个好的编程工具,推荐大家使用VS Code。 截止到现在,是我最喜欢的代码编辑工具。 工具下载。 官网地址:https://code.visualstudio.com/ 开始下载了,但是很慢很慢。 下载很慢可以直…

【Leetcode面试常见题目题解】4. 盛最多水的容器

题目描述 本文是LC第11题:盛最多水的容器。 题目描述如下: 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多…

.Net 线程安全 (细粒度锁定、无锁机制以及lock)

.Net 线程安全最省事的lock关键字线程安全对象测试环境例子使用Queue源码和结果运行效果使用ConcurrentQueue的源码和结果运行效果volatile关键字易失性内存和非易失性内存的区别易失性内存:非易失性内存:volatile 关键字可应用于以下类型的字段&#xf…

<C++>AVL数

文章目录1. AVL树的概念2. AVL树节点的定义3. AVL树的插入4. AVL树的旋转5. AVL树的验证6. AVL树的性能1. AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素&#xff0…

MySQL中alter命令知识

MySQL中alter命令知识 文章目录MySQL中alter命令知识(一) 删除、添加、修改字段1、删除表中的字段数据2、添加新字段指定字段插入位置3、修改字段类型和名称(二)、修改表名(三)、修改存储引擎创建copy_emp表,便于后面案…

Prompt Learning 简介

最近去参会,看到了大量关于Prompt相关的论文,或者说跟NLP NLU相关的新论文或多或少都使用到了Prompt learning的一些思想或者设置。由于本人主业不是是做NLP的,所以对NLP顶会的这一现象觉得很有意思,趁闲暇学习了一下Prompt learn…

对话 BitSail Contributor | 姚泽宇:新生火焰,未来亦可燎原

2022 年 10 月,字节跳动 BitSail 数据引擎正式开源。同期,社区推出 Contributor 激励计划第一期,目前已有 12 位开发者为 BitSail 社区做出贡献,成为了首批 BitSail Contributor。 江海的广阔是由每一滴水珠构成的,Bi…