schema GQA Nasıl Çalışır?
Transformer'ın dikkat katmanında her token için sorgu (Q), anahtar (K) ve değer (V) vektörleri üretilir. MHA'da bu üç projeksiyon H baş için ayrı ayrı hesaplanır ve çıkarım sırasında her katmanın K ile V çıktıları KV önbelleğinde saklanır. GQA'da sorgu projeksiyonu H baş için korunur, ancak anahtar ve değer projeksiyonları yalnızca G baş için hesaplanır. Çıkarım anında her K-V başı, kendisine bağlı H/G sorgu başı tarafından ortak kullanılır; uygulamada bu, K ve V tensörlerinin H/G kez tekrarlanması (repeat_interleave) ya da FlashAttention gibi çekirdeklerin gruplu yapıyı doğrudan tanıması ile yapılır. Dikkat skoru hesabı ve softmax adımları değişmez; değişen tek şey K-V başlarının sayısıdır. Bu nedenle model parametreleri de azalır: Llama 3 8B'de K ve V projeksiyon matrisleri, MHA eşleniğinin dörtte biri boyutundadır.
MHA, MQA ve GQA Karşılaştırması
grid_view Multi-Head Attention (MHA)
Her sorgu başına ayrı K-V çifti. En yüksek model kapasitesi; KV önbelleği H ile ölçeklenir ve uzun bağlamda VRAM darboğazı oluşur. Örnek: GPT-2, BERT, Llama 2 7B ve 13B.
filter_1 Multi-Query Attention (MQA)
Tüm sorgu başları tek bir K-V çiftini paylaşır. En küçük önbellek ve en yüksek hız; kalite kaybı ve eğitim kararsızlığı riski taşır. Örnek: PaLM, Falcon 7B.
workspaces Grouped-Query Attention (GQA)
H sorgu başı G gruba bölünür; her gruba bir K-V çifti düşer. MHA kalitesine yakın, MQA hızına yakın. Örnek: Llama 3, Mistral 7B, Gemma 2, Qwen 2.5.
bolt GQA'nın Temel Avantajları
- check_circle KV önbellek tasarrufu: Önbellek boyutu H yerine G ile ölçeklenir; Llama 3 8B için MHA eşleniğine göre dört kat, 70B için sekiz kat daha az VRAM gerekir.
- check_circle Daha yüksek çıkarım hızı: Küçülen önbellek bellek bant genişliği baskısını azaltır; decode aşamasında saniyede üretilen token sayısı belirgin biçimde artar.
- check_circle Uzun bağlam desteği: Aynı GPU belleğiyle 128K token ve üzeri bağlam pencereleri işlenebilir; belge analizi ve uzun diyalog görevlerinde belirleyici avantaj.
- check_circle Daha büyük batch boyutu: Çok kullanıcılı servislerde istek başına düşen önbellek küçüldüğü için aynı anda daha fazla istek işlenir; vLLM ve TensorRT-LLM bu kazanımı doğrudan kullanır.
- check_circle Kalite ve verimlilik dengesi: MQA'nın aksine GQA, karşılaştırma testlerinde MHA ile neredeyse aynı doğruluğu korurken verimlilik kazanımlarının büyük bölümünü alır.
memory Uzun Bağlamda Bellek Hesabı
KV önbelleğinin token başına boyutu şu çarpımla bulunur: 2 (K ve V) x katman sayısı x K-V başı sayısı x baş boyutu x veri tipi bayt sayısı. Llama 3 8B için değerler 32 katman, 8 K-V başı, 128 baş boyutu ve FP16 (2 bayt) olduğunda token başına 128 KB önbellek gerekir. Aynı model MHA ile, yani 32 K-V başıyla tasarlanmış olsaydı bu değer 512 KB olurdu. 128K tokenlik bir bağlamda fark çarpıcıdır: GQA ile yaklaşık 16 GB, MHA ile yaklaşık 64 GB önbellek. Tek bir 24 GB tüketici GPU'sunda GQA'lı model ağırlıklarla birlikte uzun bağlamı sığdırabilirken MHA sürümü çok GPU'lu bir kurulum gerektirirdi. Bu hesap, GQA'nın neden 7B ile 70B arasındaki hemen her yeni modelde varsayılan tercih olduğunu açıklar; kuantizasyon ve PagedAttention gibi teknikler de bu tasarrufun üzerine eklenir.
model_training GQA Kullanan Öne Çıkan Modeller
- check_circle Llama 2 70B (Meta, 2023): 64 sorgu başı, 8 K-V başı. GQA kullanan ilk büyük ölçekli açık ağırlıklı model; 7B ve 13B sürümleri hâlâ MHA kullanır.
- check_circle Llama 3 8B ve 70B (Meta, 2024): 8B: 32 sorgu, 8 K-V başı. 70B: 64 sorgu, 8 K-V başı. Ailenin tüm boyutları GQA ile eğitildi.
- check_circle Mistral 7B (Mistral AI, 2023): 32 sorgu, 8 K-V başı; Sliding Window Attention ile birleştirilerek uzun dizilerde sabit bellek kullanımı hedeflendi.
- check_circle Gemma 2 (Google, 2024): 9B: 16 sorgu, 8 K-V başı. 27B: 32 sorgu, 16 K-V başı. Yerel ve küresel dikkat katmanları dönüşümlü kullanılır.
- check_circle Qwen 2.5 (Alibaba, 2024): 7B: 28 sorgu, 4 K-V başı. 72B: 64 sorgu, 8 K-V başı. Türkçe dahil 29 dili destekleyen çok dilli aile.
settings Teknik Uygulama Detayları
- check_circle Grup sayısı seçimi: G, H'nin böleni olmalıdır; pratikte G = 8 yaygın bir tercih çünkü tensör paralelliğinde 8 GPU'ya her birine bir K-V başı düşecek biçimde dağıtılabilir.
- check_circle RoPE ile uyum: Dönel konum kodlaması Q ve K vektörlerine uygulanır; paylaşılan K başları için kodlama bir kez hesaplanıp gruptaki tüm sorgu başlarıyla eşleştirilir.
- check_circle FlashAttention desteği: FlashAttention 2 ve 3 çekirdekleri GQA'yı yerel olarak tanır; K-V tensörlerini bellekte çoğaltmadan gruplu hesaplama yapar, böylece iki tekniğin tasarrufu birbirini tamamlar.
- check_circle MHA'dan GQA'ya dönüşüm: MHA ile eğitilmiş bir kontrol noktasında K ve V projeksiyon matrisleri grup içinde ortalama havuzlama ile birleştirilir; ardından orijinal bütçenin yaklaşık yüzde beşi kadar ek eğitim (uptraining) kalite kaybını kapatır.
- check_circle Kütüphane desteği: Hugging Face Transformers'ta num_key_value_heads parametresi, vLLM ve llama.cpp'de ise model yapılandırması GQA'yı otomatik olarak etkinleştirir; ek kod gerekmez.
help Sık Sorulan Sorular
- check_circle GQA neden MHA yerine tercih ediliyor? Büyük modellerde çıkarım sırasında KV önbelleği en büyük bellek tüketicisi haline gelir. GQA bu maliyeti H/G kat azaltırken model kalitesini MHA düzeyine yakın tutar; aynı donanımda daha uzun bağlam ve daha fazla eş zamanlı kullanıcı anlamına gelir.
- check_circle GQA ile MQA arasında ne zaman hangisi seçilmeli? Çok kısıtlı donanımda ve kalite kaybının tolere edilebildiği durumlarda MQA tercih edilebilir. Üretim ortamlarında ve 7B üzeri modellerde GQA daha güvenli seçimdir; günümüzde yeni modellerin neredeyse tamamı GQA kullanır.
- check_circle GQA uzun bağlam modellerinde neden kritik? KV önbellek boyutu bağlam uzunluğuyla doğru orantılı büyür. 128K token bağlamında MHA ile Llama 3 8B için 64 GB önbellek gerekirken GQA bu talebi 16 GB'a indirir ve tek GPU'da pratik uzun bağlam işlemeyi mümkün kılar.
- check_circle Mevcut bir modeli GQA'ya dönüştürmek mümkün mü? Evet. MHA eğitimli modellerde K-V başları ortalama havuzlamayla birleştirilerek GQA yapısına geçilir; orijinal eğitim bütçesinin yaklaşık yüzde beşi kadar ek eğitim, kalite kaybını büyük ölçüde telafi eder.
- check_circle GQA'nın alternatifi var mı? DeepSeek-V2 ve V3 modellerinde kullanılan Multi-head Latent Attention (MLA), K ve V'yi düşük boyutlu bir gizli vektöre sıkıştırarak önbelleği GQA'dan da küçültür. Ancak uygulama karmaşıklığı daha yüksektir; GQA hâlâ en yaygın tercihtir.
- check_circle GQA Türkçe modelleri etkiler mi? GQA bir tokenizasyon veya dil özelliği değil, mimari bir seçimdir. Türkçe destekli Llama 3, Qwen 2.5 ve Mistral tabanlı modeller GQA kullanır; Türkçe veriyle ince ayar yapıldığında mimari değişmez.