一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

讓Attention提速9倍!FlashAttention燃爆顯存,Transformer上下文長(zhǎng)度史詩(shī)級(jí)提升

智能感知與物聯(lián)網(wǎng)技術(shù)研究所 ? 來(lái)源:未知 ? 2023-07-24 16:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FlashAttention新升級(jí)!斯坦福博士一人重寫(xiě)算法,第二代實(shí)現(xiàn)了最高9倍速提升。

繼超快且省內(nèi)存的注意力算法FlashAttention爆火后,升級(jí)版的2代來(lái)了。FlashAttention-2是一種從頭編寫(xiě)的算法,可以加快注意力并減少其內(nèi)存占用,且沒(méi)有任何近似值。比起第一代,F(xiàn)lashAttention-2速度提升了2倍。

甚至,相較于PyTorch的標(biāo)準(zhǔn)注意力,其運(yùn)行速度最高可達(dá)9倍。

一年前,StanfordAILab博士Tri Dao發(fā)布了FlashAttention,讓注意力快了2到4倍,如今,F(xiàn)lashAttention已經(jīng)被許多企業(yè)和研究室采用,廣泛應(yīng)用于大多數(shù)LLM庫(kù)。如今,隨著長(zhǎng)文檔查詢、編寫(xiě)故事等新用例的需要,大語(yǔ)言模型的上下文以前比過(guò)去變長(zhǎng)了許多——GPT-4的上下文長(zhǎng)度是32k,MosaicML的MPT上下文長(zhǎng)度是65k,Anthropic的Claude上下文長(zhǎng)度是100k。但是,擴(kuò)大Transformer的上下文長(zhǎng)度是一項(xiàng)極大的挑戰(zhàn),因?yàn)樽鳛槠浜诵牡淖⒁饬拥倪\(yùn)行時(shí)間和內(nèi)存要求,是輸入序列長(zhǎng)度的二次方。Tri Dao一直在研究FlashAttention-2,它比v1快2倍,比標(biāo)準(zhǔn)的注意力快5到9倍,在A100上已經(jīng)達(dá)到了225 TFLOP/s的訓(xùn)練速度!

35a61e38-29ff-11ee-a368-dac502259ad0.png

論文鏈接:https://tridao.me/publications/flash2/flash2.pdf

項(xiàng)目鏈接:

https://github.com/Dao-AILab/flash-attention

35c3cc6c-29ff-11ee-a368-dac502259ad0.png ?

FlashAttention-2:更好的算法、并行性和工作分區(qū)

端到端訓(xùn)練GPT模型,速度高達(dá)225 TFLOP/s

雖說(shuō)FlashAttention在發(fā)布時(shí)就已經(jīng)比優(yōu)化的基線快了2-4倍,但還是有相當(dāng)大的進(jìn)步空間。比方說(shuō),F(xiàn)lashAttention仍然不如優(yōu)化矩陣乘法(GEMM)運(yùn)算快,僅能達(dá)到理論最大FLOPs/s的25-40%(例如,在A100 GPU上的速度可達(dá)124 TFLOPs/s)。

35de6e1e-29ff-11ee-a368-dac502259ad0.png

▲ GEMM如何用于卷積在過(guò)去的幾個(gè)月里,研究人員一直在開(kāi)發(fā)FlashAttention-2,它的性能指標(biāo)比第一代更強(qiáng)。研究人員表示,2代相當(dāng)于完全從頭重寫(xiě),使用英偉達(dá)的CUTLASS 3.x及其核心庫(kù)CuTe。從速度上看,F(xiàn)lashAttention-2比之前的版本快了2倍,在A100 GPU上的速度可達(dá)230 TFLOPs/s。當(dāng)使用端到端來(lái)訓(xùn)練GPT之類的語(yǔ)言模型時(shí),研究人員的訓(xùn)練速度高達(dá)225 TFLOPs/s(模型的FLOP利用率為72%)。

對(duì)注意力計(jì)算重新排序

