文献阅读:Transformers are Multi-State RNNs

  • 文献阅读:Transformers are Multi-State RNNs
    • 1. 内容简介
    • 2. 方法介绍
      • 1. 基础回顾
        • 1. RNN
        • 2. Transformer
      • 2. Transformer解构
        • 1. MSRNN
        • 2. Transformer
      • 3. TOVA
        • 1. 现有转换策略
        • 2. TOVA
    • 3. 实验考察 & 结论
      • 1. 实验设计
      • 2. 实验结果
        • 1. LM
        • 2. 长文本理解
        • 3. 文本生成
      • 3. 细节考察
    • 4. 总结 & 思考
  • 文献链接:https://arxiv.org/abs/2401.06104
  • GitHub链接:https://github.com/schwartz-lab-NLP/TOVA

1. 内容简介

这篇文章是今年1月Meta发表的一篇对Transformer的解构工作。

它对Transformer进行了更深入的解析和考察,发现Transformer的self attention机制等价于一个无限状态的MSRNN(multi-state RNN),并在此基础上对MSRNN进行了优化,提出了一个TOVA的MSRNN压缩策略,使之效果超过了其他的MSRNN,并能够与Transformer本身相提并论。而在内存方面,则显著优于经典的Transformer模型。

在这里插入图片描述

下面,我们就来具体看一下文中对于Transformer的具体考察以及文中提出的TOVA方法究竟是怎样的一个设计思路。

2. 方法介绍

1. 基础回顾

在解构Transformer以及引入TOVA之前,文中首先回顾了一下RNN和Transformer本身,这里,为了保持文章在结构上的完整性,我们也简略的回顾一下RNN和Transformer本身。

1. RNN

首先的话,RNN的话是一个迭代的解构,模型本身维护一个隐态 h t h_t ht,然后根据输入 x t x_t xt进行迭代:

x t l + 1 , h t l = f ( x t l , h t − 1 l ) x_t^{l+1}, h_{t}^{l} = f(x_t^l, h_{t-1}^l) xtl+1,htl=f(xtl,ht1l)

2. Transformer

Transformer的话则是self-attention的解构,具体表达式如下:

X l + 1 = F F N ( A t t n ( X l ) ) = F F N ( S o f t m a x ( Q l ⋅ ( K l ) T ) ⋅ V l ) \begin{aligned} X^{l+1} &= \mathop{FFN}(\mathop{Attn}(X^l)) \\ &= \mathop{FFN}(\mathop{Softmax}(Q^l\cdot (K^l)^T) \cdot V^l) \end{aligned} Xl+1=FFN(Attn(Xl))=FFN(Softmax(Ql(Kl)T)Vl)

2. Transformer解构

有了上面的基础,我们来看一下文中是如何说明Transformer的本质就是一个无线state的MSRNN的。

我们将分两部分来说明这个问题:

  1. MSRNN是什么
  2. Transformer怎么对应到一个MSRNN

下面,我们来看一下文中对于这两个问题的回答。

1. MSRNN

首先,我们来看一下MSRNN是什么,本质上来说,MSRNN还是一个RNN,不过RNN当中的隐态是一个向量,而MSRNN则是用一个矩阵来替代向量,直观上理解就是有多个隐态,即multi-state。

用公式表达即为:

x t l + 1 , H t l = f ( x t l , H t − 1 l ) x_t^{l+1}, H_{t}^{l} = f(x_t^l, H_{t-1}^l) xtl+1,Htl=f(xtl,Ht1l)

2. Transformer

然后,我们再来看一下Transformer,如前所述,Transformer的每一个module可以写为:

X l + 1 = F F N ( S o f t m a x ( Q l ⋅ ( K l ) T ) ⋅ V l ) X^{l+1} = \mathop{FFN}(\mathop{Softmax}(Q^l\cdot (K^l)^T) \cdot V^l) Xl+1=FFN(Softmax(Ql(Kl)T)Vl)

我们可以将其重写为:

x t l + 1 = F F N ( S o f t m a x ( q t l ⋅ ( K t l ) T ) ⋅ V t l ) x_{t}^{l+1} = \mathop{FFN}(\mathop{Softmax}(q_t^l\cdot (K_t^l)^T) \cdot V_t^l) xtl+1=FFN(Softmax(qtl(Ktl)T)Vtl)

