Presná definícia
Čo znamená FlashAttention?
FlashAttention je hardvérovo vedomý (hardware-aware) presný algoritmus pre výpočet mechanizmu pozornosti (Attention), ktorý optimalizuje prístup k pamäťovej hierarchii GPU. Namiesto ukladania obrovských medziľahlých matíc pozornosti do pomalej pamäte HBM (High Bandwidth Memory) vykonáva výpočet po blokoch (tiling) a využíva rýchlu pamäť SRAM priamo v jadre procesora.
Skúsenosť a kontext
Ako sa pojem používa v praxi
Používa sa pri trénovaní a inferencii moderných architektúr Transformer na zrýchlenie výpočtov a spracovanie extrémne dlhých kontextových okien (desaťtisíce až milióny tokenov) bez straty matematickej presnosti.
Overiteľnosť
Odborné zdroje
Praktické odpovede
Často kladené otázky
Čo je hlavným úzkym hrdlom (bottleneck) pri klasickom výpočte Attention na GPU?
Úzkym hrdlom nie je výpočtový výkon jadier, ale rýchlosť prenosu dát medzi pomalšou pamäťou HBM a rýchlou pamäťou SRAM procesora (memory-bound operation).
Aký je rozdiel medzi verziami FlashAttention-1, FlashAttention-2 a FlashAttention-3?
FlashAttention-1 zavedol blokový výpočet, verzia 2 zlepšila paralelizáciu naprieč sekvenciami a verzia 3 pridala podporu pre formát FP8 a asynchrónne operácie na architektúrach NVIDIA Hopper.
Mení FlashAttention mathematically výstup alebo kvalitu modelu?
Nie. Na rozdiel od rôznych aproximácií pozornosti je FlashAttention matematicky presný výpočet (exact attention).
Ako ovplyvňuje pamäťovú zložitosť výpočtu?
Znižuje pamäťové nároky zápisu do HBM z kvadratickej závislosti O(N^2) na lineárnu zložitosť O(N) vzhľadom na dĺžku sekvencie N.
Na akom hardvéri je možné FlashAttention spustiť?
Vyžaduje kompatibilné architektúry GPU (predovšetkým NVIDIA Ampere, Ada Lovelace, Hopper a novšie).
Prihlásiť / registrovať