Slovník výrazov AI/Hardvér a efektívny výpočet

Hardvér a efektívny výpočet

FlashAttention

Anglický výraz FlashAttention

pokročiléheslo č. 15115 otázok a odpovedí2 odborné zdroje

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

  1. Dao, T., et al. (Stanford University, 2022). FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. NeurIPS 2022 / arXiv:2205.14135.arxiv.org
  2. Dao, T. (2023). FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning. arXiv:2307.08691.arxiv.org

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).