斯坦福大學引入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.pswp.cn/news/166253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166253.shtml
英文地址,請注明出處:http://en.pswp.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)沒有實現接口的對…