MLA Multi-head Latent Attention DeepSeek KV Cache Transformer LLM Dikkat Mekanizması

Multi-head Latent Attention (MLA) Nedir?

İleri
person Yapay Zeka Uzmanı
list_altİçindekilerexpand_more
  1. 01Dikkat mekanizmalarının evrimi: MHA’dan MLA’ya
  2. 02MLA nasıl çalışır?
  3. 03Sayılarla MLA: ne kadar tasarruf?
  4. 04MLA’nın avantajları ve hesap maliyeti
  5. 05GQA yerine neden MLA?
  6. 06Üretimde MLA: maliyet ve ölçek
  7. 07MLA ve diğer optimizasyonlarla ilişkisi
  8. 08Teknik özellikler özeti
  9. 09MLA’nın sektöre etkisi
  10. 10MLA’yı anlamak neden önemli?
Editorial tech-magazine cover illustration about multi-head latent attention compression in transformer neural networks, a glowing compact latent vector compressing radiant multi-head attention pathways, low-dimensional projection with expanding neural connections, abstract artificial-intelligence motifs (glowing neural networks, flowing data, subtle circuitry), sophisticated modern concept art, clean balanced composition, soft cinematic studio lighting, rich depth of field, premium color grading in deep navy blues with cyan and magenta accents, highly detailed, polished editorial 8k. No text, no words, no letters, no captions, no logos, no watermark, no UI.

Multi-head Latent Attention (MLA): DeepSeek'in KV cache sıkıştırma mimarisi

DeepSeek-V2 tanıtıldığında dikkat çeken yalnızca model büyüklüğü değildi. Çıkarım maliyetinin rakiplerine kıyasla beşte birine inmesi mimariye yönelik ilgiyi artırdı. Multi-head Latent Attention adını verilen bir dikkat mekanizması bu maliyet düşüşünün büyük bölümünden sorumluydu.

MLA, transformer mimarisindeki dikkat katmanını köklü biçimde yeniden tasarlar. Key ve Value matrislerini üretmeden önce düşük boyutlu bir ara uzaya sıkıştırır; bu adım hem GPU bellek tüketimini hem de çıkarım maliyetini doğrudan etkiler.

Dikkat mekanizmalarının evrimi: MHA’dan MLA’ya

Dikkat ailesi birkaç kuşak boyunca gelişti ve her adım bir öncekinin açık bıraktığı bir sorunu ele aldı.

Multi-head Attention (MHA) orijinal transformer mimarisindeki yapıdır. Her dikkat kafası kendi bağımsız Query, Key ve Value matrislerini tutar. İfade gücü açısından güçlüdür ama her token için her katmanda hem K hem V vektörlerini saklamak gerekir. KV Cache devreye girdiğinde bu birikimin GPU belleğini ne kadar hızlı doldurduğu görülür: bağlam uzadıkça veya batch büyüdükçe bellek tüketimi katlanarak artar.

Multi-query Attention (MQA) bu sorunun ilk yanıtıydı. Tüm kafalar tek bir Key ve Value setini paylaşır; bellek tüketimi önemli ölçüde düşer. Ama kalite kaybı belirgindir: kafalar arası çeşitlilik yok olunca modelin ifade kapasitesi daralır.

Grouped Query Attention (GQA) MQA ile MHA arasında bir orta yol açar. Kafalar gruplara bölünür ve her grup kendi K/V setini paylaşır. Llama 3, Mistral ve Gemma 2 bu yöntemi benimser. Bellek tasarrufu makul düzeyde kalırken kalite kaybı görece kontrol altında tutulur.

Multi-head Latent Attention (MLA) bu denkleme farklı bir açıdan girer. Doğrudan K ve V matrislerini saklamak yerine bunların her ikisini de üretecek küçük bir latent vektörü sıkıştırır ve yalnızca bu vektörü önbellekte tutar. Çıkarım sırasında gerçek K ve V matrisleri bu latent vektörden anlık üretilir. Bellek tüketimi MHA’nın çok altına inerken kapasite kaybı MQA’ya kıyasla önemli ölçüde azalır.

