9种高效提速的transformer魔改版本

Transformer目前已经成为人工智能领域的主流模型,应用非常广泛。然而Transformer中注意力机制计算代价较高,随着序列长度的增加,这个计算量还会持续上升。

为了解决这个问题,业内出现了许多Transformer的魔改工作,以优化Transformer的运行效率。我这次就给大家分享9篇对Transformer模型进行效率优化的改进文章,以方便大家更高效地使用模型,寻找论文创新点。

文章主要涉及4个方向:稀疏注意力机制、Transformer处理长文本、Transformer运行提效以及卷积Attention,原文及源码都已整理,需要的同学看文末

稀疏注意力机制

1.Longformer: The Long-Document Transformer

长文档Transformer

方法简述:Transformer-based models处理长序列时存在困难,因为它们的自注意力操作与序列长度呈二次方关系。Longformer通过引入一个与序列长度呈线性关系的注意力机制解决了这个问题,使其能够轻松处理数千个标记或更长的文档。Longformer在字符级语言建模方面表现优秀,并在各种下游任务上取得了最先进的结果。此外,Longformer还支持长文档生成序列到序列任务,并在arXiv摘要生成数据集上展示了其有效性。

2.Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting

增强局部性并打破Transformer在时间序列预测中的内存瓶颈

方法简述:时间序列预测是许多领域中的重要问题,包括太阳能发电厂能源输出、电力消耗和交通拥堵情况的预测。本文提出了使用Transformer来解决这种预测问题的方法。虽然初步研究表明其性能令人印象深刻,但作者发现它有两个主要缺点:局部性不敏感和内存瓶颈。为了解决这两个问题,作者提出了卷积自注意力和LogSparse Transformer,它们能够更好地处理局部上下文并降低内存成本。实验表明,这些方法在时间序列预测方面具有优势。

3.Adaptive Attention Span in Transformers

Transformers中的自适应注意力跨度

方法简述:论文提出了一种新的自注意力机制,可以学习其最优的注意力跨度。这使得我们可以显著扩展Transformer中使用的最大上下文大小,同时保持对内存占用和计算时间的掌控。作者在字符级语言建模任务上展示了该方法的有效性,在该任务中,作者使用最大8k个字符的上下文实现了在text8和enwiki8上最先进的性能。

Transformer处理长文本

1.Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

超越固定长度上下文的注意语言模型

方法简述:Transformers在语言建模中受到固定长度上下文的限制,作者提出了一种新的神经网络架构Transformer-XL,可以学习超过固定长度的依赖关系。它由一个段级别循环机制和一个新的位置编码方案组成,能够捕捉更长的依赖关系并解决上下文碎片化问题。该方法不仅在短序列和长序列上都取得了更好的性能,而且在评估期间比普通的Transformers快1,800+倍。

Transformer运行提效

1.REFORMER: THE EFFICIENT TRANSFORMER

高效的Transformer

方法简述:大型Transformer模型训练成本高,尤其是在长序列上。论文提出了两种技术来提高效率:使用局部敏感哈希替换点积注意力,将复杂度从O(L^2)降低到O(L log L);使用可逆残差层代替标准残差,允许只存储一次激活。由此产生的Reformer模型在长序列上表现相当,但更内存高效和更快。

2.RETHINKING ATTENTION WITH PERFORMERS

重新思考注意力机制:Performer模型

方法简述:论文介绍了Performers,一种Transformer架构,可以以可证明的准确性估计常规(softmax)全秩注意力Transformers,但仅使用线性空间和时间复杂度。为了近似softmax注意力核,Performers使用了一种新颖的快速注意通过正交随机特征方法(FAVOR+),并可以用于高效地建模可核化的注意力机制。

3.Linformer: Self-Attention with Linear Complexity

具有线性复杂度的自注意力机制

方法简述:大型Transformer模型在自然语言处理应用中表现出色,但长序列的训练和部署成本很高。本文提出一种新自注意力机制,将复杂度从O(n^2)降低到O(n),同时保持性能不变。由此产生的Linformer比标准的Transformer更节省时间和内存。

卷积Attention

1.Conformer: Convolution-augmented Transformer for Speech Recognition

