阅读笔记 | REFORMER: THE EFFICIENT TRANSFORMER

阅读论文:

Kitaev, Nikita, Łukasz Kaiser, and Anselm Levskaya. “Reformer: The efficient transformer.” arXiv preprint arXiv:2001.04451 (2020).

背景与动机

这篇论文发表较早,主要关注Transformer的效率问题。标准的Transformer模型在许多自然语言处理任务上取得了最先进的结果,但它在长序列上的训练和推理代价非常大。主要的计算和内存瓶颈在于自注意力机制中的点积注意力,其复杂度为 O ( L 2 ) \Omicron(L^2) O(L2),其中 L L L是序列长度。随着 L L L的增大,计算和内存需求急剧增加。因此,Transformer难以扩展到处理长序列的任务。

模型与方法

  1. 引入基于局部敏感哈希(LSH)的近似注意力机制,将自注意力的复杂度从 O ( L 2 ) \Omicron(L^2) O(L2)降低到 O ( L log ⁡ L ) \Omicron(L\log L) O(LlogL),大大减少了内存和计算需求。具体来说,文章首先使用随机投影作为敏感哈希函数。相似的query和key通过投影转换后可以映射到相同的哈希桶中。然后根据query和key的哈希值对序列进行排序。相似的query和key会聚集在一起。在排序后的序列上,将每个query块只与相邻的几个query块计算注意力。这样可以大约保证每个块内的query可以attend到相似的key。最后使用多轮不同的哈希函数和注意力计算,综合多个注意力输出,可以降低哈希误差。
  2. 使用17年别人提出的一个可逆残差网络取代标准的前馈和残差连接以减少内存占用。这允许在训练过程中只需保存每层的一个激活副本,而不是N个副本,其中N是层数。
  3. 将前馈网络中的激活拆分为多块分别处理,减小每层的内存占用。

实验

在拼写重复、机器翻译以及图像生成等多个任务上验证了Reformer的有效性。结果表明,Reformer模型比标准Transformer有相同的建模能力,但在长序列任务上速度更快,内存占用也少得多。例如,在64K词元的英文文本建模任务上,12层的Reformer只需要一个GPU就可以高效训练,而Transformer基本无法进行训练。

总的来说,Reformer是一个既高效又强大的长序列Transformer模型。它结合了可缩放的近似注意力机制与高效的网络结构,能够在单机单卡上处理长度达10万词元的任务,为Transformer的工业应用提供了可能性。

个人思考

  • 文章中实现更高效自注意力的方式是寻找近似方法进行替代,这对于后面的改进是有启发的,因为类似的替代并非只有一种。而且这类改进存在一个好处就是可以在用于电负荷时序预测模型中去带一个计算与存储效率的点,这也是前面阅读的所有时序预测论文都在关注的一个点。
  • 这篇论文也从网络结构方面对内存消耗进行了优化,对残差连接进行了优化。在Informer中也对结构进行了关注,具体是改进了decoder的自回归方式。可见结构方面进行考虑的优化也是大有可为的。此外,几个最近的Transformer时序预测模型在残差连接上基本没有考虑太多,用的是标准残差连接,可以将可逆残差连接放到里面试试效果。

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

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

相关文章

数据中台:数字中国战略关键技术实施

这里写目录标题 前言为何要建设数据中台数据中台建设痛点数据中台学习资料聚焦前沿,方法论体系更新与时俱进,紧跟时代热点深入6大行业,提炼实践精华大咖推荐,数字化转型必备案头书 前言 在数字中国这一国家战略的牵引下&#xff0…

测试基础|质量保障体系从1到N的思考

在2023年,重点构建了团队的质量保障体系,基本完成了从0到1的过程积累,也在多个不同的场合做了相关的分享,收获了很多同行给的建议和意见。今年的首个工作目标是把这套质量保障体系运营好,去覆盖更多的团队,完成从1到N的过程,让更多的团队从这个质量体系中获益,保障基本…

Node插件开发(1)-快速入门

在使用Electron开发客户端时,如果现有Node模块所提供的功能无法满足需求,我们可以使用C开发自定义的Node模块,也称插件(addon)。 Node.js插件的扩展名为.node,是二进制文件,其本质上是动态链接…

基于springboot+vue的响应式企业员工绩效考评系统(源码+论文)

文章目录 前言 一、功能设计 1 普通员工功能 2 主管功能 3 系统管理员功能 4 评分标准功能 5 PC端与手机端 6 制图 二、功能实现 普通员工 1普通员工登录 2公告板块 3日志板块 主管 1主管登录 2公告板块 3日志板块 4绩效评分板块 5个人信息板块 系统管理员…

TypeScript 日期格式化工具方法

