tag verimlilik

Grouped-Query Attention (Gruplu Sorgu Dikkati (GQA))

Bu sayfada verimlilik (Grouped-Query Attention (Gruplu Sorgu Dikkati (GQA))) etiketi ile işaretlenmiş 4 yapay zeka kavramını bulabilirsiniz.

Grouped-Query Attention (GQA, Gruplu Sorgu Dikkati), transformer mimarisindeki dikkat mekanizmasını hem bellek hem de hesaplama açısından daha verimli hale getiren bir varyanttır. Yöntem 2023 yılında Google Research ekibinden Joshua Ainslie ve arkadaşları tarafından "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints" makalesiyle önerildi ve kısa sürede Llama 2 70B, Llama 3, Mistral 7B, Gemma 2 ve Qwen 2.5 gibi açık ağırlıklı modellerin ortak tercihi oldu. Klasik çok başlı dikkat (Multi-Head Attention, MHA) mimarisinde her sorgu (query) başı kendine ait bir anahtar-değer (key-value, K-V) çiftine sahiptir. Bu yapı en yüksek model kapasitesini sunar; ancak çıkarım sırasında üretilen her token için tüm K-V başlarının önbellekte tutulması gerekir ve uzun bağlamlarda GPU belleği hızla dolar. Multi-Query Attention (MQA) ise tüm sorgu başlarını tek bir K-V çiftiyle eşleştirir; bellek kullanımı çok düşer, fakat model kalitesinde ölçülebilir kayıp görülebilir ve eğitim kararsızlaşabilir. GQA bu iki uç arasında ayarlanabilir bir orta yol kurar. H adet sorgu başı G gruba bölünür ve her gruptaki başlar tek bir K-V çiftini paylaşır. KV önbelleğinin boyutu artık H ile değil G ile ölçeklenir; G = H olduğunda yapı MHA'ya, G = 1 olduğunda MQA'ya dönüşür. Llama 3 8B modeli 32 sorgu başını 8 K-V başıyla eşleştirir; bu yapılandırma MHA'ya kıyasla KV önbelleğini dört kat küçültür. 70B modelde 64 sorgu başı yine 8 K-V başını paylaşır ve tasarruf sekiz kata çıkar. Pratik sonuçları belirgindir: aynı GPU belleğiyle 128K token ve üzeri bağlam pencereleri işlenebilir, saniyede üretilen token sayısı artar ve çok kullanıcılı üretim ortamlarında daha büyük batch boyutları çalıştırılabilir. GQA, FlashAttention çekirdekleri ve RoPE konum kodlamasıyla doğrudan uyumludur; vLLM, TensorRT-LLM ve llama.cpp gibi çıkarım motorları bu yapıyı yerel olarak destekler. Ainslie ve arkadaşlarının deneyleri, MHA ile eğitilmiş bir modelin K-V başlarının ortalama havuzlama ile birleştirilip kısa bir ek eğitim (uptraining) uygulanarak, orijinal eğitim bütçesinin yaklaşık yüzde beşiyle GQA'ya dönüştürülebildiğini göstermiştir.

code_blocks

Grouped-Query Attention (Gruplu Sorgu Dikkati (GQA))

Grouped-Query Attention (GQA, Gruplu Sorgu Dikkati), transformer mimarisindeki dikkat mekanizmasını hem bellek hem de hesaplama açısından daha verimli hale getiren bir varyanttır. Yöntem 2023 yılında Google Research ekibinden Joshua Ainslie ve arkadaşları tarafından "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints" makalesiyle önerildi ve kısa sürede Llama 2 70B, Llama 3, Mistral 7B, Gemma 2 ve Qwen 2.5 gibi açık ağırlıklı modellerin ortak tercihi oldu. Klasik çok başlı dikkat (Multi-Head Attention, MHA) mimarisinde her sorgu (query) başı kendine ait bir anahtar-değer (key-value, K-V) çiftine sahiptir. Bu yapı en yüksek model kapasitesini sunar; ancak çıkarım sırasında üretilen her token için tüm K-V başlarının önbellekte tutulması gerekir ve uzun bağlamlarda GPU belleği hızla dolar. Multi-Query Attention (MQA) ise tüm sorgu başlarını tek bir K-V çiftiyle eşleştirir; bellek kullanımı çok düşer, fakat model kalitesinde ölçülebilir kayıp görülebilir ve eğitim kararsızlaşabilir. GQA bu iki uç arasında ayarlanabilir bir orta yol kurar. H adet sorgu başı G gruba bölünür ve her gruptaki başlar tek bir K-V çiftini paylaşır. KV önbelleğinin boyutu artık H ile değil G ile ölçeklenir; G = H olduğunda yapı MHA'ya, G = 1 olduğunda MQA'ya dönüşür. Llama 3 8B modeli 32 sorgu başını 8 K-V başıyla eşleştirir; bu yapılandırma MHA'ya kıyasla KV önbelleğini dört kat küçültür. 70B modelde 64 sorgu başı yine 8 K-V başını paylaşır ve tasarruf sekiz kata çıkar. Pratik sonuçları belirgindir: aynı GPU belleğiyle 128K token ve üzeri bağlam pencereleri işlenebilir, saniyede üretilen token sayısı artar ve çok kullanıcılı üretim ortamlarında daha büyük batch boyutları çalıştırılabilir. GQA, FlashAttention çekirdekleri ve RoPE konum kodlamasıyla doğrudan uyumludur; vLLM, TensorRT-LLM ve llama.cpp gibi çıkarım motorları bu yapıyı yerel olarak destekler. Ainslie ve arkadaşlarının deneyleri, MHA ile eğitilmiş bir modelin K-V başlarının ortalama havuzlama ile birleştirilip kısa bir ek eğitim (uptraining) uygulanarak, orijinal eğitim bütçesinin yaklaşık yüzde beşiyle GQA'ya dönüştürülebildiğini göstermiştir.

