Sayfa İçerikleri
ToggleBüyük Dil Modelleri (LLM) ile çalışan sistemlerin mimarisi, geleneksel yazılım altyapılarından belirgin şekilde farklıdır. Yapay zeka uygulamaları, özellikle metin üretimi (inference) aşamasında devasa matematiksel hesaplamalar yapar. Bu hesaplamalar, merkezi işlem biriminden (CPU) ziyade grafik işlem birimlerine (GPU) ihtiyaç duyar.
Ancak günümüzde veri merkezlerini ve sistem mimarlarını en çok zorlayan konu, GPU’ların salt işlem gücü (TFLOPS) değil, ekran kartı belleğinin (VRAM) hızlı bir şekilde tükenmesidir. VRAM’in bu kadar hızlı tükenmesinin temel nedeni model ağırlıkları (model weights) değildir. Bir modelin boyutuna göre bellekte ne kadar yer kaplayacağı baştan bellidir.
Asıl darboğaz, uygulamanın çalışması sırasında dinamik olarak büyüyen ve yönetilmesi zorunlu olan KV Cache (Key-Value Cache) mekanizmasından kaynaklanır. Kullanıcıların modele gönderdiği metinler (context window) uzadıkça veya sistem aynı anda yüzlerce farklı kullanıcıya cevap vermeye (batching) başladığında, KV Cache hızla büyür. Bu durum, 80 GB belleğe sahip bir NVIDIA H100 kartının bile dakikalar içinde tamamen dolmasına ve uygulamanın çökmesine (Out of Memory – OOM) neden olabilir.
Bu rehberde KV Cache mimarisinin ne olduğunu, GPU VRAM üzerinde neden bu kadar agresif bir yük oluşturduğunu ve yapay zeka altyapılarında bu sorunu çözmek için kullanılan bellek kademelendirme (memory tiering) stratejilerini detaylıca inceleyeceğiz.
LLM Çıkarım (Inference) Aşamasında Dikkat Mekanizması
KV Cache’in varlık nedenini anlamak için, Transformer mimarisine sahip Büyük Dil Modellerinin metinleri nasıl ürettiğine bakmak gerekir.
Otoregresif Metin Üretimi Nedir?
Dil modelleri, kelimeleri bir kerede toplu olarak üretmezler. Bunun yerine otoregresif (autoregressive) bir mantıkla çalışırlar. Yani model, bir sonraki kelimeyi (token) tahmin edebilmek için ondan önce gelen tüm kelimelere tek tek bakmak zorundadır.
Kullanıcı “Türkiye’nin başkenti neresidir?” diye sorduğunda, model ilk olarak “Ankara” kelimesini üretir. Modelin cümleyi “Ankara’dır” şeklinde devam ettirebilmesi için, az önce ürettiği “Ankara” kelimesini ve kullanıcının sorduğu orijinal soruyu tekrar okuması ve bağlamı hatırlaması gerekir.
Dikkat Mekanizması (Attention Mechanism) Nasıl Çalışır?
İşte bu noktada Dikkat Mekanizması (Attention Mechanism) devreye girer. Model, cümledeki her bir token’ın diğer tüm token’larla olan anlamsal ilişkisini hesaplar. Bu hesaplamalar, matematiksel olarak Anahtar (Key) ve Değer (Value) matrislerinden oluşur.
KV Cache (Key-Value Cache) Nedir?
Eğer bir sistemde KV Cache yoksa, model her yeni kelimeyi üreteceğinde en baştaki kelimeden itibaren tüm Key ve Value matrislerini sıfırdan, tekrar tekrar hesaplamak zorundadır. Bu durum, bin kelimelik bir metin üretilirken aynı hesaplamanın bin kez tekrarlanması anlamına gelir. GPU’nun işlem gücü (Compute) bu gereksiz tekrarlar yüzünden tamamen israf edilir ve sistem inanılmaz derecede yavaşlar.
Bu verimsizliği önlemek için sistem, her bir token için hesaplanan Key ve Value matrislerini GPU’nun belleğine (VRAM) geçici olarak kaydeder. Bu kayıt alanına KV Cache adı verilir.
Model yeni bir kelime üreteceği zaman geçmiş kelimelerin matematiğini yeniden hesaplamaz. Doğrudan VRAM’deki KV Cache alanına başvurur ve daha önce kaydedilmiş olan Key ve Value değerlerini okur (Memory Read). Böylece gereksiz işlemci yükü ortadan kalkar ve metin üretimi (Inference) muazzam bir hıza ulaşır.
Kısacası KV Cache, işlemci gücünden (Compute) tasarruf etmek için bellekten (Memory) feragat etme stratejisidir.
GPU VRAM Neden Yetersiz Kalıyor?
KV Cache mantığı kısa sorularda kusursuz çalışır. Ancak kurumsal yapay zeka uygulamalarında senaryolar çok daha komplekstir ve VRAM hızla darboğaza girer.
1. Bağlam Penceresinin (Context Window) Büyümesi
Eski nesil dil modelleri genellikle 4.000 token (yaklaşık 12 sayfa metin) bağlam penceresine sahipti. 2026 yılı itibarıyla modeller, 128.000, 1 milyon ve hatta daha fazla token kapasitesine sahip bağlam pencereleriyle çalışıyor.
Bir kullanıcı modele “Bu 500 sayfalık PDF raporunu analiz et” komutunu verdiğinde, model PDF’teki yüz binlerce kelimeyi okur. Sistem, bu yüz binlerce kelimenin her biri için oluşturulan Key ve Value matrislerini VRAM’deki KV Cache alanına yazmak zorundadır.
Bağlam uzadıkça, hesaplanması gereken ilişki sayısı geometrik olarak artar. Çok büyük bir bağlam yüklendiğinde, modelin kendi ağırlıklarından (weights) ziyade, sırf o kullanıcıya ait KV Cache verisi GPU’nun tüm belleğini tek başına doldurabilir.
2. Eşzamanlı İstekler (Batching)
Dışa açık bir yapay zeka uygulamasında (örneğin bir müşteri hizmetleri botu), modele saniyede yüzlerce farklı kullanıcıdan istek gelir. GPU’yu verimli kullanmak (Utilization) için bu istekler sıraya sokulmaz, birleştirilerek aynı anda (Batch) işlenir.
Sistem aynı anda yüzlerce isteği işlediğinde, her bir kullanıcı için VRAM üzerinde ayrı ve bağımsız bir KV Cache alanı açmak zorundadır. Çünkü her kullanıcının sorusu ve bağlamı farklıdır. Yüzlerce kullanıcının KV Cache verisi birleştiğinde, tek bir 80 GB bellekli GPU saniyeler içinde kapasitesini doldurur ve yeni gelen istekleri işleyemez (Out of Memory hatası verir).
VRAM Darboğazını Çözmek: Kademeli Bellek (Memory Tiering)
KV Cache’in büyümesini donanım ekleyerek çözmek (örneğin sürekli yeni GPU satın almak) finansal olarak sürdürülebilir bir strateji değildir. Bu nedenle, yapay zeka altyapı mühendisleri KV Cache’i VRAM dışına taşırmak için “Kademeli Bellek” (Memory Tiering veya Offloading) stratejilerini kullanır.
Bu stratejilerde temel kural, donanımlar arasındaki veri aktarım hızının (Bandwidth) ve gecikmenin (Latency) kabul edilebilir sınırları aşmamasıdır.
Aşama 1: VRAM’den Ana Sistem Belleğine (RAM) Taşırma
GPU’nun üzerindeki VRAM (HBM veya GDDR serisi) dolduğunda, yazılım çerçeveleri (örneğin vLLM veya TGI) pasif durumda olan veya eski KV Cache verilerini sunucunun anakartı üzerindeki geleneksel sistem belleğine (RAM / CPU Memory) kaydırır.
Bu işlem PCIe (Peripheral Component Interconnect Express) veriyolu üzerinden gerçekleşir. Sunucunun 1 TB veya 2 TB gibi devasa bir RAM kapasitesi varsa, sistem milyonlarca token’lık KV Cache’i rahatlıkla burada tutabilir. İhtiyaç anında veri RAM’den alınarak tekrar GPU’nun VRAM’ine yüklenir.
Teknik Sınır: RAM’in kapasitesi yüksek olsa da, PCIe veriyolunun bant genişliği VRAM’in kendi iç hızına kıyasla çok yavaştır. VRAM saniyede terabaytlarca (TB/s) veri okurken, RAM ile iletişim genellikle gigabaytlar (GB/s) seviyesinde kalır. Bu durum, veri aktarımı sırasında geçici bir gecikmeye neden olur.
Aşama 2: RAM’den NVMe SSD’ye Taşırma (Storage Offloading)
Son derece büyük bağlamlarla çalışıldığında (örneğin milyonlarca token’lık devasa veri setleri analiz edilirken), sunucunun RAM kapasitesi bile yetersiz kalabilir. Bu durumda, KV Cache verisinin disk ünitesine aktarılması gerekir.
Yapay zeka sunucularında geleneksel mekanik disklerin veya SATA SSD’lerin kullanılması, bu senaryoda sistemi tamamen durdurur. NVMe (Non-Volatile Memory Express) SSD’lerin önemi burada ortaya çıkar. NVMe sürücüler, doğrudan anakartın PCIe yollarına bağlanarak saniyede binlerce megabayt veri okuma/yazma (IOPS) kapasitesi sunar.
Sistem, en az kullanılan KV Cache bloklarını RAM’den alıp NVMe SSD üzerine yazar. NVMe diskler, RAM kadar hızlı olmasa da, devasa KV Cache verilerini tutabilecek ekonomik ve yüksek kapasiteli (terabaytlarca) bir tampon bölge oluşturur.
NVIDIA’nın GDS (GPUDirect Storage) gibi teknolojileri, verinin doğrudan NVMe diskten alınarak, CPU’ya (ve RAM’e) hiç uğramadan direkt olarak GPU VRAM’ine aktarılmasını sağlar. Bu sayede işlemci yükü (CPU Overhead) azalır ve aktarım hızı maksimize edilir.
Ağ Üzerinden KV Cache Yönetimi (Disaggregated KV Cache)
Geleceğin mimarilerinde KV Cache sadece o sunucunun içindeki disklerle sınırlı kalmamaktadır. Birden fazla GPU sunucusunun çalıştığı büyük kümelerde (Cluster), bir sunucudaki KV Cache dolduğunda veri, yüksek hızlı RDMA (Remote Direct Memory Access) destekli InfiniBand veya Ethernet ağları üzerinden diğer boş sunucuların belleğine veya paylaşımlı depolama (Shared Storage) alanlarına aktarılır.
Bu mimaride, KV Cache hesaplamadan bağımsız bir şekilde ayrı sunucularda (Cache Nodes) tutulabilir. Böylece GPU’lar sadece matematiksel işlem (Compute) yapmaya odaklanır, belleği ise ağ üzerindeki diğer cihazlardan çekerler.
PagedAttention Mimarisi ile KV Cache Verimliliği
Donanım seviyesindeki çözümlere ek olarak, yazılım tarafında da VRAM tüketimini minimize eden algoritmalar geliştirilmiştir. Geleneksel yöntemlerde KV Cache için VRAM’de önceden devasa bir blok ayrılır (Reservation). Kullanıcı sadece 100 kelime sorsa bile, sistem her ihtimale karşı 4.000 kelimelik yeri boş yere meşgul ederdi. Buna bellek parçalanması (Memory Fragmentation) denir.
PagedAttention adı verilen algoritma (vLLM gibi sistemlerde kullanılır), işletim sistemlerindeki sanal bellek (Virtual Memory) yönetimine benzer bir mantıkla çalışır. KV Cache verilerini sürekli büyüyen tek bir blok yerine, küçük ve dinamik sayfalara (pages) böler.
Sistem sadece kullanıldığı kadar alan tahsis eder. Kullanıcı yeni kelime ürettikçe yeni bir sayfa (page) açılır. Bu teknoloji, VRAM içindeki ölü alanları ortadan kaldırarak, aynı donanımla çok daha fazla kullanıcının (Batch) eşzamanlı olarak işlenmesini sağlar.
KV Cache ve GPU Altyapı Planlaması
Yapay zeka uygulamalarını canlı üretime alırken, altyapı hesaplamalarının sadece model ağırlıkları (Weights) üzerinden yapılması, sistemin ilk yoğun trafikte çökmesiyle sonuçlanır.
GPU belleği, KV Cache tüketimi nedeniyle her zaman modelin kendi boyutundan çok daha fazla rezerve edilmek zorundadır. Sistem mimarları;
- Uygulamanın maksimum bağlam uzunluğunu (Context Window),
- Eşzamanlı beklenen kullanıcı sayısını (Concurrency / Batch Size),
- Sunucunun RAM ve NVMe kapasitesini,
- PCIe bant genişliğini
matematiksel olarak hesaplamalıdır. GPU’nun VRAM limitine ulaşıldığında sistemin yavaşlamadan verileri RAM’e veya NVMe’ye kaydırması için, sunucu içi iletişim (Bus) hızlarının ve disk okuma (IOPS) değerlerinin kurumsal seviyede olması gerekir.
Kurumsal düzeyde yüksek VRAM kapasitesi, güçlü PCIe mimarisi ve NVMe disk altyapısı gerektiren senaryolar için GPU sunucu kiralama çözümleri değerlendirilebilir. Esnek kapasite ve ölçeklenebilirlik hedeflendiğinde ise bulut sunucu altyapıları, KV Cache darboğazını aşmak için yüksek RAM ve NVMe seçenekleriyle birlikte planlanmalıdır.
Özetle, modern yapay zeka sunucuları sadece devasa birer hesap makinesi (GPU) değildir. CPU, devasa RAM kapasiteleri, yüksek hızlı NVMe diskler ve bu birimlerin birbirleriyle olan veri aktarım köprülerinin tümü, KV Cache darboğazını aşmak için entegre bir şekilde çalışmak zorundadır.
Sık Sorulan Sorular
KV Cache neden gereklidir?
KV Cache, LLM’lerin her yeni token üretiminde geçmiş token’lar için Key ve Value matrislerini yeniden hesaplamasını engeller. Bu sayede inference hızı artar ve GPU hesaplama gücü israf edilmez.
GPU VRAM neden KV Cache ile dolar?
Bağlam penceresi büyüdükçe ve aynı anda birden fazla kullanıcı isteği işlendiğinde, her kullanıcı için ayrı KV Cache alanı oluşturulur. Bu veri hızla VRAM’de birikir ve 80 GB gibi yüksek kapasiteli GPU’larda bile Out of Memory hatasına yol açabilir.
PagedAttention nedir?
PagedAttention, KV Cache verilerini küçük ve dinamik sayfalara bölerek VRAM’deki bellek parçalanmasını azaltan bir algoritmadır. vLLM gibi sistemlerde kullanılarak aynı GPU ile daha fazla eşzamanlı isteğin işlenmesini sağlar.
Kaynaklar
- NVIDIA Technical Blog (GPUDirect Storage, KV Cache Optimization)
- vLLM Documentation (PagedAttention Architecture)
- Hugging Face Research Papers on Autoregressive LLM Inference