我們知道,F(xiàn)lashAttention是一種對(duì)注意力計(jì)算進(jìn)行重新排序的算法,利用平鋪、重新計(jì)算來(lái)顯著加快計(jì)算速度,并將序列長(zhǎng)度的內(nèi)存使用量從二次減少到線性。

3657c5d4-29ff-11ee-a368-dac502259ad0.png

研究人員將輸入塊從HBM(GPU內(nèi)存)加載到SRAM(快速緩存),并對(duì)該模塊執(zhí)行注意,更新HBM中的輸出。由于沒(méi)有將大型中間注意力矩陣寫(xiě)入HBM,內(nèi)存的讀/寫(xiě)量也跟著減少,進(jìn)而帶來(lái)了2-4倍的執(zhí)行時(shí)間加速。下圖是FlashAttention的前向傳遞圖:通過(guò)平鋪和softmax重新縮放,研究人員人員按模塊進(jìn)行操作,避免從HBM讀取或是寫(xiě)入,同時(shí)獲得正確輸出,無(wú)需近似。369d1f26-29ff-11ee-a368-dac502259ad0.png

然而,F(xiàn)lashAttention仍然存在一些低效率的問(wèn)題,這是由于不同線程塊之間的工作劃分并不理想,以及GPU上的warp——導(dǎo)致低占用率或不必要的共享內(nèi)存讀寫(xiě)。

更少的non-matmulFLOP(非矩陣乘法浮點(diǎn)計(jì)算數(shù))

研究人員通過(guò)調(diào)整FlashAttention的算法來(lái)減少non-matmul FLOP的次數(shù)。這非常重要,因?yàn)楝F(xiàn)代GPU有專門(mén)的計(jì)算單元(比如英偉達(dá)GPU上的張量核心),這就使得matmul的速度更快。例如,A100 GPU FP16/BF16 matmul的最大理論吞吐量為312 TFLOPs/s,但non-matmul FP32的理論吞吐量?jī)H為 19.5 TFLOPs/s。另外,每個(gè)非matmul FLOP比matmul FLOP要貴16倍。所以為了保持高吞吐量,研究人員希望在matmul FLOP上花盡可能多的時(shí)間。研究人員還重新編寫(xiě)了FlashAttention中使用的在線softmax技巧,以減少重新縮放操作的數(shù)量,以及邊界檢查和因果掩碼操作,而無(wú)需更改輸出。

更好的并行性

FlashAttention v1在批大小和部數(shù)量上進(jìn)行并行化處理。研究人員使用1個(gè)線程塊來(lái)處理一個(gè)注意力頭,共有 (batch_size * head number) 個(gè)線程塊。

36cb68b8-29ff-11ee-a368-dac502259ad0.png

▲在前向處理(左圖)中,研究者將Worker(線程塊)并行化,每個(gè)Worker負(fù)責(zé)處理注意力矩陣的一個(gè)行塊。在后向處理過(guò)程中(右圖),每個(gè)Worker處理注意力矩陣的一個(gè)列塊

每個(gè)線程塊都在流式多處理器 (SM)運(yùn)行,例如,A100 GPU上有108個(gè)這樣的處理器。當(dāng)這個(gè)數(shù)字很大(比如 ≥80)時(shí),這種調(diào)度是有效的,因?yàn)樵谶@種情況下,可以有效地使用GPU上幾乎所有的計(jì)算資源。在長(zhǎng)序列的情況下(通常意味著更小批或更少的頭),為了更好地利用GPU上的多處理器,研究人員在序列長(zhǎng)度的維度上另外進(jìn)行了并行化,使得該機(jī)制獲得了顯著加速。

更好的工作分區(qū)