工具方法 创建工具文件:util.ts /*** 获取时间并格式化函数* param M 格式模板 如: YYYY-MM-DD ...* param Time 可选传入时间参数 默认为 Now*/ export const getFormatDate (M: string, Time: Date | null | string | number null) > {let date: Date Tim…

在 Linux 环境下安装 Kibana

目录 一、Kibana 是什么 二、在 Linux 环境下安装 Kibana 1、下载安装包 2、解压 3、修改 Kibana的配置文件 config/kibana.yml 4、启动 5、浏览器登录 Kibana 6、测试查询 一、Kibana 是什么 Kibana 是通向 Elastic 产品集的窗口。 它可以在 Elasticsearch 中对数据进…

品牌推广的两种飞轮:非酋飞轮与欧皇飞轮

在品牌推广的世界里,存在着两种截然不同的飞轮效应,我们称之为“非酋飞轮”与“欧皇飞轮”。这两种飞轮象征着品牌发展的两种不同路径和策略,而迅腾文化则以其独特的“繁”的原则,巧妙地将这两种飞轮结合,助力品牌形成…

Linux安装JumpServer并结合内网穿透实现公网访问本地服务

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Kubernetes 学习总结(46)—— Pod 不停重启问题分析与解决

我们在做性能测试的时候,往往会发现我们的pod服务,频繁重启,通过kubectl get pods 命令,我们来逐步定位问题。 现象:running的pod,短时间内重启次数太多。 定位问题方法:查看pod日志 kubectl get event …

【Element】实现基于 Element UI el-tabs 的左右滑动动画

实现基于 Element UI el-tabs 的左右滑动动画 引言 在构建现代 web 应用时,为用户提供平滑的动画效果是提升用户体验的关键。本篇博客将详细介绍如何在使用 Vue 以及 Element UI 时,实现一个具有左右滑动效果的 tab 切换动画。 使用 el-tabs 创建 tab…

Flutter 中的 SliverGrid 和 GridView:区别与使用场景

在 Flutter 中,SliverGrid 和 GridView 都是用于展示网格布局的组件,但它们有着不同的特点和适用场景。本文将介绍它们之间的区别以及在实际开发中的使用场景。 SliverGrid 和 GridView 的区别 SliverGrid: SliverGrid 是 CustomScrollView …

第十五届蓝桥杯第三期模拟赛题单

目录 第一题: 第二题: 第三题: 第四题: 第五题: 第六题: 第七题 第八题 第九题 第十题 第一题 【问题描述】 请问 2023 有多少个约数?即有多少个正整数,使得 2023 是这个正整数的整数倍…

FolkMQ 是怎样进行消息的事务处理?

FolkMQ 提供了二段式提交的事务提交的机制(TCC 模型)。允许生产者在发送消息时绑定到一个事务中并接收事务的管理,以确保消息的原子性(要么全成功,要么全失败)。在 FolkMQ 中,事务是通过 MqTran…

1、EmlogCms代码审计

一、SQL注入 1、后台标签删除处存在1处sql注入 漏洞条件 ● 漏洞url: http://emlog6.0.com/admin/tag.php?actiondell_all_tag ● 漏洞参数:tag[xx] ● 是否存在限制:无 ● 是否还有其他条件:actiondell_all_tag,token复现 POST /admin…

撸chatgpt3.5 api backend-api 对接wxbot

功能是实现 web 转api 对接wxbot用, 直接上代码, 1.获取wss url def get_register_websocket():# 请求头url "https://chat.openai.com/backend-api/register-websocket"payload {}headers {Authorization: Bearer eyJhbGxxxxxxxxxxxxx…

docker的网络配置

文章目录 1、网络模式1.1、bridge模式(默认模式)1.2、host模式 2、bridge模式3、自定义网络 1、网络模式 Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用–net去指定,其他三种模式需要在创建容器时使用…

【力扣 - 最长连续数组】

题目描述 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出&…

Linux命令:uniq命令和wc命令

目录 1 uniq命令1.1 uniq简介1.2说明1.3案例1、默认输出2、输出重复行3、比较一行中的部分字符4、忽略大小写5、只显示唯一的行 2.4 uniq和sort命令配合使用1、文本统计2、统计IP连接数并排序 2 wc命令2.1 wc简介2.2 说明2.3 案例1、默认输出2、输出字节、字符数、单词数 总结 …

案例介绍:汽车维修系统的信息抽取技术与数据治理应用(开源)

一、引言 在当今汽车产业的快速发展中,软件已经成为提升车辆性能、安全性和用户体验的关键因素。从车载操作系统到智能驾驶辅助系统,软件技术的进步正在重塑我们对汽车的传统认知。我有幸参与了一个创新项目,该项目专注于开发和集成先进的汽…

关于 svg path 路径坐标 精度误差问题

<svg width"2838.739990" height"2482.179932" viewBox"0 0 2838.74 2482.18" fill"none" xmlns"http://www.w3.org/2000/svg" xmlns:xlink"http://www.w3.org/1999/xlink"><path id"矢量 12"…