Dikkat Mekanizması Nasıl Çalışır?
Girdi dizisindeki her öğe, üç doğrusal dönüşümle Sorgu (Q), Anahtar (K) ve Değer (V) vektörlerine dönüştürülür. Q ve K matrislerinin transpozu çarpılarak ham uyumluluk skorları elde edilir; √d_k ile bölme gradyanların patlamasını önler. Softmax fonksiyonu bu skorları 0-1 arasında normalize eder; her öğenin dikkat ağırlığını verir. Son olarak ağırlıklar V ile çarpılarak çıktı vektörü oluşturulur. Bu işlem O(n²) karmaşıklığındadır; uzun diziler için Flash Attention bu maliyeti bellek açısından optimize eder.
Dikkat Türleri
Öz-Dikkat
Dizi kendi içindeki öğeler arasındaki ilişkileri öğrenir; BERT'te her token tüm tokenlerle etkileşir.
Çapraz Dikkat
Çeviri gibi kodlayıcı-çözücü görevlerinde çözücü sorgusu, kodlayıcı anahtar/değer çiftiyle etkileşir.
Çok Başlı Dikkat
Paralel birden çok dikkat başı farklı dilbilgisel ve semantik alt uzayları öğrenir; başlar birleştirilir.
Flash Attention
GPU belleğini verimli kullanan IO-aware uygulama; pratik olarak O(n) bellek karmaşıklığıyla çalışır.
Dikkat Mekanizmasının Kullanım Alanları
- check_circle Dil Modelleri: GPT, BERT ve tüm Transformer tabanlı LLM'ler öz-dikkati temel yapı taşı olarak kullanır.
- check_circle Makine Çevirisi: Kodlayıcı-çözücü modellerinde çapraz dikkat, kaynak ve hedef cümle tokenlerini hizalar.
- check_circle Görüntü İşleme: Vision Transformer (ViT) görüntü yamalarına öz-dikkat uygular; nesne tanıma ve segmentasyonda etkili.
- check_circle Çok Modlu Modeller: Metin ve görüntü gibi farklı modaliteler arasındaki ilişkileri çapraz dikkatle modelleyen CLIP benzeri mimariler.
Sıkça Sorulan Sorular
- check_circle Attention ile attention-mechanism arasında fark var mı?: Attention mekanizması genel kavramı kapsarken 'self-attention' ya da 'multi-head attention' belirli uygulamaları tanımlar. Bu sayfadaki Attention terimi, makine çevirisinden LLM'lere uzanan geniş dikkat ailesidir.
- check_circle Attention neden O(n²) karmaşıklığındadır?: Her token diğer tüm tokenlerle karşılaştırılır; n uzunluklu dizide n×n uyumluluk matrisi hesaplanır. Flash Attention bellekte bu matrisi parçalayarak bellek tüketimini O(n)'e indirir.
- check_circle Konumsal kodlama neden gereklidir?: Dikkat mekanizması sıra bilgisi içermez; aynı tokenler farklı sırayla gelse aynı dikkat çıktısı üretilir. Sinüzoidal veya öğrenilebilir konumsal kodlama bu eksikliği giderir.