即使在每個(gè)線程塊內(nèi),研究人員也必須決定如何在不同的warp(線程束)之間劃分工作(一組32個(gè)線程一起工作)。研究人員通常在每個(gè)線程塊使用4或8個(gè)warp,分區(qū)方案如下圖所示。研究人員在FlashAttention-2中改進(jìn)了這種分區(qū),減少了不同warp之間的同步和通信量,從而減少共享內(nèi)存讀/寫(xiě)。36fb00e6-29ff-11ee-a368-dac502259ad0.png對(duì)于每個(gè)塊,F(xiàn)lashAttention將K和V分割到4個(gè)warp上,同時(shí)保持Q可被所有warp訪問(wèn)。這稱為「sliced-K」方案。然而,這樣做的效率并不高,因?yàn)樗衱arp都需要將其中間結(jié)果寫(xiě)入共享內(nèi)存,進(jìn)行同步,然后再將中間結(jié)果相加。而這些共享內(nèi)存讀/寫(xiě)會(huì)減慢FlashAttention中的前向傳播速度。在FlashAttention-2中,研究人員將Q拆分為4個(gè)warp,同時(shí)保持所有warp都可以訪問(wèn)K和V。在每個(gè)warp執(zhí)行矩陣乘法得到Q K^T的一個(gè)切片后,它們只需與共享的V切片相乘,即可得到相應(yīng)的輸出切片。這樣一來(lái),warp之間就不再需要通信。共享內(nèi)存讀寫(xiě)的減少就可以提高速度。 3739797a-29ff-11ee-a368-dac502259ad0.png ?新功能:頭的維度高達(dá)256,多查詢注意力

FlashAttention僅支持最大128的頭的維度,雖說(shuō)適用于大多數(shù)模型,但還是有一些模型被排除在外。FlashAttention-2現(xiàn)在支持256的頭的維度,這意味著GPT-J、CodeGen、CodeGen2以及Stable Diffusion 1.x等模型都可以使用FlashAttention-2來(lái)獲得加速和節(jié)省內(nèi)存。v2還支持多查詢注意力(MQA)以及分組查詢注意力(GQA)。

377ca1d2-29ff-11ee-a368-dac502259ad0.png

GQA為每組查詢頭共享單個(gè)key和value的頭,在多頭和多查詢注意之間進(jìn)行插值

這些都是注意力的變體,其中多個(gè)查詢頭會(huì)指向key和value的同一個(gè)頭,以減少推理過(guò)程中KV緩存的大小,并可以顯著提高推理的吞吐量。 379d9464-29ff-11ee-a368-dac502259ad0.png ?

注意力基準(zhǔn)

研究人員人員在A100 80GB SXM4 GPU 上測(cè)量不同設(shè)置(有無(wú)因果掩碼、頭的維度是64或128)下不同注意力方法的運(yùn)行時(shí)間。37c79eee-29ff-11ee-a368-dac502259ad0.png研究人員發(fā)現(xiàn)FlashAttention-2比第一代快大約2倍(包括在xformers庫(kù)和Triton中的其他實(shí)現(xiàn))。與PyTorch中的標(biāo)準(zhǔn)注意力實(shí)現(xiàn)相比,F(xiàn)lashAttention-2的速度最高可達(dá)其9倍。

37e91a92-29ff-11ee-a368-dac502259ad0.png

▲A100 GPU上的前向+后向速度

只需在H100 GPU上運(yùn)行相同的實(shí)現(xiàn)(不需要使用特殊指令來(lái)利用TMA和第四代Tensor Core等新硬件功能),研究人員就可以獲得高達(dá)335 TFLOPs/s的速度。

3843bcb8-29ff-11ee-a368-dac502259ad0.png

▲H100 GPU上的前向+后向速度

當(dāng)用于端到端訓(xùn)練GPT類模型時(shí),F(xiàn)lashAttention-2能在A100 GPU上實(shí)現(xiàn)高達(dá)225TFLOPs/s的速度(模型FLOPs利用率為72%)。與已經(jīng)非常優(yōu)化的FlashAttention模型相比,端到端的加速進(jìn)一步提高了1.3倍。3884eab2-29ff-11ee-a368-dac502259ad0.png ?38a7e814-29ff-11ee-a368-dac502259ad0.png ?

