FlashAttention Nedir?
Yayın: · Son güncelleme:
FlashAttention Nedir? Kısaca
FlashAttention, Transformer modellerindeki dikkat hesabını GPU bellek hiyerarşisini verimli kullanarak hızlandıran bir algoritmadır. Sonucu yaklaşık değil, birebir aynı hesaplar; ancak büyük ara matrisleri belleğe yazmadığı için uzun dizilerde çok daha az bellek kullanır.

FlashAttention nedir?
FlashAttention, Tri Dao ve arkadaşlarının 2022'de yayımladığı, öz dikkat hesabını hızlandıran bir algoritmadır. Dikkat mekanizmasının matematiğini değiştirmez; aynı sonucu donanıma daha uygun bir sırayla hesaplar. Bu yüzden "tam" (exact) bir dikkat algoritmasıdır, yaklaşık bir yöntem değildir.
Hangi sorunu çözer?
Standart dikkat hesabında, dizideki her token çifti için bir puan hesaplanır ve bu puanlar büyük bir matriste tutulur. Dizi uzunluğu iki katına çıkarsa bu matris dört katına çıkar. Asıl yavaşlık da çoğu zaman hesaplamadan değil, bu büyük matrisin GPU'nun ana belleğine (HBM) yazılıp tekrar okunmasından kaynaklanır. GPU'nun çip üzerindeki hızlı belleği (SRAM) çok daha hızlıdır ama küçüktür.
Nasıl çalışır?
- Parçalara bölme (tiling): Sorgu, anahtar ve değer matrisleri küçük bloklara ayrılır; her blok hızlı belleğe sığacak boyuttadır.
- Birleştirilmiş işlem: Puanlama, softmax ve değerlerle çarpma tek bir çekirdek içinde, blok blok yapılır.
- Çevrim içi softmax: Softmax, tüm puanlar görülmeden parça parça ve doğru biçimde hesaplanır.
- Yeniden hesaplama: Geri yayılımda büyük matrisi saklamak yerine gerektiğinde yeniden hesaplanır.
Böylece ana belleğe yapılan okuma-yazma sayısı ciddi biçimde azalır ve bellek kullanımı dizi uzunluğuyla doğrusal artar.
Neden önemli?
FlashAttention ve sonraki sürümleri, daha uzun bağlam pencereleriyle model eğitmeyi ve çalıştırmayı pratik hâle getirdi. Bugün birçok derin öğrenme kütüphanesinde ve çıkarım altyapısında doğrudan ya da benzer tekniklerle kullanılıyor.
Sınırları
Dikkatin hesaplama miktarı yine dizi uzunluğunun karesiyle artar; FlashAttention bu temel ölçeklemeyi değil, bellek trafiğini iyileştirir. Ayrıca belirli GPU mimarilerine göre optimize edildiği için her donanımda aynı kazancı sağlamayabilir.
Sıkça Sorulan Sorular
FlashAttention modelin çıktısını değiştirir mi?
Hayır. Matematiksel olarak standart dikkatle aynı sonucu hesaplar; yalnızca kayan nokta işlemlerinin sırasından kaynaklanan çok küçük sayısal farklar olabilir.
FlashAttention hangi durumda en çok fayda sağlar?
Uzun dizilerle eğitim ve çıkarım yapılırken en belirgin kazancı sağlar. Kısa dizilerde bellek trafiği zaten az olduğu için hız farkı daha sınırlı kalabilir.