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.
Uzun Bağlam Sorunu ve Çözümler
- check_circle O(n²) Darboğazı: Standart öz-dikkette n token için n² işlem ve bellek gerekir. 128K token bağlamda bu hesaplama standart GPU'lar için aşırıdır; alternatif yöntemler bu sorunu çözer.
- check_circle Flash Attention: GPU HBM'i yerine SRAM'i verimli kullanan hesaplama sırası; aynı matematiksel çıktıyı üretirken bellek kullanımını dramatik biçimde azaltır. Modern tüm büyük modellerin standart bileşenidir.
- check_circle Sliding Window Attention: Her token yalnızca yakın komşularıyla dikkat işlemi yapar; yerel örüntüler için verimlidir. Mistral ve bazı Gemma versiyonları bu tekniği kullanır.
- check_circle RoPE ve ALiBi: Rotary Position Embedding (RoPE) ve Attention with Linear Biases (ALiBi), modelin eğitim bağlamı ötesine daha iyi genelleşmesini sağlayan konum kodlama alternatifleridir; LLaMA ve Mistral serisi RoPE kullanır.
Attention'dan Türeyen Mimariler
- check_circle Orijinal Transformer (Vaswani et al., 2017): "Attention Is All You Need" makalesiyle tanıtılan kodlayıcı-çözücü mimarisi; makine çevirisini CNN/RNN'den tamamen bağımsız biçimde çözdü ve modern AI'ın dönüm noktasıdır.
- check_circle BERT (Kodlayıcı): Çift yönlü öz-dikkat kullanır; her token hem sol hem sağ bağlamı görür. Doğal dil anlama (NLU) görevlerinde standart ön eğitimli model oldu.
- check_circle GPT serisi (Çözücü): Nedensel (causal) öz-dikkat ile soldan sağa üretici model; her token yalnızca önceki tokenleri görür. Büyük dil modellerinin dominant mimarisi.
- check_circle Vision Transformer (ViT): Görüntüyü 16×16 piksel yamalara böler, her yamayı token olarak işler ve öz-dikkat uygular. ConvNet egemenliğine meydan okudu; büyük veri kümelerinde CNN'leri geride bırakmaktadır.
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.
- check_circle Dikkat başı sayısı (number of heads) neden önemlidir?: Her baş farklı bir alt uzayda dikkat öğrenir: biri sözdizimi, diğeri anlamsal ilişki, bir diğeri uzak bağımlılıklar gibi. Başların birleşimi modelin dili temsil etme zenginliğini artırır. GPT-3'te 96 dikkat başı mevcuttur.
- check_circle Dikkat mekanizması açıklanabilirlik için kullanılabilir mi?: Dikkat ağırlıkları zaman zaman model kararının 'neden'ini açıklamak için kullanılmış olsa da araştırmalar dikkat ağırlıklarının her zaman gerçek nedensel yorumu yansıtmadığını göstermiştir. Gradient tabanlı yöntemler (Integrated Gradients) çoğu zaman daha güvenilirdir.