Öz-Dikkat Nasıl Çalışır?
Öz-dikkat, bir dizinin her elemanının aynı diziyi anahtar-değer havuzu olarak kullanıp kendi bağlam temsilini oluşturması ilkesine dayanır. Giriş gömmeleri üç projeksiyon matrisiyle Q (sorgu), K (anahtar) ve V (değer) uzayına dönüştürülür. Her konum için Q vektörü tüm K vektörleriyle nokta çarpımına girer, sonuç sqrt(d_k) ile ölçeklenir ve softmax uygulanarak dikkat ağırlıkları elde edilir. Bu ağırlıklar V vektörleri üzerinden ağırlıklı toplam alınarak her token için yeni bir çıkış vektörü üretir. Ölçekleme adımı, boyut büyüdükçe nokta çarpımlarının aşırı büyüyüp softmax'ı doygunluğa sokmasını önler. Bir transformer katmanında bu hesap tüm tokenler için aynı anda matris çarpımıyla yapıldığından GPU paralelliğinden tam olarak yararlanılır; RNN'in sıralı işleme zorunluluğu ortadan kalkar.
Maskeli ve Çift Yönlü Öz-Dikkat
Öz-dikkat iki ana modda çalışır. Çift yönlü (bidirectional) öz-dikkatte her token dizinin tamamını görebilir; BERT ve diğer encoder-only transformer modelleri bu modu kullanır. Bu yaklaşım maskeli dil modelleme (MLM), sınıflandırma ve varlık tanıma gibi görevler için güçlü bir bağlam temsili kazandırır. Maskeli (causal ya da otoregresif) öz-dikkatte ise her konum yalnızca kendisinden önceki tokenlere dikkat edebilir; üst üçgen bir maske softmax öncesinde gelecek konumları eksi sonsuza çekerek ileriye bakışı engeller. GPT-2, GPT-3, Llama ve benzeri decoder-only modeller bu modla bir sonraki tokeni tahmin eder. T5 ve BART gibi encoder-decoder mimarilerinde iki mod birlikte kullanılır: encoder tarafında tam öz-dikkat, decoder tarafında maskeli öz-dikkat ve encoder çıktısına bakan çapraz dikkat.
Dikkat Mekanizması Türleri
- check_circle Self-Attention (Öz-Dikkat): Q, K ve V aynı diziden gelir; her token kendi bağlam temsilini oluşturmak için diğer tokenlere bakar. Transformer encoder ve decoder bloklarının omurgasıdır.
- check_circle Cross-Attention (Çapraz Dikkat): Q decoder'dan, K ve V encoder'dan gelir. Makine çevirisi, görüntü-metin ve ses-metin modellerinde diziler arası bilgi aktarımı burada gerçekleşir.
- check_circle Masked Self-Attention (Maskeli Öz-Dikkat): Gelecekteki tokenleri maskeleyerek yalnızca geçmişe bakar; GPT ailesi ve Llama gibi otoregresif dil modellerinin temel dikkat modudur.
- check_circle Multi-Head Attention (Çok Başlı Dikkat): Öz-dikkati birden fazla paralel başla çalıştırır; her baş sözdizimi, eş gönderim ya da konum yakınlığı gibi farklı ilişki türlerini yakalar.
- check_circle FlashAttention: Dikkat hesabını GPU SRAM'ine sığan bloklar halinde yapan IO-farkında çekirdek; standart uygulamaya göre 2-4 kat hız ve çok daha düşük bellek kullanımı sunar.
Uzun Dizi Sorunu ve Çözümler
Standart öz-dikkat dizi uzunluğuyla O(n^2) karmaşıklığa sahip olduğundan 128K ya da 1M tokenlik bağlam pencereleri geleneksel uygulamalarda bellek sınırını aşar. Bu sorun için geliştirilen yaklaşımların en yaygını FlashAttention'dır: GPU SRAM'ini akıllıca kullanan blok tabanlı hesaplama ile n x n boyutundaki dikkat matrisini hiç belleğe yazmadan sonucu üretir, böylece hem hız artar hem bellek düşer. Longformer ve BigBird kayan pencere dikkatiyle yerel ilişkilere odaklanır, seçili global tokenlerle uzak bağlantıyı korur. Linformer anahtar ve değer matrislerini düşük ranklı projeksiyonla küçülterek doğrusal karmaşıklığa yaklaşır. Ring Attention dikkat hesabını birden fazla GPU'ya dağıtarak teorik dizi sınırını yükseltir. Çıkarım tarafında KV önbelleği ve Grouped-Query Attention (GQA) bellek trafiğini azaltır; Llama 3.1 gibi üretim modelleri 128K bağlamda GQA ve FlashAttention birlikteliğiyle çalışır.
Öz-Dikkatin Dil Dışındaki Kullanımları
Öz-dikkat token kavramını genel tuttuğu için dil dışındaki alanlara doğrudan taşınabilir. Vision Transformer (ViT) bir görüntüyü 16x16 piksellik yamalara böler, her yamayı bir token olarak gömer ve yamalar arasında öz-dikkat uygular; bu yaklaşım büyük veri kümelerinde evrişimli ağlarla rekabet eder. AlphaFold2 protein kalıntı çiftleri arasındaki ilişkileri öz-dikkat tabanlı Evoformer bloğuyla modelleyerek üç boyutlu yapı tahmininde çığır açmıştır. Ses alanında Whisper ve wav2vec 2.0 spektrogram karelerini token olarak işler; video modelleri uzamsal ve zamansal dikkati ayrı eksenlerde uygular. Öneri sistemlerinde kullanıcı etkileşim dizileri, çizge sinir ağlarında ise komşu düğümler dikkat ağırlıklarıyla harmanlanır. Ortak nokta, sıralı ya da kümesel her verinin eleman çiftleri arasındaki ilişkisini öğrenilebilir ağırlıklarla ifade edebilmesidir.
Sık Sorulan Sorular
- check_circle Self-attention ile cross-attention arasındaki fark nedir? Self-attention'da Q, K ve V aynı diziden üretilir; model dizinin kendi içindeki ilişkileri öğrenir. Cross-attention'da Q bir diziden (decoder), K ve V başka bir diziden (encoder) gelir; farklı modaliteler ya da diziler arasında bilgi aktarımı bu yolla yapılır.
- check_circle Maskeli öz-dikkat neden gerekli? Otoregresif dil üretiminde model o ana kadar üretilen tokenleri bilir ama gelecekteki tokenlere bakamamalıdır; aksi halde eğitimde cevabı görür, çıkarımda ise o bilgi zaten yoktur. Üst üçgen maske gelecek konumlara erişimi kapatır.
- check_circle Öz-dikkat neden O(n^2)? Daha verimli yapılabilir mi? Her token diğer n-1 tokenle karşılaştırıldığından n^2 nokta çarpımı yapılır. Linformer düşük ranklı yaklaşımla bu maliyeti düşürür; FlashAttention aynı matematiği daha verimli bellek erişimiyle hesaplar (karmaşıklık aynı kalır, gerçek hız çok daha yüksektir).
- check_circle Self-attention PyTorch'ta nasıl uygulanır? torch.nn.MultiheadAttention sınıfı ya da PyTorch 2.0 ile gelen F.scaled_dot_product_attention fonksiyonu kullanılır. İkincisi uygun donanımda FlashAttention çekirdeğini otomatik seçer ve basit uygulamalar için en iyi başlangıç noktasıdır.
- check_circle Dikkat ağırlıkları yorumlanabilir mi? Dikkat ağırlıkları sezgisel yorumlar sunsa da Jain ve Wallace (2019) gibi çalışmalar bunların nedensellik değil korelasyon taşıdığını göstermiştir. Integrated Gradients gibi gradyan tabanlı yöntemler daha güvenilir kabul edilir; alan hâlâ tartışmalıdır.
- check_circle Self-attention NLP dışında kullanılıyor mu? Evet. Vision Transformer görüntü yamalarını token olarak işler, AlphaFold2 protein kalıntı çiftlerini öz-dikkatle modeller. Ses, video, öneri sistemleri ve çizgeler üzerinde de transformer tabanlı yaklaşımlar yaygınlaştı.