未來(lái)的工作

速度上快2倍,意味著研究人員可以用與之前訓(xùn)練8k上下文模型相同的成本,來(lái)訓(xùn)練16k上下文長(zhǎng)度的模型。這些模型可以理解長(zhǎng)篇書(shū)籍和報(bào)告、高分辨率圖像、音頻視頻。同時(shí),F(xiàn)lashAttention-2還將加速現(xiàn)有模型的訓(xùn)練、微調(diào)和推理。在不久的將來(lái),研究人員還計(jì)劃擴(kuò)大合作,使FlashAttention廣泛適用于不同類型的設(shè)備(例如H100 GPU、AMD GPU)以及新的數(shù)據(jù)類型(例如fp8)。下一步,研究人員計(jì)劃針對(duì)H100 GPU進(jìn)一步優(yōu)化FlashAttention-2,以使用新的硬件功能(TMA、第四代Tensor Core、fp8等等)。將FlashAttention-2中的低級(jí)優(yōu)化與高級(jí)算法更改(例如局部、擴(kuò)張、塊稀疏注意力)相結(jié)合,可以讓研究人員用更長(zhǎng)的上下文來(lái)訓(xùn)練AI模型。研究人員也很高興與編譯器研究人員合作,使這些優(yōu)化技術(shù)更好地應(yīng)用于編程 38c13b84-29ff-11ee-a368-dac502259ad0.png ?作者介紹

Tri Dao曾在斯坦福大學(xué)獲得了計(jì)算機(jī)博士學(xué)位,導(dǎo)師是Christopher Ré和Stefano Ermon。根據(jù)主頁(yè)介紹,他將從2024年9月開(kāi)始,任職普林斯頓大學(xué)計(jì)算機(jī)科學(xué)助理教授。

Tri Dao的研究興趣在于機(jī)器學(xué)習(xí)和系統(tǒng),重點(diǎn)關(guān)注高效訓(xùn)練和長(zhǎng)期環(huán)境:- 高效Transformer訓(xùn)練和推理 - 遠(yuǎn)程記憶的序列模型 - 緊湊型深度學(xué)習(xí)模型的結(jié)構(gòu)化稀疏性。

值得一提的是,Tri Dao今天正式成為生成式AI初創(chuàng)公司Together AI的首席科學(xué)家。

3920ef98-29ff-11ee-a368-dac502259ad0.png

參考資料:https://princeton-nlp.github.io/flash-atttention-2/


原文標(biāo)題:讓Attention提速9倍!FlashAttention燃爆顯存,Transformer上下文長(zhǎng)度史詩(shī)級(jí)提升

文章出處:【微信公眾號(hào):智能感知與物聯(lián)網(wǎng)技術(shù)研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:讓Attention提速9倍!FlashAttention燃爆顯存,Transformer上下文長(zhǎng)度史詩(shī)級(jí)提升