arrow_forward
code_blocks

Kayan Pencere Dikkati (Sliding Window Attention)

Kayan Pencere Dikkati (Sliding Window Attention, SWA), transformer mimarisinde her tokenın bütün diziye değil yalnızca belirli bir pencere boyutundaki komşu tokenlara dikkat ettiği verimli bir attention yöntemidir. Klasik tam dikkat (full self-attention) O(n²) bellek ve hesaplama karmaşıklığına yol açarken, kayan pencere yaklaşımı bunu O(n·w) düzeyine indirir; burada w pencere boyutunu gösterir. Tam dikkat mekanizmasında n uzunluğundaki bir dizi için n² çift dikkat hesaplamak gerekir; bu, 8.192 token uzunluğunda bile yaklaşık 67 milyon hesaplama anlamına gelir. Kayan Pencere Dikkati'nde her token yalnızca kendi konumunun w/2 soluna ve sağına dikkat eder. Pencere dizi boyunca kaydırılır ve bellek tüketimi sabit kalır. Mistral 7B bu mekanizmayı temel attention katmanlarında benimseyerek hem çıkarım hızını artırmış hem de uzun bağlam işleme kapasitesini genişletmiştir. Longformer ise yerel kayan pencereyi, belgelerin tamamını temsil eden global dikkat tokenleriyle birleştirerek soru-cevap ve özetleme görevlerinde başarılı sonuçlar elde etmiştir. BigBird modeli de benzer bir yaklaşımla yerel, global ve rastgele dikkat kombinasyonunu kullanır. Kayan Pencere Dikkati, uzak tokenlara doğrudan erişimi kısıtladığından bazı görevlerde tam dikkate kıyasla dezavantaj yaratabilir. Bu sınırlamayı aşmak için genellikle dönüşümlü katmanlar kullanılır: modelin bazı katmanları tam dikkat, bazıları ise kayan pencere dikkati uygular. Mistral bu stratejiyi benimseyerek hesaplama verimliliğini korurken uzun menzilli bağımlılıkları yönetme kapasitesini de sürdürür. Uzun bağlamlı uygulamaların giderek yaygınlaşmasıyla birlikte — hukuk belgeleri analizi, uzun kod tabanları, bilimsel makaleler — Kayan Pencere Dikkati ve benzeri verimlilik teknikleri (Flash Attention, GQA) LLM altyapısının temel bileşenleri haline gelmiştir. GPT-4 Turbo ve Claude'un 200K token desteği gibi örnekler, bu tür verimlilik mekanizmalarının önkoşulluğunu ortaya koymaktadır. Hukuk belgesi analizi, kod tabanı inceleme ve uzun bilimsel raporların özetlenmesi bu mekanizmanın doğrudan yararlı olduğu alanlardır.

arrow_forward
code_blocks

Mixture of Depths (Derinlik Karışımı)

