当前位置: 首页 > news >正文

斯坦福大学引入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.lryc.cn/news/241062.html

相关文章:

  • 信息系统项目管理师-干系人管理论文提纲
  • Windmill:最快的自托管开源工作流引擎
  • 线性代数 - 几何原理
  • 火电厂电气部分设计
  • 界面组件DevExpress Reporting v23.1 - Web报表设计器功能升级
  • 小程序Canvas 2D问题解决,如安卓drawImage不执行、动态高度设置、高度1365(或4096)限制等
  • 人工智能对网络安全的影响越来越大
  • JavaEE(SpringMVC)期末复习
  • 微服务保护 Sentinel
  • 【无标题】文本超过一行隐藏,鼠标经过显示提示框
  • 成为独立开发者有多难
  • C++ 正则表达式使用
  • VSCode任务tasks.json中的问题匹配器problemMatcher的问题匹配模式ProblemPattern详解
  • CSS 实现文本框签名
  • Spring 定时任务如何到达某一指定时间点后,触发任务机制
  • PDF Reader Pro 3.0.1.0(pdf阅读器)
  • 【rust:tauri-app踩坑记录】dangerousRemoteDomainIpcAccess 不适用于IP地址,临时解决方案
  • [Docker]八.Docker 容器跨主机通讯
  • 面试cast:reinterpret_cast/const_cast/static_cast/dynamic_cast
  • 致远M3 反序列化RCE漏洞复现(XVE-2023-24878)
  • Ubuntu安装CUDA驱动
  • 【MySQL】内连接和外连接
  • U盘启动制作工具Rufus
  • Ubuntu 22.04安装vscode
  • 计算机视觉的应用19-基于pytorch框架搭建卷积神经网络CNN的卫星地图分类问题实战应用
  • Java 获取本地ip网卡信息
  • 将kali系统放在U盘中插入电脑直接进入kali系统
  • 二十四、RestClient操作文档
  • 【Docker】从零开始:9.Docker命令:Push推送仓库(Docker Hub,阿里云)
  • Centos部署GitLab-备份恢复