KV Cache
KV Cache'in LLM'ler gibi Transformer modellerini nasıl optimize ettiğini keşfet. Bu tekniğin çıkarım gecikmesini nasıl azalttığını ve Ultralytics YOLO26 için verimliliği nasıl artırdığını öğren.
KV Cache (Anahtar-Değer Önbelleği), öncelikle Büyük Dil Modellerinde (LLMs) ve diğer Transformer tabanlı mimarilerde kullanılan; çıkarım gecikmesini hızlandıran ve hesaplama maliyetlerini düşüren kritik bir optimizasyon tekniğidir. KV cache'in temel işlevi, bir dizideki önceki belirteçler için dikkat mekanizmasının oluşturduğu Anahtar ve Değer matrislerini depolamaktır. Bu ara hesaplamaları kaydederek model, her yeni belirteç ürettiğinde konuşmanın tüm geçmişi için dikkat durumlarını yeniden hesaplamaktan kaçınır. Bu süreç, metin oluşturma iş akışını karesel karmaşıklıktaki bir işlemden doğrusal karmaşıklıktaki bir işleme dönüştürerek sohbet botları ve yapay zekâ ajanlarıyla gerçek zamanlı etkileşimleri mümkün kılar.
Çalışma Mekanizması ve Avantajları#
Standart bir Transformer modelinde, bir sonraki sözcüğü oluşturmak için bağlamı anlamak üzere önceki tüm sözcüklere dikkat etmek gerekir. Önbellekleme olmadığında model, her adımda tüm diziye ait matematiksel ilişkileri yeniden hesaplamak zorunda kalır. KV cache, bir bellek deposu görevi görerek bu sorunu çözer.
- Hız Artışı: Önceden hesaplanmış anahtarları ve değerleri bellekten alarak sistem, çıkarım motorunu önemli ölçüde hızlandırır. Bu, müşteri hizmetleri botlarındaki gerçek zamanlı çıkarım gibi düşük gecikme gerektiren uygulamalar için önemlidir.
- Kaynak Verimliliği: Bellek kullanımını (VRAM) artırsa da belirteç başına gereken hesaplama miktarını (FLOPs) önemli ölçüde azaltır. Bu ödünleşim, genellikle işletim sistemlerinin RAM'i yönetmesine benzer biçimde model niceleme veya sayfalama gibi tekniklerle yönetilir.
- Genişletilmiş Bağlam: KV cache'in verimli yönetimi, modellerin daha geniş bir bağlam penceresini işleyebilmesini sağlar; böylece uzun belgeleri işleyebilir veya uzun süreler boyunca tutarlı konuşmalar sürdürebilirler.
Gerçek Dünya Uygulamaları#
KV cache, modern üretken yapay zekâyı dağıtmanın temel bileşenlerinden biridir; ancak ilkeleri bilgisayarlı görüye (CV) de uzanır.
-
Üretken Sohbet Botları: ChatGPT veya Claude gibi hizmetler büyük ölçüde KV önbelleğe almaya dayanır. Kullanıcı bir takip sorusu sorduğunda model, tüm sohbet geçmişini baştan tekrar okumaz. Bunun yerine yeni girdiyi önceki turun önbelleğe alınmış durumlarına ekleyerek neredeyse anında yanıt verilmesini sağlar.
-
Video Anlama: Video anlama görevlerinde modeller kareleri sırayla işler. Metin belirteçlerine benzer şekilde, geçmiş karelerden alınan görsel özellikler önbelleğe alınarak modelin tüm video geçmişini yeniden işlemeden nesneleri izlemesine veya eylemleri tanımasına yardımcı olunabilir. Bu yaklaşım, zamansal bağlamın kritik olduğu eylem tanıma için özellikle önemlidir.
Verimli Bellek Yönetimi#
Modeller büyüdükçe KV cache'in boyutu darboğaza dönüşebilir ve gigabaytlarca GPU belleği tüketebilir. Son gelişmeler, bu depolamayı optimize etmeye odaklanıyor.
- PagedAttention: İşletim sistemlerindeki sanal bellekten esinlenen PagedAttention (vLLM tarafından sunulmuştur), KV cache'in bitişik olmayan bellek bloklarında saklanmasına olanak tanır. Bu, parçalanmayı azaltır ve model sunumu sırasında daha yüksek toplu iş boyutlarına imkân verir.
- KV Cache Niceleme: Geliştiriciler, bellek alanından tasarruf etmek için önbelleğe alınmış değerlere özel olarak sıklıkla karma hassasiyet veya int8 niceleme uygular. Bu, bellek ayak izini küçülterek sınırlı RAM'e sahip uç yapay zekâ cihazlarının yetenekli modelleri çalıştırmasını sağlar.
- İstem Önbelleğe Alma: Statik bir sistem isteminin (ör. "Yardımcı bir kodlama asistanısın") KV durumlarının bir kez hesaplanıp farklı kullanıcı oturumlarında yeniden kullanıldığı, bununla ilişkili bir tekniktir. Bu, büyük ölçekte istem mühendisliği iş akışlarını optimize etmenin temel özelliklerinden biridir.
İlgili Kavramları Ayırt Etme#
KV Cache'i diğer önbelleğe alma ve optimizasyon terimlerinden ayırmak faydalıdır:
- KV Cache ve İstem Önbelleğe Alma: KV Cache genellikle tek bir üretim akışı sırasında kullanılan dinamik, belirteç belirteç ilerleyen belleği ifade eder. İstem önbelleğe alma ise birden fazla bağımsız çıkarım çağrısında yeniden kullanılmak üzere sabit bir girdi talimatının işlenmiş durumunun saklanmasını ifade eder.
- KV Cache ve Gömme Vektörleri: Gömme vektörleri, anlamsal anlamı yakalayan girdi verilerinin (metin veya görüntü) vektör gösterimleridir. KV cache, dizi oluşturma amacıyla bu gömme vektörlerinden dikkat katmanlarında türetilen aktivasyonları (anahtarları ve değerleri) depolar.
- KV Cache ve Model Ağırlıkları: Model ağırlıkları, sinir ağının öğrenilmiş ve sabit parametreleridir. KV cache ise belirli bir girdi dizisinin ileri geçişi sırasında oluşturulan dinamik, geçici verilerden oluşur.
Örnek: Görüntü Modellerinde Bağlam#
KV önbelleğe alma en çok NLP alanında tanınsa da durum bilgisini koruma kavramı gelişmiş görüntü modelleri için de geçerlidir. Aşağıdaki örnekte, Ultralytics YOLO26 kullanarak video izleme senaryosunda durumun (bağlamın) aktarılması fikrini canlandırıyoruz. Burada izleyici, nesnelerin kimliğini kareler boyunca korur; bu da bir önbelleğin belirteçler boyunca bağlamı korumasına kavramsal olarak benzer.
from ultralytics import YOLO
# Load the Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Track objects in a video, maintaining identity state across frames
# The 'track' mode effectively caches object features to link detections
results = model.track(source="https://ultralytics.com/images/bus.jpg", show=False)
# Print the ID of the tracked objects
if results[0].boxes.id is not None:
print(f"Tracked IDs: {results[0].boxes.id.numpy()}")Veri kümelerini yönetmek ve optimize edilmiş modelleri dağıtmak isteyen geliştiriciler, veri etiketlemeden verimli model dağıtımına kadar uzanan işlem hattını basitleştiren Ultralytics Platform'dan yararlanabilir. Dikkat mekanizmasının işleyişini daha derinlemesine incelemek isteyenler için PyTorch gibi kütüphaneler, bu önbelleğe alma mekanizmalarının uygulandığı temel yapı taşlarını sağlar.