亦即:

x t l + 1 , ( K t l , V t l ) = f l ( x t l , ( K t l , V t l ) ) x_{t}^{l+1}, (K_t^l, V_t^l) = f^l(x_t^l, (K_t^l, V_t^l)) xtl+1,(Ktl,Vtl)=fl(xtl,(Ktl,Vtl))

因此,从定义式上来看,Transformer确实可以理解为无限维度的MSRNN。

3. TOVA

综上,我们已经可以发现,在形式上而言,Transformer可以视为一个无限state的MSRNN,但是无限state显然在实现层面并不现实,因此,要想要真正将其对应到MSRNN,我们需要一个无限维转换为有限维的转换策略。

文中的话也是首先讨论了一下现有的几个转换的方法,然后在此基础上提出了他们自己的转换方法,即他们所谓的TOVA方法。

下面,我们来具体看一下这两部分的内容。

1. 现有转换策略

首先,我们来看一下当前已有的一些无限维转有限维的策略,文中主要给出了三种方法:

  1. Window
    • 只保留最后k个token
  2. Window + i
    • 保留最后k个token以及头部的i个token
  3. H 2 O H_2O H2O
    • 保留最后k个token,然后动态通过attention score额外多保留i个token
2. TOVA

然后,我们来看一下文中提出的TOVA方法,其全称为Token Omission Via
Attention (TOVA),思路上其实也很直接,就是直接通过attention score选择attention score最高的k个token进行保留,文中给出示意图如下:

在这里插入图片描述

3. 实验考察 & 结论

下面,我们来考察一下文中的实验结果。

我们将分以下几个部分对文中的内容进行一下整理:

  1. 文中的实验设计
  2. 具体的实验结果
  3. TOVA的拆解实验

1. 实验设计

首先,我们来看一下文中的实验设计,主要包括两部分的内容:

  1. 具体采用的实验
  2. 实验中使用的模型

其中,关于文中具体采用的实验的话,主要是长文本上的实验,包括:

  1. LM的ppl考察
  2. 长文本的理解实验
  3. 文本生成任务

而关于文中使用的模型的话,文中主要使用了以下三类模型:

  1. LLama-2-7B
  2. Mistral-7B
  3. Yi-7B

2. 实验结果

下面,我们来看一下文中给出的具体实验结果。

1. LM

首先,关于Language Model的ppl,文中得到结果如下:

在这里插入图片描述

可以看到:

  • 在各类策略下,TOVA能够获得最好的效果表达,且在各个模型下都有一致的结论。
2. 长文本理解

文中关于长文本当中理解任务的实验结果则如下所示:

在这里插入图片描述

可以看到:

  • 无论是在长文本概括任务还是长文本QA任务当中,TOVA的效果都显著优于其他的转换策略。
  • 同样的,在长文本理解任务当中,TOVA同样在不同的模型当中都有一致的有效性表达。
3. 文本生成

最后,文中还在生成任务当中对TOVA的效果进行了一下考察,具体来说的话,就是令TOVA和GPT4分别进行生成,然后交给人来标注对比结果的好坏,得到结果如下:

在这里插入图片描述

可以看到:

  • 随着文本的增长,TOVA的效果逐步追上GPT4,说明TOVA在长文本下确实有效,且效果拔群。

3. 细节考察

然后,除了对于TOVA效果的基础考察,文中还对TOVA进行了细节的拆解,具体来说,主要就是考察了一下几个问题:

  1. TOVA保留的是哪些位置的token
  2. TOVA对于头部的token的留存度
  3. TOVA保留的具体是哪些token

文中得到的具体实验结果如下:

在这里插入图片描述

在这里插入图片描述

可以看到:

  • 在图7当中,每一行代表对应的step当中参与到生成当中的token,可以看到,整体来说,邻近的token会更重要,当这也不是必然的,有时候长程的token也会参与其中,反而是短程的会被过滤掉。
  • 从图8可以看到,前25个token都悲保留了很长的距离,且第一个token尤为关键;
  • 从图9可以看到,一些标点符号类型的token会被更倾向于保留下来。

