FlashAttention-3 (TL)
FlashAttention-3 — ito ay isang algorithm para sa pag-optimize ng mekanismo ng attention sa mga transformer neural network, na binuo para sa pinakamataas na paggamit ng mga kakayahan ng GPU na arkitektura ng NVIDIA Hopper (H100)[1]. Ang algorithm ay ipinakita noong 2024 ng isang grupo ng mga mananaliksik mula sa mga kumpanyang Colfax Research, Meta, NVIDIA, Georgia Tech, Princeton University, at Together AI. Ang gawa ay tinanggap sa kumperensyang NeurIPS 2024 at minarkahan bilang spotlight[2].
Ang FlashAttention-3 ay ang ikatlong ulit sa pamilya ng mga algorithm, na sumusunod sa FlashAttention (2022) at FlashAttention-2 (2023). Ang pangunahing layunin nito — lubhang mapabilis ang pagsasanay at inference ng malalaking modelo ng wika (LLM), habang pinapanatili ang katumpakan ng mga kalkulasyon.
Panimula at Kasaysayan
Ang Problema ng Mekanismo ng Attention
Ang pangunahing bahagi ng mga transformer ay ang mekanismo ng self-attention, ngunit ang computational complexity nito at pagkonsumo ng memorya ay lumalaki nang quadratically (O(n²)) habang lumalaki ang haba ng input sequence (n)[1]. Lumilikha ito ng malubhang "bottleneck", dahil ang mga modernong GPU ay na-optimize para sa mabilis na matrix multiplication, ngunit ang pagkalkula ng mga exponential function (halimbawa, sa Softmax) ay mas mabagal ng ilang order ng magnitude. Bukod dito, sa naive na implementasyon, isang malaking intermediate attention tensor ang dapat na nakaimbak sa memorya ng GPU, na nililimitahan ang scalability ng mga modelo.
FlashAttention at FlashAttention-2
Para malutas ang problemang ito, noong 2022 ay iminungkahi ang FlashAttention, na nagbawas ng dami ng mga access sa mabagal na global na memorya (HBM) sa pamamagitan ng dalawang teknik:
- Block processing (tiling): Ang mga kalkulasyon ay nahahati sa mga bloke (tiles), na pinoproseso sa mabilis na on-chip na memorya (SRAM).
- Pagsasama ng mga operasyon: Ang lahat ng operasyon (matrix multiplication, Softmax) ay isinasagawa sa isang GPU kernel nang hindi isinusulat ang mga intermediate na resulta sa global na memorya.
Pinahintulutan nitong bawasan ang complexity ng memorya mula quadratic hanggang linear at pinabilis ang mga kalkulasyon ng 2–4 na beses.
Noong 2023, isang pinahusay na bersyon ang ipinakita — FlashAttention-2, na nag-optimize ng parallelization ng mga kalkulasyon. Sa GPU na arkitektura ng NVIDIA Ampere (A100), nakamit nito ang ~70% ng peak theoretical performance[3]. Gayunpaman, sa mas bagong arkitektura ng NVIDIA Hopper (H100), ang kahusayan nito ay naging mas mababa — mga 35%[1]. Ito ay dahil ang algorithm ay hindi gumagamit ng mga bagong hardware na kakayahan ng Hopper, na nagsilbing impetus para sa paglikha ng FlashAttention-3.
Mga Bagong Hardware na Kakayahan ng GPU Hopper (H100)
Ang arkitektura ng NVIDIA Hopper ay nagbigay ng ilang bagong function na ginagamit ng FlashAttention-3 para makamit ang pinakamataas na performance[4]:
- WGMMA (Warpgroup Matrix Multiply-Accumulate): Isang bagong uri ng mga instruksyon para sa tensor cores, na nagsasagawa ng matrix multiplication na may halos dalawang beses na pagtaas ng performance kumpara sa arkitektura ng Ampere.
- TMA (Tensor Memory Accelerator): Isang hardware module na nagpapabilis ng paglipat ng data sa pagitan ng global (HBM) at shared memory. Awtomatikong isinasagawa ng TMA ang mga kalkulasyon ng address, nine-relieve ang mga computational core.
- FP8 Format: Hardware na suporta para sa 8-bit floating-point na format ng data, na nagdodoble ng theoretical performance kumpara sa FP16, ngunit nagdadala ng panganib ng pagkawala ng katumpakan dahil sa limitadong dynamic range.
Mga Teknikal na Inobasyon ng FlashAttention-3
Inipapatupad ng algorithm ang tatlong pangunahing paraan ng pag-optimize, na espesyal na binuo para sa arkitektura ng Hopper[4]:
1. Asynchronous na Pagpapatupad at Espesyalisasyon ng Warp
Ginamit ng FlashAttention-3 ang prinsipyo ng warp-specialization, kung saan ang iba't ibang grupo ng mga thread (warps) sa GPU ay nag-eespesyalisa sa iba't ibang gawain:
- Producer warps: Naglo-load ng data mula sa global na memorya gamit ang TMA.
- Consumer warps: Nagsasagawa ng matrix multiplication sa mga tensor core.
Sa tulong ng hardware asynchronicity ng Hopper, ang mga operasyong ito ay nagtatagpuan sa oras. Habang ang isang grupo ng mga warp ay nagsasagawa ng mga kalkulasyon, ang isa paman ay sabay na naglo-load ng data para sa susunod na bloke. Ang pamamaraang pipeline na ito (pipeline), na nakaayos ayon sa prinsipyo ng "ping-pong" (ping-pong scheduling), ay nagbibigay-daan na itago ang mga pagkaantala mula sa mabagal na mga operasyon (halimbawa, Softmax) at lubos na ma-load ang lahat ng functional na module ng GPU.
2. Minimisasyon ng mga Operasyon sa Memorya
Pinapanatili ng algorithm ang ideolohiya ng tiling mula sa mga nakaraang bersyon, ngunit aktibong gumagamit ng TMA para sa asynchronous na pag-load ng mga susunod na bloke ng data nang sabay-sabay sa kasalukuyang mga kalkulasyon. Ang paglipat ng data mula sa mabagal na HBM patungo sa mabilis na SRAM ay epektibong isinasagawa "sa lilim" ng mga pangunahing kalkulasyon, kaya naman ang GPU ay mas kakaunting nagpapanatiling idle habang naghihintay ng data.
3. Mababang Katumpakan (FP8) na may Pagbabawas ng Error ng Quantization
Ang paglipat sa FP8 ay nagdodoble ng bilis, ngunit maaaring humantong sa malaking pagkawala ng katumpakan dahil sa quantization. Para labanan ito, ang mga developer ay nagpakilala ng paraan ng incoherent processing[4]. Ang kakanyahan nito ay ang sumusunod:
- Bago kalkulahin ang attention, ang mga feature vector (mga query Q at key K) ay pinarami ng isang random orthogonal matrix (halimbawa, Hadamard matrix).
- Ang transformation na ito ay "nagkakalat" ng mga value na may abnormally na malaking magnitude (mga outlier) sa lahat ng coordinate, pinapantay ang kanilang distribusyon.
- Pagkatapos nito, isinasagawa ang quantization sa FP8, na ngayon ay nagaganap nang may mas maliit na error.
- Dahil ang transformation ay orthogonal, hindi nito nababago ang panghuling resulta ng attention (QKᵀ), dahil ang epekto ng matrix ay ninilaw sa panahon ng multiplication.
Pinahintulutan ng teknik na ito na bawasan ang error ng pagkalkula ng attention sa FP8 ng halos 2.6 beses kumpara sa karaniwang paggamit ng FP8 nang walang mga transformation[4].
Performance at Kahalagahan
Ang paggamit ng mga nakalista na teknik ay nagpahintulot sa FlashAttention-3 na makamit ang makabuluhang kahusayan sa mga nakaraang bersyon sa GPU H100:
- Pagpapabilis ng 1.5–2 beses kumpara sa FlashAttention-2.
- Mataas na GPU utilization: Nakakamit ng ~75–85% ng theoretical maximum performance ng H100.
- Throughput:
- Hanggang 740–840 TFLOPS para sa half precision (FP16/BF16).
- Hanggang 1.2–1.3 PFLOPS (petaflops) kapag gumagamit ng 8-bit precision (FP8)[2].
Ang mataas na kahusayan ng FlashAttention-3 ay direktang nakakaapekto sa pagbuo at paggamit ng LLM:
- Pagbabawas ng oras ng pagsasanay: Ang pagpapabilis ng attention ng 75–100% ay lubos na nagpapababa ng oras ng pagsasanay ng mga modelo, na maaaring tumagal ng mga linggo o buwan.
- Pagpapalaki ng context window: Ang mga modelo ay maaaring epektibong mag-proseso ng mas mahabang mga sequence (daan-daang libo ng mga token), na mahalaga para sa pagsusuri ng malalaking dokumento o code[1].
- Makatwirang paggamit ng mga resources: Nagbibigay-daan na makamit ang parehong performance sa mas kaunting GPU o makakuha ng mas malaking bilis sa parehong kagamitan, na nagpapababa ng gastos ng deployment ng mga modelo.
Availability at Integrasyon
Inilathala ng mga may-akda ang source code ng FlashAttention-3 sa ilalim ng open license sa GitHub[4]. Inaasahan ang integrasyon nito sa mga nangungunang framework ng deep learning, tulad ng PyTorch at mga library ng Hugging Face Transformers, na gagawing accessible ang teknolohiya para sa malawak na hanay ng mga developer at mananaliksik. Ang mga nakaraang bersyon ay naging de facto na pamantayan sa industriya na, at ang FlashAttention-3 ay malamang na magpapatuloy ng trend na ito.
Mga Link
- Opisyal na repositoryo ng FlashAttention sa GitHub
- Blog ng Together AI na may anunsyo ng FlashAttention-3
Panitikan
- Shah, J. et al. (2024). FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision. arXiv:2407.08608.
- Dao, T. (2023). FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning. arXiv:2307.08691.
- Dao, T. et al. (2022). FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. arXiv:2205.14135.
- Kwon, W. et al. (2023). Efficient Memory Management for Large Language Model Serving with PagedAttention. arXiv:2309.06180.
- Ye, Z. et al. (2025). FlashInfer: Efficient and Customizable Attention Engine for LLM Inference Serving. arXiv:2501.01005.
- Chen, Y. et al. (2023). FlashDecoding++: Faster Large Language Model Inference on GPUs. arXiv:2311.01282.
- Liu, Y. et al. (2024). FastAttention: Extending FlashAttention-2 to NPUs and Low-Resource GPUs. OpenReview: 76NYyOrnfk.
- Dege, P. et al. (2025). FlashMLA-ETAP: Efficient Transpose Attention Pipeline for Accelerating MLA Inference on NVIDIA H20 GPUs. arXiv:2506.01969.
- Wang, G. et al. (2024). FlashMask: Efficient and Rich Mask Extension of FlashAttention. arXiv:2410.01359.
- Abbott, V.; Zardini, G. (2025). FlashAttention on a Napkin: A Diagrammatic Approach to Deep Learning IO-Awareness. arXiv:2412.03317.
Mga Tala
- ↑ 1.0 1.1 1.2 1.3 «FlashAttention-3 unleashes the power of H100 GPUs for LLMs». VentureBeat. [1]
- ↑ 2.0 2.1 Шах, Джей, и др. «FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision». OpenReview. [2]
- ↑ Шах, Джей, и др. «FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision». arXiv:2407.08608v2 [cs.LG], 15 июля 2024 г. [3]
- ↑ 4.0 4.1 4.2 4.3 4.4 Шах, Джей, и др. «FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision». Together AI Blog. [4]