Mixture of Depths (MoD, Türkçesiyle Derinlik Karışımı), transformer tabanlı dil modellerinde her tokenin her katmandan geçmesi kuralını gevşeten, hesaplama bütçesini token ve katman bazında dinamik olarak dağıtan bir adaptif hesaplama yöntemidir. Google DeepMind araştırmacıları (Raposo ve arkadaşları) tarafından 2024 yılında yayımlanan "Mixture-of-Depths: Dynamically allocating compute in transformer-based language models" makalesiyle tanıtıldı. Çıkış noktası basit bir gözlemdir: bir dizideki tokenlerin hepsi aynı derecede zor değildir; bazı tokenler için tam dikkat ve ileri besleme hesaplaması gereksizdir. Standart transformer bu farkı görmez ve her tokene aynı miktarda hesaplama harcar. MoD'de her transformer bloğunun başında hafif bir yönlendirici (router) bulunur. Yönlendirici her token için skaler bir ağırlık üretir; en yüksek ağırlığa sahip ilk k token bloğun tam işleminden (öz-dikkat ve MLP) geçer, kalan tokenler artık bağlantı (residual connection) üzerinden değişmeden bir sonraki bloğa aktarılır. Buradaki k değeri sabit bir kapasite olarak önceden belirlenir; makalede en iyi sonuçlar her iki blokta bir yönlendirme yapıp kapasiteyi dizinin %12,5'i ile sınırlamakla elde edilmiştir. Kapasitenin sabit olması önemli bir mühendislik avantajı getirir: tensör boyutları önceden bilindiği için hesaplama grafiği statik kalır ve donanım verimliliği erken çıkış (early exit) gibi dinamik yöntemlere göre çok daha iyidir. Yöntem, Mixture of Experts (MoE) ile sık karıştırılır ama farklı bir ekseni kontrol eder. MoE bir tokenin hangi uzman ağ tarafından işleneceğini seçerken, MoD tokenin bu blokta işlenip işlenmeyeceğini seçer. İki yaklaşım birbirine dik olduğundan aynı modelde birleştirilebilir; makale bu birleşimi MoDE (Mixture of Depths and Experts) adıyla sunar. Deneysel sonuçlara göre MoD modelleri, eşit eğitim FLOPs bütçesinde temel modellerden daha düşük kayıp değerine ulaşır; eşit kalitede ise ileri geçiş başına FLOPs belirgin biçimde azalır ve örnekleme sırasında adım süresi %50'ye kadar kısalır. MoD'nin en dikkat çekici zorluğu otoregresif üretimdir. Top-k seçimi dizideki tüm tokenleri görmeyi gerektirir, oysa üretim sırasında gelecekteki tokenler henüz yoktur. Makale bunun için iki çözüm önerir: yönlendirici çıktısına eklenen yardımcı bir ikili sınıflandırma kaybı ya da tokenin ilk k'ye girip girmeyeceğini tahmin eden küçük bir yardımcı MLP. Her iki yaklaşım da kalite kaybını ihmal edilebilir düzeyde tutar. MoD günümüzde araştırma aşamasında olup çok modlu büyük modeller için γ-MoD ve p-MoD gibi türevleri yayımlanmıştır.

arrow_forward
code_blocks

Sparse Attention (Seyrek Dikkat)

Seyrek dikkat (Sparse Attention), standart Transformer dikkat mekanizmasının hesaplama karmaşıklığını azaltmak için geliştirilen ve her tokenin yalnızca seçilmiş bir token alt kümesiyle dikkat hesabı yaptığı bir optimizasyon yaklaşımıdır. Standart dikkat O(n²) karmaşıklığına sahiptir; n token uzunluğu arttıkça hesaplama ve bellek maliyeti karesel büyür. Seyrek dikkat bu karesel bağımlılığı kırar; farklı örüntülere göre O(n√n) veya O(n log n) karmaşıklığa düşürebilir. Temel seyrek dikkat örüntüleri şunlardır: (1) **Yerel pencere dikkati** — her token yalnızca yakın komşularıyla ilişki kurar; (2) **Uzun adımlı dikkat (strided)** — her token belirli aralıklarla seçilmiş uzak tokenleri de kapsar; (3) **Küresel token dikkati** — belirli ayrıcalıklı tokenler (ör. [CLS]) tüm diğer tokenlerle etkileşir. BigBird ve Longformer bu stratejileri birleştirerek hem yerel bağlamı hem de uzun menzilli bağımlılıkları yakalar. FlashAttention ailesi seyrek dikkat olmasa da IO-aware bir kernel optimizasyonu sunarak dikkat hesabını GPU bellek hiyerarşisine göre yeniden düzenler; böylece uzun bağlamlarda hem hız hem de bellek verimliliği sağlar. Mixture of Depths ve Ring Attention gibi 2024-2026 dönemine ait yaklaşımlar ise seyrek hesaplamanın donanım ve model mimarisine daha derin entegrasyonunu araştırmaktadır. Pratik kullanımda GPT-3'ün Sparse Transformer varyantı, OpenAI'nin erken uzun bağlam çalışmalarından biri olmuştur. Günümüzde 1M token ve üzeri bağlam pencerelerini destekleyen modeller (Claude 3.5, Gemini 1.5 Pro) genellikle FlashAttention ve bunun varyantlarını yoğun dikkat için kullanırken, bazı hibrit mimariler katman bazında seyrek ve yoğun dikkati karıştırır. Seyrek dikkat, özellikle uzun belge işleme, kod analizi, genomik veri ve video dizileri gibi alanlarda kritik önem taşır; bu alanlarda tam dikkat bellek sınırlarını aşmaktadır. Türkiye'deki geliştiriciler için bu optimizasyonlar; uzun hukuki belgeler, çok sayfalı raporlar veya uzun konuşma oturumları üzerinde çalışan uygulamalarda belirgin fark yaratmaktadır.

arrow_forward