用于语音识别的卷积增强Transformer

方法简述:Conformer是一种结合了卷积神经网络和Transformer的模型,用于语音识别。它能够同时捕捉音频序列的局部和全局依赖关系,并实现了最先进的准确率。在LibriSpeech基准测试中,Conformer在不使用语言模型的情况下实现了2.1%/4.3%的WER,在使用外部语言模型的情况下实现了1.9%/3.9%的WER。此外,它还具有竞争力的小模型,只有10M参数。

2.LITE TRANSFORMER WITH LONG-SHORT RANGE ATTENTION

具有长短范围注意力的轻量级Transformer

方法简述:本文提出了一种高效的移动自然语言处理架构Lite Transformer,它使用长短范围注意力(LSRA)来提高性能。LSRA将一组头专门用于局部上下文建模(通过卷积),另一组头则专门用于长距离关系建模(通过注意力)。在三个语言任务上,Lite Transformer始终优于普通的Transformer。在受限资源下,Lite Transformer比Transformer在WMT’14英法翻译任务上高出1.2/1.7 BLEU分数。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“魔改”领取全部提效方案原文及源码

码字不易,欢迎大家点赞评论收藏!

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

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

相关文章

互联网医院系统|互联网医院提高医疗资源的利用效率

越来越多患者掌握更多医疗知识并开始积极参与医疗决策过程。他们主动问诊,并开始明确表达治疗和支付方案偏好。同时,互联网医院、视频问诊、远程会诊等技术创新使线上问诊、多学科诊疗等新型医疗服务模式更加可及,互联网医院系统实际上与医院…

css3 初步了解

1、css3的含义及简介 简而言之,css3 就是 css的最新标准,使用css3都要遵循这个标准,CSS3 已完全向后兼容,所以你就不必改变现有的设计, 2、一些比较重要的css3 模块 选择器 1、标签选择器,也称为元素选择…

竞赛选题 深度学习的动物识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

使用select实现定时任务

selectOutOfTime.c里边的代码如下&#xff1a; #include<stdio.h> #include<sys/time.h> #include<sys/types.h> #include<unistd.h> #include <string.h>#define BUF_SIZE 100int main(void){fd_set reads;struct timeval tv;int errorNum;cha…

STM32H750之FreeRTOS学习--------(六)FreeRTOS的列表和列表项

六、FreeRTOS的列表和列表项 文章目录 六、FreeRTOS的列表和列表项列表相关结构体列表项相关结构体迷你列表项列表相关API函数介绍初始化列表vListInitialise()函数vListInitialiseItem()函数vListInsert()函数 vListInsertEnd()函数 uxListRemove() 列表就是一个双向链表&…

数据结构:串(定义,基本操作,存储结构)

目录 1.串的定义2.串的基本操作3.字符集编码4.串的存储结构1.顺序存储2.链式存储 1.串的定义 串&#xff0c;即字符串( String&#xff09;是由零个或多个字符组成的有限序列。 一般记为s ‘a1a2……an’ (n ≥0) 其中&#xff0c;S是串名&#xff0c;单引号括起来的字符序列是…

第 117 场 LeetCode 双周赛题解

A 给小朋友们分糖果 I 动态规划&#xff1a;设 p [ k ] [ i ] p[k][i] p[k][i] 为将 i i i 个糖果分给 k k k 个小朋友的方案数&#xff0c;先求 p [ 2 ] [ i ] p[2][i] p[2][i] &#xff0c;再求 p [ 3 ] [ n ] p[3][n] p[3][n] class Solution { public:using ll long …

Docker学习——⑧

文章目录 1、什么是 Docker Compose(容器编排)2、为什么要 Docker Compose&#xff1f;3、Docker Compose 的安装4、Docker Compose 的功能和使用场景5、Docker Compose 文件&#xff08;docker-compose.yml&#xff09;5.1 文件语法版本5.2 文件基本结构及常见指令 6、Docker …

【C#学习】串口编程