文章出處:【微信號(hào):tyutcsplab,微信公眾號(hào):智能感知與物聯(lián)網(wǎng)技術(shù)研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS AI輔助編程工具(CodeGenie)代碼續(xù)寫(xiě)

    利用AI大模型分析并理解開(kāi)發(fā)者在代碼編輯區(qū)的上下文信息或自然語(yǔ)言描述信息,智能生成符合上下文的ArkTS或C++代碼片段。 一、使用約束 建議在編輯區(qū)內(nèi)已有較豐富上下文,能夠使模型對(duì)編程場(chǎng)景有一定
    發(fā)表于 07-15 16:15

    鴻蒙NEXT-API19獲取上下文,在class中和ability中獲取上下文,API遷移示例-解決無(wú)法在EntryAbility中無(wú)法使用最新版

    摘要:隨著鴻蒙系統(tǒng)API升級(jí)至16版本(modelVersion5.1.1),多項(xiàng)API已廢棄。獲取上下文需使用UIContext,具體方法包括:在組件中使用getUIContext(),在類中使
    的頭像 發(fā)表于 07-01 10:57 ?210次閱讀
    鴻蒙NEXT-API19獲取<b class='flag-5'>上下文</b>,在class中和ability中獲取<b class='flag-5'>上下文</b>,API遷移示例-解決無(wú)法在EntryAbility中無(wú)法使用最新版

    Transformer架構(gòu)中編碼器的工作流程

    編碼器是Transformer體系結(jié)構(gòu)的基本組件。編碼器的主要功能是將輸入標(biāo)記轉(zhuǎn)換為上下文表示。與早期獨(dú)立處理token的模型不同,Transformer編碼器根據(jù)整個(gè)序列捕獲每個(gè)token的
    的頭像 發(fā)表于 06-10 14:27 ?298次閱讀
    <b class='flag-5'>Transformer</b>架構(gòu)中編碼器的工作流程

    UIAbility組件基本用法說(shuō)明

    UIAbility組件基本用法 UIAbility組件的基本用法包括:指定UIAbility的啟動(dòng)頁(yè)面以及獲取UIAbility的上下文UIAbilityContext。 指定UIAbility
    發(fā)表于 05-16 06:32

    S32K在AUTOSAR中使用CAT1 ISR,是否需要執(zhí)行上下文切換?

    如果我們?cè)?AUTOSAR 中使用 CAT1 ISR,是否需要執(zhí)行上下文切換?另外,是否需要返回指令才能跳回到作系統(tǒng)?您有沒(méi)有帶有 CAT1 ISR 的 S32K3x4 微控制器的示例?
    發(fā)表于 03-27 07:34

    摩爾線程Round Attention優(yōu)化AI對(duì)話

    摩爾線程科研團(tuán)隊(duì)發(fā)布研究成果《Round Attention:以輪次塊稀疏性開(kāi)辟多輪對(duì)話優(yōu)化新范式》,該方法端到端延遲低于現(xiàn)在主流的Flash Attention推理引擎,kv-cache 顯存占用節(jié)省55%到82% 。
    的頭像 發(fā)表于 03-06 09:39 ?559次閱讀
    摩爾線程Round <b class='flag-5'>Attention</b>優(yōu)化AI對(duì)話

    DeepSeek推出NSA機(jī)制,加速長(zhǎng)上下文訓(xùn)練與推理

    的特性,專為超快速的長(zhǎng)上下文訓(xùn)練和推理而設(shè)計(jì)。 NSA通過(guò)針對(duì)現(xiàn)代硬件的優(yōu)化設(shè)計(jì),顯著加快了推理速度,并大幅度降低了預(yù)訓(xùn)練成本,同時(shí)保持了卓越的性能表現(xiàn)。這一機(jī)制在確保效率的同時(shí),并未犧牲模型的準(zhǔn)確性或功能。 在廣泛的基準(zhǔn)測(cè)試、涉及長(zhǎng)上下文的任務(wù)以及基于指令的推理場(chǎng)景中,
    的頭像 發(fā)表于 02-19 14:01 ?642次閱讀

    《具身智能機(jī)器人系統(tǒng)》第7-9章閱讀心得之具身智能機(jī)器人與大模型

    學(xué)習(xí)任務(wù)、上下文長(zhǎng)度、記憶和隱藏狀態(tài)提高適應(yīng)性。 任務(wù)適應(yīng) 依賴數(shù)據(jù)采集和微調(diào),可能效率較低。 利用復(fù)雜指令并自動(dòng)從多樣的上下文中學(xué)習(xí)。 預(yù)訓(xùn)練階段 專注于世界知識(shí)和理解硬件。 強(qiáng)調(diào)在各種任務(wù)上學(xué)
    發(fā)表于 12-24 15:03

    阿里通義千問(wèn)發(fā)布Qwen2.5-Turbo開(kāi)源AI模型

    近日,阿里通義千問(wèn)官方宣布,經(jīng)過(guò)數(shù)月的精心優(yōu)化與改進(jìn),正式推出了Qwen2.5-Turbo開(kāi)源AI模型。這款新模型旨在滿足社區(qū)對(duì)更長(zhǎng)上下文長(zhǎng)度的迫切需求,為用戶帶來(lái)更加便捷、高效的AI
    的頭像 發(fā)表于 11-19 18:07 ?1238次閱讀

    Llama 3 在自然語(yǔ)言處理中的優(yōu)勢(shì)

    領(lǐng)域的最新進(jìn)展。 1. 高度的上下文理解能力 Llama 3的一個(gè)顯著優(yōu)勢(shì)是其對(duì)上下文的深刻理解。傳統(tǒng)的NLP模型往往在處理復(fù)雜的語(yǔ)言結(jié)構(gòu)和上下文依賴性時(shí)遇到困難。Llama 3通過(guò)使用先進(jìn)的注意力機(jī)制和
    的頭像 發(fā)表于 10-27 14:22 ?732次閱讀

    英偉達(dá)推出歸一化Transformer,革命性提升LLM訓(xùn)練速度

    了新的突破。 相較于傳統(tǒng)的Transformer架構(gòu),nGPT在保持原有精度的同時(shí),直接將大型語(yǔ)言模型(LLM)的訓(xùn)練速度提升了高達(dá)20。這一顯著的性能提升,無(wú)疑將極大地推動(dòng)AI技術(shù)
    的頭像 發(fā)表于 10-23 11:30 ?884次閱讀

    顯存技術(shù)不斷升級(jí),AI計(jì)算中如何選擇合適的顯存

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)顯存,是顯卡上用于存儲(chǔ)圖像數(shù)據(jù)、紋理、幀緩沖區(qū)等的內(nèi)存。它的大小直接決定了顯卡能夠同時(shí)處理的數(shù)據(jù)量。 ? 在AI計(jì)算中,顯存的大小對(duì)處理大規(guī)模數(shù)據(jù)集、深度學(xué)習(xí)模型的訓(xùn)練
    的頭像 發(fā)表于 09-11 00:11 ?4792次閱讀

    用AD8676設(shè)計(jì)了一個(gè)2級(jí)放大電路,輸出信號(hào)幅值正確,但是會(huì)上下漂移,為什么?

    最近用AD8676設(shè)計(jì)了一個(gè)2級(jí)放大電路,放大器采用正負(fù)12V雙電源供電。輸入信號(hào)是mV級(jí)別的交流信號(hào)(由熱釋電傳感器輸出),一級(jí)放大400,2級(jí)放大2
    發(fā)表于 08-27 06:36

    SystemView上下文統(tǒng)計(jì)窗口識(shí)別阻塞原因

    SystemView工具可以記錄嵌入式系統(tǒng)的運(yùn)行時(shí)行為,實(shí)現(xiàn)可視化的深入分析。在新發(fā)布的v3.54版本中,增加了一項(xiàng)新功能:上下文統(tǒng)計(jì)窗口,提供了對(duì)任務(wù)運(yùn)行時(shí)統(tǒng)計(jì)信息的深入分析,使用戶能夠徹底檢查每個(gè)任務(wù),幫助開(kāi)發(fā)人員識(shí)別阻塞原因。
    的頭像 發(fā)表于 08-20 11:31 ?702次閱讀

    【《大語(yǔ)言模型應(yīng)用指南》閱讀體驗(yàn)】+ 基礎(chǔ)知識(shí)學(xué)習(xí)

    能夠關(guān)注到輸入文本中的重要部分,從而提高預(yù)測(cè)的準(zhǔn)確性和效率。這種機(jī)制允許模型在處理文本時(shí)同時(shí)考慮多個(gè)位置的信息,并根據(jù)重要性進(jìn)行加權(quán)處理。 一些關(guān)鍵技術(shù) 1. 上下文理解 大語(yǔ)言模型能夠同時(shí)考慮句子前后
    發(fā)表于 08-02 11:03