tag KVCache

Bu sayfada KVCache etiketi ile işaretlenmiş 2 yapay zeka kavramını bulabilirsiniz.

KV Cache (Key-Value Cache — Anahtar-Değer Önbelleği), transformer tabanlı büyük dil modellerinin otomatik regresif çıkarımında hesaplama verimliliğini artıran temel bir bellek optimizasyon mekanizmasıdır. Token üretiminde her adımda tüm geçmiş tokenların dikkat hesaplamalarını yeniden yapmak yerine, daha önce hesaplanan anahtar (Key) ve değer (Value) matrislerini bellekte saklayarak bu maliyeti ortadan kaldırır. Böylece naif O(n²) karmaşıklık O(n)'e indirilir ve model, uzun bağlamlarda bile tutarlı bir hızda yanıt üretebilir. Transformer mimarisindeki çok-başlı dikkat (multi-head attention) katmanında, her token için K ve V vektörleri hesaplanır. Otoregresif üretimde n token zaten üretilmişse, n+1. token için önceki n tokenın K ve V değerleri önbellekten okunabilir; yalnızca yeni tokena ait hesaplama yapılır ve sonuç önbelleğe eklenir. Bu süreç her üretim adımında yalnızca artımlı bir işlem gerektirir ve toplam çıkarım hızını dramatik biçimde artırır. Bellek tüketimi KV Cache'in en kritik tasarım kısıtıdır. Hesaplama formülü şudur: 2 × katman_sayısı × kafa_sayısı × kafa_boyutu × dizi_uzunluğu × bit_genişliği. 7 milyar parametreli bir modelde 4096 token bağlam için FP16 ile yaklaşık 500 MB gerekir; 128K token bağlamda bu değer 10–15 GB'a ulaşabilir. Toplu çıkarımda farklı uzunluktaki isteklerin KV Cache'leri VRAM'i model ağırlıklarıyla rekabet eder biçimde tüketir ve bu durum maksimum batch boyutunu sınırlandırır. Bu baskıyı hafifletmek için sektörde birkaç kritik yöntem geliştirilmiştir. Grouped Query Attention (GQA) ve Multi-Query Attention (MQA), birden fazla sorgu kafasına tek bir K-V matrisi atayarak önbellek boyutunu önemli ölçüde küçültür; Llama 3, Gemma ve Mistral bu tekniği standart olarak kullanır. KV cache kuantizasyonu (INT8/FP8) bellek tüketimini 2–4 kat azaltırken kalite kaybını sınırlı tutar. vLLM'in Paged Attention yöntemi, cache'i sabit boyutlu sayfalar hâlinde yönetir ve bellek parçalanması sorununu ortadan kaldırır. API düzeyinde Prompt Caching ise tekrar eden sistem promptlarının K-V hesaplamalarını sunucu tarafında saklayarak hem gecikmeyi hem de maliyeti düşürür; Anthropic Claude, OpenAI ve Google bu özelliği prefix caching adıyla sunar. DeepSeek'in Multi-head Latent Attention (MLA) mimarisi, K-V vektörlerini sıkıştırılmış bir gizli uzaya projekte ederek önbellek boyutunu dramatik biçimde küçültür ve uzun bağlam işlemeyi yeniden tanımlar.

memory

KV Cache (Anahtar-Değer Önbelleği)

