斯坦福大学引入FlashFFTConv来优化机器学习中长序列的FFT卷积

斯坦福大学的FlashFFTConv优化了扩展序列的快速傅里叶变换(FFT)卷积。该方法引入Monarch分解,在FLOP和I/O成本之间取得平衡,提高模型质量和效率。并且优于PyTorch和FlashAttention-v2。它可以处理更长的序列,并在人工智能应用程序中打开新的可能性。

处理长序列的效率一直是机器学习领域的一个挑战。卷积神经网络(cnn)最近作为序列建模的关键工具获得了突出的地位,在从自然语言处理到计算机视觉和遗传学的各个领域都提供了一流的性能。尽管卷积序列模型具有卓越的品质,但在速度方面仍落后于Transformers 。

快速傅里叶变换(FFT)卷积算法,通过在频域内计算输入序列和核之间的卷积,可以解决上面卷积的问题。但是FFT卷积在执行时间方面有非常大的问题。

斯坦福大学的研究人员正在努力优化现代FFT卷积方法:

为较短序列优化FFT卷积是一种常见的做法,涉及跨多个批次重用内核滤波器和FFT的预计算。这种方法允许跨批处理和核的并行化,而核融合使中间卷积输出能够被有效地缓存。

但是随着序列长度的增长,出现了两个主要障碍。1、FFT卷积不能充分利用当代加速器中专用的矩阵-矩阵乘法单元。2、当序列超过SRAM的容量时,核融合因为需要昂贵的I/O操作变得不切实际。

而斯坦福大学的研究人员引入了FlashFFTConv,利用FFT的Monarch分解来优化扩展序列的卷积。这种分解将FFT重新想象为一系列矩阵-矩阵乘法运算,并选择分解顺序,表示为“p”。

这项研究提供了使用基于序列长度的直接成本模型来优化GPU中FLOP和I/O成本的“p”的见解。这种分解不仅有利于较长序列的核融合,而且还减少了必须驻留在SRAM中的序列数据量。FlashFFTConv可以有效地处理从256到惊人的400万个字符的序列。FlashFFTConv利用实值FFT算法并优化零填充输入的矩阵乘法操作,可以将FFT操作长度减少高达50%。

此外,FlashFFTConv还提供了一个通用的框架:部分卷积和频率稀疏卷积。这些技术类似于Transformers中的稀疏和近似注意力机制,可以显著降低内存使用和运行时间。

FlashFFTConv加速FFT卷积,可以提高卷积序列模型的质量和效率。对于相同的计算,它还可以实现指标的改进,例如Hyena-GPT-s的perplexity降低2.3,M2-BERT-base的平均GLUE分数提高3.3。这种性能提升类似于将模型的参数大小增加一倍。

FlashFFTConv在效率方面也很出色,与PyTorch相比,它提供了高达7.93倍的效率和高达5.6倍的内存节省。并且这些效率的提高在很长的序列长度范围内都持续存在。由于降低了FLOP成本,它在2K或更长时间序列的计算时间上超过了FlashAttention-v2,实现了高达62.3%的端到端FLOP使用率。

FlashFFTConv使模型能够处理更长的序列,打破了以前认为不可逾越的障碍。它已经完成了Path-512任务,这是一项序列长度为256K的高分辨率图像分类任务,并使用部分卷积将HyenaDNA扩展到惊人的400万序列长度。

斯坦福大学的FlashFFTConv在优化长序列的FFT卷积方面取得了非常巨大的进步。这项突破性技术有望重塑卷积序列模型的格局,提高它们的质量和效率。

以下是一些相关的信息:

https://avoid.overfit.cn/post/de29ba25d1c94218b1c9da494b5e58c3

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

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

相关文章

【Python百宝箱】Python中的音视频处理: 探索多样化的库和工具

Python中的音视频处理: 探索多样化的库和工具 前言 在数字化时代,音视频处理不仅仅是娱乐产业的需求,还渗透到了教育、医疗、安防等多个领域。Python作为一门强大而灵活的编程语言,为开发人员提供了丰富的资源来处理和分析音视频数据。本文…

SQL Server Profiler基础使用

文章目录 SQL Server Profiler基础使用简介如何打开直接打开Microsoft SQL Server Management Studio工具栏打开 配置跟踪新建跟踪跟踪属性配置常规配置事件选择 启动跟踪跟踪时执行脚本跟踪记录 暂停跟踪停止跟踪 SQL Server Profiler基础使用 简介 一个图形界面工具&#x…

逆矩阵相关性质与例题

1.方阵的行列式:就是将方阵中的每一个元素转换至行列式中。 1.性质一:转置方阵的行列式等于转置前的行列式。(对标性质:行列式与它的转置行列式相等) 2.性质二:|ka||a|*k的n次方,n为方阵阶数。 …

芯片设计—低功耗isolation cell

(一)低功耗isolation cell的目的 低功耗架构设计需要前后端拉通规划,前端设计有PMU功耗管理单元,比如A模块电压常开,B模块电压可关断,那么请思考,当B模块关断电压后,B模块输出到A模…

PDF控件Spire.PDF for .NET【转换】演示:将在 C#/VB.NET 中将 PDF 转换为 PCL