MLA nasıl çalışır?

MLA’nın merkezinde low-rank joint compression fikri durur. Klasik MHA’da her token için ayrı K ve V vektörleri hesaplanır ve önbellekte tutulur. MLA’da bu adım farklı işler.

Sıkıştırma (Compression): Model, girdi aktivasyonundan doğrudan K ve V üretmek yerine önce çok daha küçük boyutlu bir vektör üretir. Buna sıkıştırılmış latent vektör denir; gösterimde genellikle c_KV olarak ifade edilir. Orijinal K ve V vektörleri toplam 512 boyutunda olduğunda c_KV yalnızca 64 boyutunda olabilir. Önbellekte tutulan bu küçük vektördür, büyük K ve V değil.

Açma (Decompression): Dikkat hesabı yapılacağı zaman model c_KV vektöründen tam K ve V matrislerini üretir. Bu adım ek çarpım gerektirse de belleğe sürekli büyük matrisleri yazıp okuma maliyetini aşar.

Decoupled RoPE: Pozisyon kodlaması için yaygın kullanılan Rotary Position Embedding (RoPE), sıkıştırılmış K vektörleriyle çakışma yaratır. MLA bu problemi sıkıştırmanın dışında tutulan ayrı bir RoPE bileşeni ekleyerek çözer. Pozisyon bilgisi bağımsız kanaldan taşınır, latent sıkıştırma ile pozisyon kodlaması birbirine karışmaz.

Benzer sıkıştırma mantığı Query vektörlerine de uygulanır; bu parametre sayısını ve hesaplama grafiğini sadeleştirir.

Sayılarla MLA: ne kadar tasarruf?

DeepSeek-V2 teknik raporundaki ölçümler MLA’nın pratikte ne anlama geldiğini somutlaştırır.

236 milyar parametreli MoE mimarisiyle MHA eşdeğeri bir konfigürasyona kıyasla KV cache boyutu yüzde doksan üç küçüldü. Teorik bir tahmin değil; üretimde ölçülen gerçek bellek tasarrufu.

Bellek kısıtının gevşemesi doğrudan throughput’a yansıdı: aynı GPU donanımında işlenebilen eş zamanlı istek sayısı 5.76 kat arttı. Somutlaştırmak gerekirse, daha önce 10 paralel istek işlenebiliyorsa şimdi yaklaşık 57 istek işlenebilir. Bu fark üretimde doğrudan hissedilir.

DeepSeek-V3 (671B) ve DeepSeek-R1 da aynı MLA mimarisini kullanır. R1’in uzun düşünce zinciri üretiminde bu özellikle kritik: model cevaba gelmeden önce yüzlerce token uzunluğunda iç monolog üretir. Standart MHA’da bu birikim GPU belleğini çok daha hızlı doldururdu. MLA’nın sıkıştırılmış latent yapısı uzun zincirli çıkarımı hem bellek hem maliyet açısından çalıştırılabilir tutar.

MLA’nın avantajları ve hesap maliyeti

Her mimari tercih gibi MLA da değiş tokuşları beraberinde getirir.

Bellek açısından kazanım nettir. KV cache’in yüzde doksan üçünün ortadan kalkması ciddi bir GPU bellek boşalması demektir. Bu boşalma iki şekilde kullanılabilir: ya aynı donanımla çok daha büyük batch’ler işlenir ya da toplam bellek ihtiyacı azalarak daha küçük GPU konfigürasyonları yeterli gelir.

Hesaplama açısından tablo daha nüanslıdır. Açma adımı ekstra matris çarpımı gerektirir; bu yük sıfır değildir. Ama modern GPU’larda belleğe yazıp okuma maliyeti çoğunlukla aritmetik işlem maliyetini geçer. HBM I/O darboğazı mevcut olduğunda K ve V’yi depolamak yerine yeniden hesaplamak nette daha verimlidir. Bu, Flash Attention’ın recomputation stratejisiyle aynı mantığı paylaşır.

