KV cache nedir, neden gereklidir? Bellek maliyetini nasıl hesaplarsınız ve nasıl azaltılır?

Cevap

Decoder-only bir LLM her yeni token üretirken önceki tüm tokenlara attention uygular. Önceki tokenların Key ve Value vektörleri değişmediği için her adımda yeniden hesaplamak yerine bellekte saklanır. Buna KV cache denir. Cache olmadan n token üretmenin maliyeti kabaca O(n²) yeniden hesaplama demektir. Cache ile her adımda sadece yeni token'ın Q, K ve V'si hesaplanır.

İki faz

  • Prefill: Prompt'un tamamı paralel işlenir ve KV cache doldurulur. Compute-bound'dur, time-to-first-token'ı (TTFT) belirler.
  • Decode: Token token üretim. Her adımda tüm ağırlıklar ve KV cache bellekten okunur. Memory-bandwidth-bound'dur, token başı gecikmeyi belirler.

Bellek hesabı

KV cache (byte) = 2 (K ve V) × katman × kv_head sayısı × head_dim × dizi uzunluğu × batch × eleman başı byte

Örnek, Llama 3 8B (32 katman, 8 KV head, head_dim 128, BF16 = 2 byte):

token başı = 2 × 32 × 8 × 128 × 2 = 131.072 byte ≈ 128 KB
8.192 token, batch 1   ≈ 1 GB
128K token, batch 1    ≈ 16 GB  (modelin ağırlıklarından, ~16 GB, bile büyük olabilir)

Yani uzun bağlam ve yüksek eşzamanlılıkta darboğaz çoğu zaman ağırlıklar değil KV cache'tir.

Azaltma yöntemleri

  • GQA / MQA: Birden çok query head aynı K/V head'ini paylaşır. 32 yerine 8 KV head, cache'i 4 kat küçültür.
  • MLA (DeepSeek): K/V'yi düşük boyutlu bir latent vektöre sıkıştırır.
  • KV cache quantization: FP8 veya INT8/INT4 saklama.
  • PagedAttention (vLLM): Cache'i sabit boyutlu bloklarda tutar, fragmentasyonu ve israfı azaltır, prefix paylaşımını sağlar.
  • Prefix / prompt caching: Ortak system prompt'un cache'i istekler arasında yeniden kullanılır.
  • Sliding window attention: Sadece son W token cache'te tutulur.
  1. RAG'de chunking stratejisi, hybrid search ve reranker neden önemlidir? Retrieval kalitesi düşükse ne yaparsınız?OrtaLLM & Üretken YZYapay Zeka
  2. Şirket içi dokümanlar (Confluence, PDF, wiki) üzerinde soru cevaplayan bir RAG sistemi tasarlayın.ZorLLM & Üretken YZYapay Zeka
  3. Hangi prompt engineering tekniklerini kullanırsınız? Few-shot ve chain-of-thought ne zaman işe yarar?KolayLLM & Üretken YZYapay Zeka
  4. LLM'lerde temperature, top-k ve top-p (nucleus) sampling parametreleri ne işe yarar?KolayLLM & Üretken YZYapay Zeka
  5. Production'daki bir LLM uygulamasında maliyeti ve gecikmeyi (latency) nasıl düşürürsünüz?OrtaLLM & Üretken YZYapay Zeka
  6. Prompt injection nedir? LLM tabanlı bir uygulamayı ve agent'ı buna karşı nasıl korursunuz?ZorLLM & Üretken YZYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle