KV Cache
KV Cache'in LLM gibi Transformer modellerini nasıl optimize ettiğini keşfet. Bu tekniğin, Ultralytics YOLO26 için çıkarım gecikmesini nasıl azalttığını ve verimliliği nasıl artırdığını öğren.
KV Cache (Key-Value Cache), Large Language Models (LLMs) ve diğer Transformer tabanlı mimarilerde inference latency değerini hızlandırmak ve hesaplama maliyetlerini azaltmak için kullanılan kritik bir optimizasyon tekniğidir. Özünde KV cache, bir dizideki önceki token'lar için attention mechanism tarafından üretilen Key ve Value matrislerini saklar. Bu ara hesaplamaları kaydederek model, yeni bir token ürete Her seferinde tüm konuşma geçmişi için dikkat durumlarını yeniden hesaplamaktan kaçınır. Bu süreç, text generation iş akışını kuadratik karmaşıklık operasyonundan doğrusal bir operasyona dönüştürerek sohbet botları ve AI agents ile gerçek zamanlı etkileşimleri mümkün kılar.
Mekanizma ve Avantajlar#
Standart bir Transformer modelinde, bir sonraki kelimeyi üretmek, bağlamı anlamak için önceki tüm kelimelere dikkat etmeyi gerektirir. Önbellekleme olmadan model, her adımda tüm dizi için matematiksel ilişkileri yeniden hesaplamak zorunda kalır. KV cache, bir bellek bankası görevi görerek bunu çözer.
- Speed Improvement: Önceden hesaplanmış anahtarları ve değerleri bellekten alarak sistem, inference engine hızını büyük ölçüde artırır. Bu, müşteri hizmetleri botlarında real-time inference gibi düşük gecikme gerektiren uygulamalar için esastır.
- Resource Efficiency: Bellek kullanımını (VRAM) artırırken, token başına gereken hesaplamayı (FLOPs) önemli ölçüde azaltır. Bu ödünleşim genellikle model quantization veya sayfalama gibi tekniklerle yönetilir, tıpkı işletim sistemlerinin RAM'i yönetmesine benzer.
- Extended Context: KV cache'in verimli yönetimi, modellerin daha büyük bir context window işlemesine olanak tanır ve uzun belgeleri işlemelerini veya uzun süreler boyunca tutarlı konuşmalar sürdürmelerini sağlar.
Gerçek Dünya Uygulamaları#
KV cache, modern üretken yapay zeka dağıtımında temel bir bileşendir, ancak ilkeleri computer vision (CV) alanına da uzanır.
-
Generative Chatbots: ChatGPT veya Claude gibi hizmetler KV önbelleklemesine büyük ölçüde güvenir. Bir kullanıcı takip sorusu sorduğunda model, tüm sohbet geçmişini sıfırdan yeniden okumaz. Bunun yerine, yeni girdiyi önceki turun önbelleğe alınmış durumlarına ekleyerek neredeyse anında yanıtlar sağlar.
-
Video Understanding: video understanding görevlerinde modeller kareleri sırayla işler. Metin token'larına benzer şekilde, geçmiş karelerdeki görsel özellikler, modelin tüm video geçmişini yeniden işlemeden nesneleri izlemesine veya eylemleri tanık olmasına yardımcı olmak için önbelleğe alınabilir. Bu, özellikle zamansal bağlamın çok önemli olduğu action recognition için geçerlidir.
Verimli Bellek Yönetimi#
Modeller büyüdükçe, KV cache'in boyutu gigabaytlarca GPU belleği tüketerek bir darboğaz haline gelebilir. Son gelişmeler bu depolamayı optimize etmeye odaklanmaktadır.
- PagedAttention: İşletim sistemlerindeki sanal bellekten ilham alan vLLM tarafından tanıtılan PagedAttention, KV cache'in bitişik olmayan bellek bloklarında depolanmasına izin verir. Bu, parçalanmayı azaltır ve model serving sırasında daha yüksek grup boyutlarına izin verir.
- KV Cache Quantization: Yer kazanmak için geliştiriciler genellikle önbelleğe alınmış değerlere özellikle mixed precision veya int8 kuantizasyon uygular. Bu, bellek ayak izini azaltarak sınırlı RAM'e sahip edge AI cihazlarının yetenekli modelleri çalıştırmasını sağlar.
- Prompt Caching: Statik bir sistem isteminin (ör. "Yardımcı bir kodlama asistanısın") KV durumlarının bir kez hesaplandığı ve birçok farklı kullanıcı oturumunda yeniden kullanıldığı ilgili bir teknik. Bu, prompt engineering iş akışlarını ölçekte optimize etmek için temel bir özelliktir.
İlgili Kavramları Ayırt Etme#
KV Cache'i diğer önbellekleme ve optimizasyon terimlerinden ayırt etmek faydalıdır:
- KV Cache vs. Prompt Caching: KV Cache tipik olarak tek bir üretim akışı sırasında kullanılan dinamik, token bazında belleği ifade eder. Prompt caching, birden fazla bağımsız çıkarma çağrısında yeniden kullanılmak üzere sabit bir girdi talimatının işlenmiş durumunu depolamayı ifade eder.
- KV Cache vs. Embeddings: Embedding'ler, anlamsal anlamı yakalayan girdi verilerinin (metin veya görüntüler) vektör temsilleridir. KV cache, özellikle dizi üretimi amacıyla dikkat katmanları içinde bu embedding'lerden türetilen aktivasyonları (anahtarlar ve değerler) saklar.
- KV Cache vs. Model Weights: Model ağırlıkları sinir ağının statik, öğrenilmiş parametreleridir. KV cache, 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 önbelleklemesi NLP'de en ünlüsü olsa da durum koruma kavramı gelişmiş görme modellerine de uygulanır. Aşağıdaki örnekte, Ultralytics YOLO26 kullanarak bir video izleme senaryosunda durum (bağlam) geçirme fikrini simüle ediyoruz. Burada izleyici, bir önbelleğin token'lar arasında bağlamı nasıl koruduğuna kavramsal olarak benzer şekilde kareler arasında nesnelerin kimliğini korur.
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 setlerini yönetmek ve optimize edilmiş modeller dağıtmak isteyen geliştiriciler, veri etiketlemeden verimli model deployment aşamasına kadar süreci basitleştiren Ultralytics Platform kullanabilir. Dikkat mekanizmalarının derin mekanikleriyle ilgilenenler için PyTorch gibi kütüphaneler, bu önbellekleme mekanizmalarının uygulandığı temel yapı taşlarını sağlar.