4. 总结 & 思考

综上,文中对Transformer进行了一下结构上的解构分析,发现其本质上就是一个无限维的MSRNN,且通过一定的压缩策略,可以用一个有限维的MSRNN对其进行逼近。

基于此,文中给出了一个名为TOVA的压缩策略,碾压了当前已有的其他压缩策略,并在长文本当中的效果逼近了GPT4,而在batch size方面可以扩大8倍,即效率上可以比当前的Transformer结构更好。

这个还是非常厉害的,Meta感觉确实还是做了不少基础方面的工作,不过具体TOVA策略下的MSRNN能不能干掉Transformer估计现在也说不好,毕竟文中也没有给什么直接的比较,估计效果上还是有差。

后面再看看吧,看看能不能有什么工作能够最终干掉transformer框架吧。

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

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

相关文章

仗剑天涯路 侠气传千古《有翡》湖北热血开播

由吴锦源执导,赵丽颖、王一博领衔主演,张慧雯、陈若轩、孙坚、周洁琼、张昕宇、冷纪元主演的古装武侠剧《有翡》,将于2月25日晚19:30登陆湖北卫视长江剧场。该剧改编自Priest小说《有匪》,讲述了南北朝年间,各方势力盘…

modbus-tcp协议详解

本文参考:Modbus协议中文版【完整版】.pdf,加上自己的理解的记录,该文章主要讲modbus-TCP协议。(文档下载链接:【免费】modbus协议中文详细解释文档资源-CSDN文库) 本系列文章分为三章: 1.mod…

Stable Diffusion 绘画入门教程(webui)-ControlNet(深度Depth)

上篇文章介绍了线稿约束,这篇文章介绍下深度Depth 文章目录 一、选大模型二、写提示词三、基础参数设置四、启用ControlNet 顾名思义,就是把原图预处理为深度图,而深度图可以区分出图像中各元素的远近关系,那么啥事深度图&#xf…

【README 小技巧】在项目README.md 中展示发布到使用的JDK 版本

在项目README.md 中展示发布到使用的JDK 版本 <a target"_blank" href"https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html"><img src"https://img-home.csdnimg.cn/images/20230724024159.png?origin_urlhtt…

分布式知识整理

分布式锁 以商场系统超卖现象举例 超卖现象一 现象&#xff1a; 商品卖出数量超出了库存数量。 产生原因&#xff1a; 扣减库存的动作在程序中进行&#xff0c;在程序中计算剩余库存&#xff0c;在并发场景下&#xff0c;导致库存计算错误。 代码复现 es.shutdown(); cycl…

智慧应急与物联网相结合:物联网技术如何提升智慧应急响应能力

目录 一、引言 二、智慧应急与物联网技术的结合 三、物联网技术提升智慧应急响应能力的途径 四、物联网技术在智慧应急中的应用案例 五、物联网技术在智慧应急中面临的挑战与解决方案 挑战一&#xff1a;技术标准与规范不统一 解决方案&#xff1a; 挑战二&#xff1a;…

Linux之JAVA环境配置jdkTomcatMySQL

目录 一. 安装jdk 1.1 查询是否有jdk 1.2 解压 1.3 配置环境变量 二. 安装Tomcat&#xff08;开机自启动&#xff09; 2.1 解压 2.2 启动tomcat 2.3 防火墙设置 2.4 创建启动脚本&#xff08;设置自启动&#xff0c;服务器开启即启动&#xff09; 三. MySQL安装&#xff08;…

国漫年番成趋势?但只有这5部最值得看

自从《斗罗大陆》动画爆火之后&#xff0c;越来越多国漫都开始以年番形式播出&#xff0c;每周都能追自己喜欢的动画也是观众们所期待的。但其实年番对制作公司的要求很高&#xff0c;如果技术跟不上难免出现质量下滑的问题。今天就带大家盘点一下目前在播的最值得看的5部国漫年…

查看navicat保存的数据库连接密码

背景 经常使用navicat的朋友可能会碰到忘记数据库连接密码的情况&#xff0c;自然会想到navicat连接配置中就保存了密码。 个人经验&#xff0c;按以下步骤可查看密码明文 本人在mac上使用的navicat版本 1&#xff0c;导出connection_local.ncx 点击OK导出保存为connection_l…