本文我们将演示如何通过调用 Spire.PDF 提供的方法 PdfDocument.SaveToStream() 将 PDF 页面转换为 HTML、Word、SVG、XPS、PDF 并将它们保存到流中。并且从Spire.PDF版本4.3开始,它新支持转换定义范围的PDF页面并将其保存到流中。 Spire.Doc 是一款专门对 Word 文…

精益制造中的周转箱和工具柜优势

制造业(Manufacturing industry)是指机械工业时代利用某种资源(物料、能源、设备、工具、资金、技术、信息和人力等),按照市场要求,通过制造过程,转化为可供人们使用和利用的大型工具、工业品与…

大语言模型概述(二):基于亚马逊云科技的研究分析与实践

上期介绍了大语言模型的定义和发展历史,本期将分析基于亚马逊云科技的大语言模型相关研究方向,以及大语言模型的训练和构建优化。 大语言模型研究方向分析 Amazon Titan 2023 年 4 月,亚马逊云科技宣布推出 Amazon Titan 大语言模型。根据…

redis运维(十七)事务

一 redis事务 事务核心参考 ① 基础概念 1、场景引入核心:通过现象思考原因? 2、事务的概念 3、事务四大特性说明: redis只具备部分特性 重点1: 原子性和一致性 重点2: 隔离性和持久性 ② redis的事务 1、基础铺垫备注&…

runapi的学习记录

安装地址 git clone https://github.com/star7th/showdoc.git 默认账号与密码 showdoc 123456 首页 访问地址:http://192.168.51.2:4042/web/#/ 进入ShowDoc首页 登录showdoc文档系统 http://192.168.51.2:4042/web/#/user/login 默认账号密码showdoc/12345…

unity Terrain 性能问题

在实践过程中unity发生进入场景GPU爆显存的情况,经过调查发现是使用Terrain造成的问题,这个问题在使用一个Terrain的时候并不会发生,但是在使用多个时会发生。 似乎在使用过程中Terrain会直接把Terrain的整个地图加载,造成移动设…

​ 一文带你了解多文件混淆加密

​🔒 一文带你了解多文件混淆加密 目录 🔒 一文带你了解 JavaScript 多文件混淆加密 ipaguard加密前 ipaguard加密后 ​ 🔒 一文带你了解 JavaScript 多文件混淆加密 JavaScript 代码多文件混淆加密可以有效保护源代码不被他人轻易盗取。…

关闭vscode打开的本地服务器端口

vscode开了本地的一个端口“8443”当本地服务器端口,然后随手把VScode一关,后来继续做发现8443端口已经被占用了。   原来,即便关闭了编译器VScode,服务器依然是被node.exe运行着的。那这个端口怎么才能关掉呢?   …

Kotlin基础——Lambda和函数式编程

Lambda 使用 { } 定义Lamba,调用run运行 run { println(1) }更常用的为 { 参数 -> 操作 },还可以存储到变量中,把变量作为普通函数对待 val sum { x: Int, y: Int -> x y } println(sum(1, 2))maxBy()接收一个Lambda,传…

EXIT外部中断 HAL库+cubeMX

一.cubeMX外部中断配置 1.系统内核 2.中断管理 3.选择抢占优先级和响应优先级,共有5个等级,在这里就使用库函数编写代码时最常用的2位抢占优先级2位响应优先级。 4.勾选使能选项,后面的两个零,第一个代表抢占优先级的等级&#xf…

用于计算机屏幕安全摄像头系统:Screen Anytime Crack

Screen Anytime 是一款软件,旨在自动将整个用户会话或 PC/服务器/VM/Kiosk 的 /RDP/Citrix/RemoteApp 会话的屏幕活动记录到视频日志文件中,以用于记录、审核和监控目的。通过重播其高度压缩的视频,您可以轻松回顾单台计算机或一组服务器/PC …

基于C#实现并查集

一、场景 有时候我们会遇到这样的场景,比如:M{1,4,6,8},N{2,4,5,7},我的需求就是判断{1,2}是否属于同一个集合,当然实现方法有很多,一般情况下,普通青年会做出 O(MN)的复杂度,那么有没有更轻量级的复杂度呢…

Vatee万腾科技的独特力量:Vatee数字时代创新的新视野

在数字化时代的浪潮中,Vatee万腾科技以其独特而强大的创新力量,为整个行业描绘了一幅崭新的视野。这不仅是一场科技创新的冒险,更是对未来数字时代发展方向的领先探索。 Vatee万腾将创新视为数字时代发展的引擎,成为推动行业向前的…

ubuntu 安装python3.13

列出 /usr/bin/ 目录下所有以 python 开头的文件和目录 ls /usr/bin/python* 添加Python软件源。您可以通过以下命令将Python的软件源添加到您的系统中 sudo add-apt-repository ppa:deadsnakes/ppa 然后运行以下命令以更新软件包列表: sudo apt-get update 安…

vue每个阶段的生命周期做了什么

Vue 实例的生命周期可以分为创建阶段、挂载阶段、更新阶段和销毁阶段。下面是每个阶段具体干了什么的说明和对应的代码示例: 创建阶段 beforeCreate: 此阶段在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用…

Spring AOP 底层原理

Spring AOP 底层原理 aop 底层是采用动态代理机制实现的:接口实现类 (1)如果要代理的对象,实现了某个接口,那么 Spring AOP 会使用 JDK Proxy,去创建代理对象。 (2)没有实现接口的对…