文章目录 第一步&#xff1a;加入串口控件第二步&#xff1a;加入模块第三步&#xff1a;编写相关函数功能获取所有串口资源设置和打开关闭串口发送字符串&#xff08;string&#xff09;发送byte检查串口状态接受byte查询所有可用串口 第一步&#xff1a;加入串口控件 第二步&…

csv文件导入mysql指定表中

csv文件导入mysql指定表中 mysql数据库准备指定表 准备导入的csv数据如下&#xff1a; sepaLengthsepalWidthpetalLengthpetalWidthlabel5.13.51.40.204.931.40.204.73.21.30.20…………… 准备导入的数据为151行5列的数据&#xff0c;其中第一行为标题行。 因此&#xff0…

栈的顺序存储实现(C语言)(数据结构与算法)

栈的顺序存储实现通常使用数组来完成。实现方法包括定义一个固定大小的数组&#xff0c;以及一个指向栈顶的指针。当元素入栈时&#xff0c;指针加一并将元素存储在相应位置&#xff1b;当元素出栈时&#xff0c;指针减一并返回相应位置的元素。 1. 顺序栈定义 #define MaxSi…

scDrug:从scRNA-seq到药物反应预测

scRNA-seq技术允许在转录组水平上对数千个细胞进行测量。scRNA-seq正在成为研究肿瘤微环境中细胞成分及其相互作用的重要工具。scRNA-seq也被用于揭示肿瘤微环境模式与临床结果之间的关联&#xff0c;并在复杂组织中剖析药物治疗的细胞特异性效应。scRNA-seq的最新进展推动了疾…

【unity】网格描边方法

【unity】网格描边方法 介绍对模型四边网格的三种描边方法&#xff1a;包括纯Shader方法、创建网格方法和后处理方法。于增强场景中3D模型的轮廓&#xff0c;使其在视觉上更加突出和清晰。这种效果可以用于增强三维场景中的物体、角色或环境&#xff0c;使其在视觉上更加吸引人…

【仿真动画】双机器人协作完成一个任务(切割)

场景 动画 两个机器人协同工作完成一个任务需要解决以下几个关键问题&#xff1a; 通信&#xff1a;两个机器人需要能够相互通信&#xff0c;以共享信息&#xff0c;例如位置、姿态、状态等。规划&#xff1a;需要对两个机器人的运动轨迹进行规划&#xff0c;确保两个机器人不会…

git 命令行回退版本

git 命令行回退版本 git 命令行回退版本命令: 1.切换到需要回退的分支 git checkout branch-v2.0.02.更新远程分支 git fetch3.找到需要回退版本的版本号git revert a6914da55ff40a09e67ac2426b86f1212e6580eb4.清除工作区缓存git clean -df5.强制提交git push -f

Blazor 附件上传和下载功能

效果图 page "/uploadFile" inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment WebHostEnvironment inject ToastService ToastService inject DownloadService DownloadService<h3>UploadFile</h3><Button OnClick"ButtonClick" C…

windows10上使用Visual Studio对树莓派进行交叉编译示例

本文主要介绍通过Visual Studio对树莓派进行交叉编译的方法。 1 环境 宿主机&#xff1a; 系统&#xff1a;Windows10 开发平台&#xff1a;Visual Studio 2022 (我用的是社区版) VisualGDB: VisualGDB - Download (我下的试用版本) GNU工具链: Prebuilt GNU toolchain f…

JVM及其垃圾回收机制(GC)

目录 一.JVM内存区域划分 二.JVM类加载机制 类加载过程 类加载的时机 双亲委派模型 三.JVM垃圾回收机制&#xff08;GC) GC工作过程 1.找到垃圾/判断垃圾 &#xff08;1&#xff09;引用计数【python/PHP】 &#xff08;2&#xff09;可达性分析【Java】 2.对象释放…

读写分离(基于mycat)和全同步复制

一、mycat实现读写分离&#xff08;VIP机制&#xff09; &#xff08;一&#xff09;配置主从复制 &#xff08;二&#xff09;部署mycat 1、安装Java 2、下载mycat安装包 3、解压mycat包 4、设置变量环境 5、启动mycat &#xff08;三&#xff09;客户端连接数据库 1、安装…

Git的进阶操作,在idea中部署gie

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; ​​ &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《git》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;这…