Donanım etkinliği H100 ve A100’ün tensor core’larının yapısıyla doğrudan bağlantılıdır. Bu çipler matris çarpımında verimli; ancak büyük HBM erişimlerinde darboğazlanır. Sıkıştırılmış vektörler küçüktür ve SRAM’e kolayca sığar, MLA’nın tasarımı bu kısıtla uyumludur.

GQA yerine neden MLA?

GQA makul bir çözüm olmakla birlikte MLA farklı bir trade-off noktası hedefler. GQA’da K ve V saklama yükü kafaların gruplandırılma derecesiyle orantılı biçimde azalır ama sıfıra inmez. Tam MQA’ya gidildiğinde paylaşım nedeniyle dikkat çeşitliliği yok olur.

MLA, K ve V’yi tamamen ortadan kaldırır; yerine bunların her ikisini de üretecek ortak bir latent koyar. Bellek yükü düşerken bu latent vektörün tensör çarpımıyla elde edilen K ve V, tam bağımsız kafalara yakın bir ifade gücü taşır.

Bir benzetme: GQA kütüphanedeki kitapları rafta gruplayarak taşıma sayısını azaltır. MLA ise kitapların özetini saklar, ihtiyaç duyulduğunda tam metni bu özetten türetir.

Üretimde MLA: maliyet ve ölçek

MLA’nın pratikte ne ifade ettiği en iyi üretim ortamında görülür. DeepSeek-V2, rakiplerine kıyasla API maliyetini keskin biçimde düşürdü: MoE mimarisiyle aktif parametre sayısını kontrol altında tutmak, KV cache küçültmesiyle daha büyük batch’ler işlemek ve inference verimliliğini artırmak birlikte bu sonucu verdi.

Akıl yürüten AI modellerini üretime taşımanın önündeki en büyük engellerden biri uzun düşünce zincirlerinin yarattığı bellek baskısıdır. O1 veya R1 tarzı chain-of-thought üretiminde çıktı binlerce token uzayabilir. Her token KV cache’e eklenir; standart MHA’da bu birikim hızla GPU belleğini doldurur ve batch boyutunu zorla düşürür. MLA bu basıncı önemli ölçüde azaltır.

671B’lik DeepSeek-V3 de bu bağlamda düşünülmeli. MoE mimarisi aktif parametre sayısını düşük tutsa da 671B toplam parametre ve onlarca katmanın her birinde attention hesabı yürütülür. MLA olmadan bu ölçeğin bellek faturası çok daha ağır olurdu.

Sayısal etkiyi pratik bir hesapla görmek mümkün. Standart MHA’da 128 kafası olan bir model, her token için her katmanda tam K ve V vektörlerini saklar. Bağlam penceresi 32k token olduğunda bu yük GPU belleğinin büyük bir dilimini tek başına yer. Aynı konfigürasyonda MLA’nın latent boyutu MHA’nın ondalık bir parçasıysa, bu fark doğrudan aynı donanımda aynı anda işlenebilen istek sayısına dönüşür. Gerçek dünya API hizmetlerinde bu çeviri doğrudandır: daha yüksek batch kapasitesi, sabit donanım maliyeti üzerinde daha fazla gelir.

MLA ve diğer optimizasyonlarla ilişkisi

Quantization, KV cache boyutunu azaltmanın başka bir yoludur. Vektörleri 8-bit veya 4-bit hassasiyetle saklamak bellek tüketimini küçültür. MLA ile quantization birbirini dışlamaz: MLA hangi vektörün saklanacağını temelden değiştirirken quantization bu vektörü kaç bitle temsil edeceğini belirler. DeepSeek uygulamalarında her iki teknik paralel kullanılır.

vLLM gibi çıkarım motorları KV cache’i sayfa bazlı dinamik bellekle yönetir. MLA bu motorlarla birleştiğinde sayfalar daha küçük latent vektörler tutar; hem daha az bellek hem de daha yüksek slot verimliliği demektir.

