memory KV Cache Nasıl Çalışır?
Transformer'ın her dikkat katmanında, her token için Key ve Value vektörleri hesaplanır. Otoregresif üretimde token 1..n zaten üretilmişse, t+1. tokeni hesaplarken 1..n için K,V hesaplamaya gerek yoktur — önbellekten okunurlar. Yalnızca yeni token t+1 için K,V hesaplanır ve önbelleğe eklenir. Bu, her üretim adımında O(n) işlem yapar, naif yeniden hesaplama O(n²) yerine.
KV Cache Boyutu ve Yönetimi
storage VRAM Tüketimi
2 × num_layers × num_heads × head_dim × seq_len × dtype_bytes. 7B model, 4096 token, FP16'da ~500 MB KV cache. 128K token'da bellek kritik hâle gelir.
book Paged Attention (vLLM)
KV cache'i sanal sayfa tablosu gibi yönetir; farklı uzunluktaki istekler arasında bellek parçalanmasını önler. vLLM'nin temel yeniliğidir.
cached Prompt Caching
Sistem promptu gibi tekrarlayan prefix'lerin KV cache'ini API çağrıları arasında saklar. Anthropic ve OpenAI bunu prefix caching ile destekler; maliyet %75'e kadar düşer.
quiz Sık Sorulan Sorular
- check_circle KV cache bağlam uzunluğunu nasıl etkiler?: Daha uzun bağlam = daha büyük KV cache = daha fazla VRAM. Bu yüzden 100K+ bağlam modellerinde Paged Attention, Sliding Window Attention veya KV cache quantization kritiktir.
- check_circle KV cache quantization nedir?: KV cache'i FP16 yerine INT8 veya INT4 ile saklamak; bellek boyutunu 2-4× azaltır. Küçük kalite kaybıyla çok daha uzun bağlam işlenebilir.
- check_circle GQA (Grouped Query Attention) neden önemli?: Multi-head attention'da her kafa için ayrı K,V vardır. GQA birden fazla sorgu kafasının K,V'yi paylaşmasını sağlar; KV cache boyutunu küçültür. Llama 3, Mistral ve Gemma'da kullanılır.