---
title: "LLM'ler Neden VRAM Tüketir: KV Cache Parçalanması ve PagedAttention Çözümü"
url: https://blog.edumints.com/llm-ler-neden-vram-tuketir-kv-cache-parcalanmasi-ve-pagedattention
category: "LLM"
date: 2026-10-06T07:25:31.181Z
publisher: Edumints Blog
lang: tr-TR
source_name: "dev.to"
source_url: https://dev.to/syed_anzar/why-llms-run-out-of-vram-kv-cache-fragmentation-and-how-pagedattention-fixes-it-fle
---

# LLM'ler Neden VRAM Tüketir: KV Cache Parçalanması ve PagedAttention Çözümü

4-bit kuantize edilmiş 13 milyar parametreli bir modeli yayına aldığınızı varsayalım. Statik model ağırlıkları yaklaşık 7.5 GB VRAM tüketir. 24 GB belleğe sahip bir NVIDIA RTX 4090 üzerinde, trafik için 16 GB'tan fazla boş alanınız olduğuna güvenerek sistemi başlatırsınız. Ancak, 4.000 token bağlam pencereli 8 eşzamanlı istek gönderdiğinizde saniyeler içinde `torch.cuda.OutOfMemoryError` hatasıyla karşılaşırsınız ya da aktarım hızınız saniyede 80 tokenden tek haneli sayılara düşer.

Peki, o 16 GB nereye gitti? Çoğu geliştirici çıkarım (inference) sırasındaki bellek tüketiminin yalnızca model ağırlıklarından ibaret olduğunu düşünür. Gerçekte ise sistem eşzamanlı kullanıcılara hizmet vermeye başladığında **Key-Value (KV) Cache**, modelin kendisinden çok daha fazla bellek yutar. İlkel bellek yönetimlerinde bu VRAM'in %60 ila %80'i bellek parçalanması (fragmentation) yüzünden israf edilir.

## 1. Transformer'lar Neden Bir KV Cache'e İhtiyaç Duyar?

Otoregresif metin üretiminde her yeni $t$ token'ı üretilirken model $N$ adet transformer katmanından geçer ve Query ($Q$), Key ($K$), Value ($V$) projeksiyonları hesaplanır:

$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$

Yeni token'ın geçmişteki tüm token'larla ($1 \dots t-1$) olan dikkat skorunu bulmak için önceki token'ların $K$ ve $V$ vektörleri şarttır. Önbellekleme olmasaydı, 1.000'inci token için önceki 999 token'ın $K$ ve $V$ matrisleri her katmanda baştan hesaplanacak ve karmaşıklık $O(n^2)$ seviyesine çıkacaktı.

Çıkarım motorları bu karesel maliyeti engellemek için geçmiş token'ların $K$ ve $V$ tensörlerini GPU HBM belleğinde saklar. Böylece adım başı hesaplama $O(1)$ karmaşıklığına iner; fakat bellek tüketimi dinamik ve sürekli artan bir hal alır.

## 2. KV Cache Büyümesinin Somut Matematiği

Üretilen her token için her katmanda $K$ ve $V$ vektörleri saklanmalıdır. Token başına KV önbellek formülü şöyledir:

$$\text{Bytes per Token} = 2 \times n_{\text{layers}} \times n_{\text{kv_heads}} \times d_{\text{head}} \times b$$

- $2$: Key ve Value tensörlerini,
- $n_{\text{layers}}$: Katman sayısını,
- $n_{\text{kv_heads}}$: KV attention başlık sayısını,
- $d_{\text{head}}$: Başlık boyutunu,
- $b$: Bayt cinsinden duyarlılığı (FP16/BF16 için 2 bayt) ifade eder.

**Örnek (Llama-2-13B):** 40 katman, 40 KV başlığı, 128 başlık boyutu ve 16-bit duyarlık ile:
$$\text{Bytes per Token} = 2 \times 40 \times 40 \times 128 \times 2 = 819.200 \text{ bayt} \approx 800 \text{ KB}$$

4.000 token'lık tek bir istek yaklaşık 3.2 GB KV alanı kaplar; 8 eşzamanlı istek ise **25.6 GB** yer tutarak 24 GB'lık GPU belleğini tamamen taşırır.

## Yazılım Geliştirme Açısından Pratik Çıkarımlar

- **Kapasite ve Eşzamanlılık Planlaması:** Model servis ederken VRAM hesabını yalnızca model ağırlıklarına göre değil; bağlam penceresi, eşzamanlı istek sayısı ve token başına düşen KV büyüklüğüne göre yapın.
- **Parçalanmayı Önleme:** Bitişik bellek tahsis eden ilkel yöneticiler yerine, işletim sistemlerinin sanal bellek sayfalamasından esinlenen PagedAttention mimarisini tercih ederek bellek israfını ve OOM hatalarını engelleyin.



---

Bu konuyu derinlemesine öğrenmek isterseniz: [Ölçeklendirme ve Optimizasyon](https://edumints.com/kesfet/embedding-ve-reranking-modelleri-productionda-depl-blu6) modülüne göz atın.

---

**Kaynak:** dev.to (https://dev.to/syed_anzar/why-llms-run-out-of-vram-kv-cache-fragmentation-and-how-pagedattention-fixes-it-fle)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/llm-ler-neden-vram-tuketir-kv-cache-parcalanmasi-ve-pagedattention
