FlashAttention

Türkçe karşılığı: FlashAttentionAlan: Makine Öğrenmesi Sistemleri

Attention hesaplamasını tile/block bazında düzenleyerek HBM ile on-chip memory arasındaki veri hareketini azaltan IO-aware exact attention algoritması ailesi.

ML Sistemleri Bağlamı

Uzun sequence eğitim ve inference'ında attention kernel'inin memory traffic'ini düşürerek hız ve memory kullanımını iyileştirebilir. Kazanç GPU mimarisi ve sequence shape'e bağlıdır.

Model ve Servis Sınırı

FlashAttention approximate attention değildir; temel softmax attention sonucunu daha I/O-verimli hesaplamayı hedefler.

İlişkili ML Sistem Kavramları

Hesap Karmaşıklığından Önce Veri Hareketi

FlashAttention'ın ayırt edici tarafı, yalnız FLOP sayısına değil GPU bellek hiyerarşisindeki veri hareketine bakmasıdır. Attention hesabı tile'lara bölünür; ara sonuçların mümkün olduğunca hızlı on-chip SRAM'de tutulmasıyla HBM okuma/yazmaları azaltılır. Bu nedenle aynı matematiksel softmax attention daha farklı bir yürütme planıyla hesaplanır.

Buradaki "exact" ifadesi önemlidir: temel FlashAttention, düşük-rank veya seyrek bir yaklaşık attention yöntemi değildir. Yine de bit düzeyinde aynı kayan nokta sonucu garanti edildiği anlamına gelmez; paralel toplama sırası ve veri tipi yuvarlama farkları üretebilir. Gerçek hızlanma sequence length, head dimension, datatype, GPU mimarisi ve kernel sürümüne bağlıdır. I/O-aware exact-attention yaklaşımı Dao ve arkadaşlarının çalışmasında tanımlanmıştır: özgün makale.