基于频率增强的数据增广的视觉语言导航方法(VLN论文阅读)

基于频率增强的数据增广的视觉语言导航方法&#xff08;VLN论文阅读&#xff09; 摘要 视觉和语言导航&#xff08;VLN&#xff09;是一项具有挑战性的任务&#xff0c;它需要代理基于自然语言指令在复杂的环境中导航。 在视觉语言导航任务中&#xff0c;之前的研究主要是在空间…

Android RecyclerView 如何展示自定义列表 Kotlin

Android RecyclerView 如何展示自定义列表 Kotlin 一、前提 有这么一个对象 class DeviceDemo (val name: String, val type: String, val address: String)要展示一个包含这个对象的列表 bluetoothDevices.add(DeviceDemo("bb 9800", "LE", "32:…

Linux 内存管理概述(偏实战,略理论,附链接)

基础理论 1. 内存映射 可以参考&#xff1a; Linux内存映射 - 知乎 写的很详细&#xff0c;而且也有代码分析 2. 虚拟内存的空间分布 通过这张图你可以看到&#xff0c;用户空间内存&#xff0c;从低到高分别是五种不同的内存段。只读段&#xff0c;包括代码和常量等。数据段…

Unity学习之Unity中的MVC思想

文章目录 1 前言2 MVC的基本概念3 不使用MVC思想制作UI逻辑3.1 拼面板3.2 面板脚本3.3 角色面板逻辑3.4 角色升级 4 使用MVC思想制作UI逻辑4.1 Model数据脚本4.2 View界面脚本4.2.1 MainView主界面4.2.2 RoleView 角色面板界面 4.3 Controller业务逻辑脚本4.3.1 MainController…

使用openai-whisper实现语音转文字

使用openai-whisper实现语音转文字 1 安装依赖 1.1 Windows下安装ffmpeg FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。 # ffmpeg官网 https://ffm…

2024年2月20日v1.0.5更新·优雅草便民工具youyacao-tools

2024年2月20日v1.0.5更新优雅草便民工具youyacao-tools apk下载 https://fenfacun.youyacao.com/tools105.apk 介绍 优雅草便民工具是一款由成都市一颗优雅草科技有限公司打造的便民查询公益工具&#xff0c;2024年1月17日正式发布v1.0.0版本&#xff0c;本工具为了方便大众免…

互联网加竞赛 机器视觉opencv答题卡识别系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 答题卡识别系统 - opencv python 图像识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分…

力扣● 343. 整数拆分 ● 96.不同的二叉搜索树

● 343. 整数拆分 想不到&#xff0c;要勇于看题解。 关键在于理解递推公式。 1、DP数组及其下标的含义&#xff1a;dp[i]是分解i这个数得到的最大的乘积。 2、DP数组如何初始化&#xff1a;dp[0]和dp[1]都没意义&#xff0c;所以直接不赋值&#xff0c;初始化dp[2]1即可。…

golang通过http访问外部网址

不同项目之前,通过http访问,进行数据沟通 先设定一个接口,确认外部能访问到 PHP写一个接口 public function ceshi_return() {$data $this->request->param();$id $data[id];$res Db::name(user)->field(id,status,price,name)->where([id>$id])->find…

【大数据】Flink SQL 语法篇(四):Group 聚合

Flink SQL 语法篇&#xff08;四&#xff09;&#xff1a;Group 聚合 1.基础概念2.窗口聚合和 Group 聚合3.SQL 语义4.Group 聚合支持 Grouping sets、Rollup、Cube 1.基础概念 Group 聚合定义&#xff08;支持 Batch / Streaming 任务&#xff09;&#xff1a;Flink 也支持 G…

深度神经网络中的计算和内存带宽

深度神经网络中的计算和内存带宽 文章目录 深度神经网络中的计算和内存带宽来源原理介绍分析1&#xff1a;线性层分析2&#xff1a;卷积层分析3&#xff1a;循环层总结 来源 相关知识来源于这里。 原理介绍 Memory bandwidth and data re-use in deep neural network computat…