Flash Attention ile ilişki daha dolaylıdır. Flash Attention dikkat matrisinin nasıl hesaplandığını optimize ederken MLA önbellekte ne tutulduğunu değiştirir. Mimari açıdan farklı seviyelerde etki ederler ama bir arada çalışmaya uygundurlar. DeepSeek modellerinin çıkarım yığıtında her iki optimizasyon yer alır.

Teknik özellikler özeti

ÖzellikMHAGQAMQAMLA
KV cache boyutuTam (H × d_kv)Azaltılmış (G × d_kv)Minimal (1 × d_kv)Sıkıştırılmış latent
Kalite kaybıYokDüşükBelirginDüşük-orta
Bellek tasarrufuYokOrtaYüksekÇok yüksek
Ek hesaplamaYokYokYokAçma adımı
DeepSeek kullanımıHayırHayırHayırV2, V3, R1

Tablodan görüleceği üzere MLA, GQA ve MQA arasındaki değiş tokuş eğrisinin dışına çıkarak ayrı bir noktayı hedefler: hem bellek tasarrufu hem de kalite açısından önceki yöntemlerin gerisinde kalmayan bir yapı.

MLA’nın sektöre etkisi

DeepSeek-V2 MLA’yı 2024 başında tanıttıktan sonra dikkat mekanizması tasarımı tartışmasında GQA’nın “yeterince iyi” sayılıp sayılmayacağı yeniden gündeme geldi.

Üç somut etki var. Maliyet tarafında: DeepSeek, MLA ve MoE’yi birleştirerek API fiyatlandırmasını rakiplerine göre belirgin biçimde düşürdü, bu piyasada fiyat baskısı yarattı. Araştırma tarafında: teknik raporlar MLA’nın detaylarını kamuya açarak bağımsız uygulamaların ve akademik çalışmaların önünü açtı. Mimari tarafında: MLA’nın başarısı KV optimizasyon alanında GQA dışındaki low-rank yaklaşımlara yönelik araştırmayı hızlandırdı.

GQA’dan MLA’ya geçişin tüm büyük modellerde gerçekleşip gerçekleşmeyeceği henüz belirsiz. Ama bellek baskısının büyüdüğü üretim ortamlarında low-rank kompresyon yaklaşımlarının cazibesinin arttığı görülüyor.

Daha geniş bir perspektiften bakıldığında MLA, büyük modellerin “verimli çalışmak” ile “yüksek kalite sunmak” arasında seçim yapmak zorunda olmadığını göstermesi açısından da önem taşıyor. KV cache boyutunu agresif biçimde küçülten ama bunu mimari seviyede yapan bir tasarım; quantization gibi post-hoc tekniklerden farklı olarak eğitim sürecinin kendisinde bu kısıtı içselleştirir. Bu fark, özellikle farklı donanım konfigürasyonlarında modeli konuşlandırmayı planlayanlar için anlamlı: düşük bellek bütçesine göre tasarlanan bir model, yüksek bellek bütçesinde de sorunsuz çalışır; tersi her zaman geçerli değildir.

MLA’yı anlamak neden önemli?

LLM altyapısı seçiminde ya da kendi çıkarım altyapınızı ölçeklendirme kararlarında attention mekanizmasının bellek maliyeti belirleyici bir faktör. KV cache boyutu batch kapasitesini doğrudan sınırlar; batch kapasitesi de birim başına maliyet ve latency’i etkiler.

Standart MHA’lı bir modelden MLA’lı bir modele geçmek yalnızca mimari tercih değil, üretim maliyeti ve kapasite açısından elle tutulur bir fark.

Long context modeller ve uzun çıkarım zincirleriyle yapılan çalışmaların hacmi artıkça farklı KV cache optimizasyon yaklaşımları arasındaki seçim daha belirleyici hale gelir. MLA bu tablo içinde önemli bir veri noktası.

auto_stories İlgili Makaleler