FlashAttention-2 (ID)
FlashAttention-2 — adalah algoritma yang disempurnakan yang dirancang untuk menghitung mekanisme attention dalam model bahasa besar (LLM). Algoritma ini dikembangkan oleh Tri Dao dan para peneliti dari Universitas Stanford, dan diperkenalkan pada Juli 2023[1]. Tujuan utamanya adalah mempercepat secara signifikan pelatihan dan inferensi model transformer melalui penggunaan sumber daya perangkat keras GPU yang lebih efisien, sekaligus mempertahankan identitas penuh komputasi dengan mekanisme attention standar, yaitu tanpa kehilangan akurasi.
FlashAttention-2 merupakan kelanjutan logis dari algoritma FlashAttention yang diperkenalkan oleh tim yang sama pada tahun 2022. Versi baru ini mengatasi masalah pemanfaatan GPU yang tidak penuh yang diamati pada pendahulunya, dan mencapai peningkatan kecepatan hampir dua kali lipat dibandingkan versi pertama.
Latar Belakang: Masalah Attention pada Transformer
Mekanisme self-attention standar merupakan bottleneck saat bekerja dengan urutan teks yang panjang pada transformer. Kompleksitas komputasi dan konsumsi memorinya tumbuh secara kuadratik (O(N²)) bergantung pada panjang urutan (N), yang memberlakukan batasan serius pada panjang konteks maksimum dan skalabilitas LLM[1].
Untuk mengatasi masalah ini, algoritma FlashAttention diperkenalkan pada tahun 2022[2]. Ide-ide kuncinya:
- Memperhatikan hierarki memori GPU (IO-awareness): Algoritma meminimalkan operasi baca/tulis yang mahal antara memori GPU yang lambat (HBM) dan memori statis cepat (SRAM) di chip.
- Pemrosesan blok (tiling): Komputasi dibagi menjadi blok-blok kecil (tile) yang diproses di SRAM yang cepat, sehingga menghindari materialisasi matriks attention penuh di memori.
Hal ini memungkinkan tercapainya pertumbuhan konsumsi memori yang linier (O(N)) dan percepatan 2–4 kali dibandingkan implementasi standar[2]. FlashAttention mendapat penerimaan luas dan berkontribusi pada munculnya model dengan konteks yang jauh lebih panjang, misalnya dari 2–4 ribu token (GPT-3) hingga 128 ribu (GPT-4) dan lebih[3]. Sebagai contoh, pada model Falcon-40B, penggunaan FlashAttention mempercepat inferensi 3 kali lipat, dan performa generasi secara keseluruhan — 5 kali lipat dibandingkan GPT-3[4].
Pengembangan dan Tujuan FlashAttention-2
Meskipun sukses, versi pertama FlashAttention tidak sepenuhnya memanfaatkan sumber daya komputasi GPU. Pada kartu grafis NVIDIA A100, performa hanya mencapai 25–40% dari maksimum teoretis (FLOPs/s)[1]. Penyebab utamanya adalah pemuatan Streaming Multiprocessors yang tidak optimal dan operasi memori bersama yang berlebihan[5].
Tujuan FlashAttention-2 adalah mempercepat komputasi lebih lanjut melalui paralelisasi kerja yang lebih efisien dan minimalisasi operasi tambahan. Algoritma ini ditulis ulang sepenuhnya menggunakan primitive tingkat rendah dari library NVIDIA CUTLASS 3.x untuk mencapai performa maksimum[6].
Arsitektur Teknis dan Prinsip Kerja
FlashAttention-2 memperkenalkan tiga peningkatan kunci untuk meningkatkan paralelisme dan efisiensi[1]:
1. Minimalisasi Operasi Non-Matriks
Algoritma mengurangi jumlah operasi floating-point tambahan yang bukan perkalian matriks (non-matmul FLOPs). Karena tensor core GPU dioptimalkan khusus untuk operasi matriks (GEMM) dan menjalankannya hingga 16 kali lebih cepat, perubahan ini memungkinkan sebagian besar waktu digunakan oleh blok GPU yang paling berperforma tinggi.
2. Paralelisme yang Ditingkatkan
Pada FlashAttention orisinal, pekerjaan pada satu "head" attention tidak diparalelkan, yang menyebabkan waktu idle saat urutan panjang dan ukuran batch kecil. FlashAttention-2 memperkenalkan paralelisme antar blok: kini komputasi untuk satu head attention didistribusikan di antara streaming multiprocessor GPU yang berbeda, sehingga meningkatkan pemanfaatannya secara signifikan.
3. Pembagian Kerja yang Dioptimalkan di Dalam Blok
Pada tingkat satu blok komputasi, pekerjaan didistribusikan ulang di antara kelompok thread (warp) untuk mengurangi pertukaran data melalui shared memory. Hal ini mengurangi jumlah operasi baca/tulis berlebihan yang diperlukan untuk normalisasi Softmax.
Performa dan Efisiensi
Berkat peningkatan arsitektur, FlashAttention-2 menunjukkan peningkatan performa yang signifikan:
- Percepatan dua kali lipat: Algoritma bekerja sekitar 2 kali lebih cepat dibandingkan versi pertama FlashAttention[1].
- Utilisasi GPU yang tinggi: Pada GPU NVIDIA A100 dicapai 50–73% dari throughput maksimum teoretis (TFLOPs), yang mendekati efisiensi operasi perkalian matriks yang dioptimalkan (GEMM)[1].
- Kecepatan komputasi yang unggul:
- Pada GPU A100 dicapai kecepatan hingga 225 TFLOP/s dalam siklus pelatihan end-to-end model tipe GPT, yang setara dengan 72% utilisasi blok komputasi. Sebagai perbandingan, attention standar dalam kondisi yang sama membebani GPU kurang dari 100 TFLOP/s[7].
- Pada GPU H100 performa mencapai 335 TFLOP/s[7].
Peningkatan performa seperti ini memungkinkan, misalnya, melatih model dengan jendela konteks 16k token dalam waktu yang sebelumnya diperlukan untuk jendela 8k token[5]. Yang penting, algoritma ini tetap akurat dan deterministik, sehingga penerapannya tidak mempengaruhi kualitas prediksi model[8].
Penerapan dan Integrasi ke dalam Ekosistem
FlashAttention-2 dengan cepat menjadi alat standar dalam ekosistem LLM. Ia diintegrasikan ke dalam banyak framework dan library populer:
- PyTorch: Dukungan native.
- Hugging Face Transformers: Dukungan diaktifkan dengan parameter `attn_implementation="flash_attention_2"` saat memuat model[9]. Kompatibel dengan puluhan arsitektur (GPT, Llama, Falcon, BERT, dan lainnya)[10].
- TensorRT-LLM, xFormers, dan Triton: Algoritma diimplementasikan untuk platform-platform ini, yang memastikan penerapan yang luas[7].
Integrasi ini memudahkan penggabungan FlashAttention-2 dengan metode optimasi lainnya, seperti kuantisasi (GPTQ, QLoRA) dan fine-tuning yang efisien (PEFT)[9].
Perbandingan dengan Versi Selanjutnya
FlashAttention-3
Penelitian di bidang optimasi attention terus berlanjut. Pada Juli 2024, Tri Dao memperkenalkan FlashAttention-3, yang ditujukan untuk memanfaatkan kemampuan arsitektur GPU NVIDIA Hopper (H100/H200). Inovasi utamanya[3]:
- Dukungan FP8: Menggunakan komputasi floating-point 8-bit untuk percepatan lebih lanjut.
- Operasi asinkron: Memanfaatkan kemampuan asinkron GPU secara lebih efisien.
FlashAttention-3 memberikan percepatan 1,5–2 kali dibandingkan FlashAttention-2 pada GPU H100, mencapai performa hingga 740 TFLOP/s (75% dari maksimum teoretis)[11].
Daftar Pustaka
- 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.
- Shah, J. et al. (2024). FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision. arXiv:2407.08608.
- 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. OpenReview: rog0J435OO.
- Abbott, V.; Zardini, G. (2025). FlashAttention on a Napkin: A Diagrammatic Approach to Deep Learning IO-Awareness. arXiv:2412.03317.
Catatan
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Дао, Три. «FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning». arXiv:2307.08691 [cs.LG], 17 июля 2023 г. [1]
- ↑ 2.0 2.1 «Optimizing LLMs for Speed and Memory». Hugging Face Documentation. [2]
- ↑ 3.0 3.1 Дао, Три. «FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision». Tri Dao's Blog. [3]
- ↑ «FlashAttention vs FlashAttention-2 - an Analysis». E2E Networks Blog. [4]
- ↑ 5.0 5.1 «FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning». OpenReview. [5]
- ↑ «FlashAttention-2». Hazy Research, Stanford University. [6]
- ↑ 7.0 7.1 7.2 Дао, Три. «FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning» (PDF). arXiv:2307.08691. [7]
- ↑ Рашка, Себастьян. «Llama 2 and FlashAttention 2». Ahead of AI Magazine. [8]
- ↑ 9.0 9.1 Белькада, Юнес. «Faster and more memory efficient models with Flash Attention 2!». LinkedIn. [9]
- ↑ «GPU inference». Hugging Face Documentation. [10]
- ↑ Дао, Три, и др. «FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision». arXiv:2407.08608 [cs.LG], 11 июля 2024 г. [11]