KV Cache (Key-Value Cache — Anahtar-Değer Önbelleği), transformer tabanlı büyük dil modellerinin otomatik regresif çıkarımında hesaplama verimliliğini artıran temel bir bellek optimizasyon mekanizmasıdır. Token üretiminde her adımda tüm geçmiş tokenların dikkat hesaplamalarını yeniden yapmak yerine, daha önce hesaplanan anahtar (Key) ve değer (Value) matrislerini bellekte saklayarak bu maliyeti ortadan kaldırır. Böylece naif O(n²) karmaşıklık O(n)'e indirilir ve model, uzun bağlamlarda bile tutarlı bir hızda yanıt üretebilir. Transformer mimarisindeki çok-başlı dikkat (multi-head attention) katmanında, her token için K ve V vektörleri hesaplanır. Otoregresif üretimde n token zaten üretilmişse, n+1. token için önceki n tokenın K ve V değerleri önbellekten okunabilir; yalnızca yeni tokena ait hesaplama yapılır ve sonuç önbelleğe eklenir. Bu süreç her üretim adımında yalnızca artımlı bir işlem gerektirir ve toplam çıkarım hızını dramatik biçimde artırır. Bellek tüketimi KV Cache'in en kritik tasarım kısıtıdır. Hesaplama formülü şudur: 2 × katman_sayısı × kafa_sayısı × kafa_boyutu × dizi_uzunluğu × bit_genişliği. 7 milyar parametreli bir modelde 4096 token bağlam için FP16 ile yaklaşık 500 MB gerekir; 128K token bağlamda bu değer 10–15 GB'a ulaşabilir. Toplu çıkarımda farklı uzunluktaki isteklerin KV Cache'leri VRAM'i model ağırlıklarıyla rekabet eder biçimde tüketir ve bu durum maksimum batch boyutunu sınırlandırır. Bu baskıyı hafifletmek için sektörde birkaç kritik yöntem geliştirilmiştir. Grouped Query Attention (GQA) ve Multi-Query Attention (MQA), birden fazla sorgu kafasına tek bir K-V matrisi atayarak önbellek boyutunu önemli ölçüde küçültür; Llama 3, Gemma ve Mistral bu tekniği standart olarak kullanır. KV cache kuantizasyonu (INT8/FP8) bellek tüketimini 2–4 kat azaltırken kalite kaybını sınırlı tutar. vLLM'in Paged Attention yöntemi, cache'i sabit boyutlu sayfalar hâlinde yönetir ve bellek parçalanması sorununu ortadan kaldırır. API düzeyinde Prompt Caching ise tekrar eden sistem promptlarının K-V hesaplamalarını sunucu tarafında saklayarak hem gecikmeyi hem de maliyeti düşürür; Anthropic Claude, OpenAI ve Google bu özelliği prefix caching adıyla sunar. DeepSeek'in Multi-head Latent Attention (MLA) mimarisi, K-V vektörlerini sıkıştırılmış bir gizli uzaya projekte ederek önbellek boyutunu dramatik biçimde küçültür ve uzun bağlam işlemeyi yeniden tanımlar.

arrow_forward
token

Otoregresif Kod Çözme (Otoregresif Kod Çözme)

Otoregresif Kod Çözme (Autoregressive Decoding), bir dil modelinin metin üretirken her yeni tokeni yalnızca önceki tokenlerden türeterek sırayla ürettiği standart çıkarım yöntemidir. Modelin çıktı dizisi soldan sağa doğru inşa edilir; her adımda tüm önceki bağlam koşullu olasılık dağılımını belirler ve buradan bir sonraki token örneklenir ya da seçilir. Matematikte otoregresif süreç, bir serinin her terimini kendinden önceki terimlere bağlı bir fonksiyon olarak ifade eder. Dil modellerinde bu P(x_t | x_1, ..., x_{t-1}) biçiminde yazılır: t. tokenin olasılığı, 1'den t-1'e kadar tüm önceki tokenlere koşulludur. GPT ailesi başta olmak üzere tüm kausal dil modelleri bu paradigmayı kullanır. Kod çözme stratejisi, üretilen metnin kalitesini ve çeşitliliğini doğrudan etkiler. Açgözlü kod çözme (greedy decoding), her adımda en yüksek olasılıklı tokeni seçer; hızlıdır ancak tekrarlayan çıktılar üretebilir. Işın araması (beam search), K olası diziyi paralel takip ederek toplam puan açısından en iyi tam diziyi arar; çeviri gibi görevlerde kaliteyi artırır. Sıcaklık örneklemesi (temperature sampling), olasılık dağılımını keskinleştirerek veya yumuşatarak çıktı çeşitliliğini ayarlar. Top-p (nucleus) ve top-k örnekleme ise düşük olasılıklı tokenleri keserek anlamsız çıktı riskini azaltır. Otoregresif kod çözmenin temel performans sorunu, her tokenin sırayla üretilmesidir; bu durum gecikmeyi (latency) artırır ve GPU paralelizmini kısıtlar. KV önbelleği (KV cache), önceki adımlarda hesaplanan anahtar-değer matrislerini saklayarak yeniden hesaplanmalarını önler ve çıkarımı önemli ölçüde hızlandırır. Spekülatif kod çözme (speculative decoding) ise küçük bir taslak model kullanarak büyük modelin doğrulamasını paralel yürütür; böylece birden fazla token tek geçişte onaylanabilir. Flash Attention ve sürekli toplu işleme (continuous batching) gibi teknikler de üretim sistemlerindeki verimliliği artıran önemli optimizasyonlar arasında yer alır. Bu yöntemler, yüksek trafikli LLM hizmeti senaryolarında gecikmeyi düşürmek ve GPU kullanımını artırmak amacıyla birlikte uygulanmaktadır.

arrow_forward