KV Önbelleği
KV Cache'in LLM gibi Transformer modellerini nasıl optimize ettiğini keşfedin. Bu tekniğin Ultralytics için çıkarım gecikmesini nasıl azalttığını ve verimliliği nasıl artırdığını öğrenin.
KV Önbelleği (Anahtar-Değer Önbelleği), öncelikle
Büyük Dil Modelleri (LLM'ler)
ve diğer Transformer tabanlı mimarilerde
çıkarım gecikmesini hızlandırmak ve
hesaplama maliyetlerini azaltmak için kullanılan kritik bir optimizasyon tekniğidir. Temelinde, KV önbelleği,
dikkat mekanizması tarafından oluşturulan Anahtar ve Değer matrislerini depolar. Bu ara hesaplamaları kaydederek, model her yeni token oluşturduğunda konuşmanın tüm geçmişi için dikkat
durumlarını yeniden hesaplamaktan kaçınır. Bu süreç,
metin oluşturmayı
metin üretme iş akışını
kuadratik karmaşıklıkta bir işlemden doğrusal bir işleme dönüştürerek, sohbet robotları ve
AI ajanlarıyla ile gerçek zamanlı etkileşimleri mümkün kılar.
Mekanizma ve Avantajlar
Standart bir Transformer modelinde,
bir sonraki kelimeyi üretmek için bağlamı anlamak üzere önceki tüm kelimelere dikkat etmek gerekir. Önbellekleme olmadan,
model her adımda tüm dizinin matematiksel ilişkilerini yeniden hesaplamak zorunda kalır. KV önbelleği
bunu bir bellek bankası görevi görerek çözer.
-
Hız Artışı: Önceden hesaplanmış anahtarları ve değerleri bellekten geri getirerek, sistem
çıkarım motorunu çıkarım motorunu. Bu,
gerçek zamanlı çıkarım gibi uygulamalar için çok önemlidir.
müşteri hizmetleri botları.
-
Kaynak Verimliliği: Bellek kullanımını (VRAM) artırırken, token başına gereken hesaplama
(FLOP) miktarını önemli ölçüde azaltır. Bu dengeleme genellikle
model niceleme veya sayfalama gibi tekniklerle yönetilir.
Bu, işletim sistemlerinin RAM'i yönetme şekline benzer.
-
Genişletilmiş Bağlam: KV önbelleğinin verimli yönetimi, modellerin daha büyük bir bağlam penceresini işleyebilmesini sağlar.
bağlam penceresiniişleyebilmelerini ve böylece uzun belgeleri işleyebilmelerini veya uzun süreler boyunca tutarlı konuşmalar sürdürebilmelerini sağlar.
Gerçek Dünya Uygulamaları
KV önbelleği, modern üretken yapay zeka uygulamalarının temel bileşenlerinden biridir, ancak ilkeleri aynı zamanda
bilgisayar görme (CV).
-
Üretken Sohbet Robotları:
ChatGPT veya
Claude KV önbelleklemeye büyük ölçüde dayanır. Bir kullanıcı
bir takip sorusu sorduğunda, model tüm sohbet geçmişini baştan tekrar okumaz. Bunun yerine,
yeni girişi önceki turun önbelleğe alınmış durumlarına ekler ve neredeyse anında yanıtlar verir.
-
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, modelin tüm video geçmişini yeniden işlemeksizin track veya eylemleri tanımasına yardımcı olmak için önbelleğe alınabilir. Bu, özellikle
eylem tanıma
için önemlidir.
eylem tanıma için önemlidir
çünkü
Verimli Bellek Yönetimi
Modeller büyüdükçe, KV önbelleğinin boyutu bir darboğaz haline gelebilir ve gigabaytlarca GPU tüketebilir. Son
gelişmeler, bu depolamayı optimize etmeye odaklanmaktadır.
-
PagedAttention: İşletim sistemlerindeki sanal bellekten esinlenerek,
PagedAttention (vLLM tarafından tanıtılan) KV
önbelleğinin bitişik olmayan bellek bloklarında depolanmasına olanak tanır. Bu, parçalanmayı azaltır ve
model model sunumu.
-
KV Önbellek Niceleme: Yer kazanmak için, geliştiriciler genellikle
karışık hassasiyet veya int8
kuantizasyonu uygularlar. Bu, bellek ayak izini azaltarak
sınır AI cihazların
yetenekli modelleri çalıştırmasına olanak tanır.
-
Hızlı Önbellekleme: Statik bir sistem komut isteminin KV durumlarının (örneğin, "Sen
yardımcı bir kodlama asistanısın") bir kez hesaplanıp birçok farklı kullanıcı oturumunda yeniden kullanıldığı ilgili bir teknik. Bu,
hızlı mühendisliği optimize etmek için temel bir özelliktir
komut mühendisliği iş akışlarını
büyük ölçekte
İlgili Kavramları Ayırt Etme
KV Cache'yi diğer önbellekleme ve optimizasyon terimlerinden ayırmak faydalıdır:
-
KV Önbelleği ve Hızlı Önbellekleme: KV
Önbelleği genellikle tek bir nesil akışı sırasında kullanılan dinamik, belirteç bazlı belleği ifade eder. Hızlı önbellekleme
ise, birden fazla bağımsız çıkarım çağrısında yeniden kullanılmak üzere sabit bir giriş talimatının işlenmiş durumunun depolanmasını ifade eder
.
-
KV Önbellek ve Gömme: Gömme,
anlamsal anlamı yakalayan giriş verilerinin (metin veya görüntüler) vektör temsilidir. KV önbellek,
özellikle dizi oluşturma amacıyla, dikkat katmanları içinde bu gömmelerden türetilen
etkinleştirmeleri (anahtarlar ve değerler) depolar.
-
KV Önbellek ve Model Ağırlıkları: Model
ağırlıkları, sinir ağının statik, öğrenilmiş parametreleridir. KV önbellek, belirli bir girdi dizisinin ileri geçişi sırasında oluşturulan dinamik, geçici verilerden oluşur
.
Örnek: Vizyon Modellerinde Bağlam
KV önbellekleme NLP'de en çok bilinen kavram olsa da, durumun korunması kavramı gelişmiş görme modellerine de uygulanır.
Aşağıdaki örnekte,
Ultralytics kullanarak durum (bağlam) aktarımı fikrini simüle ediyoruz. Burada izleyici, nesnelerin kimliğini kareler arasında korur; bu, önbelleğin
bağlamı belirli bir süre boyunca korumasına benzer bir kavramdır.
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ş modeller dağıtmak isteyen geliştiriciler,
Ultralytics kullanabilirler. Bu platform, veri etiketlemeden verimli
model dağıtımına. Dikkatin daha derin mekanizmalarıyla ilgilenenler için,
PyTorch
gibi kütüphaneler, bu önbellekleme mekanizmalarının uygulandığı temel yapı taşlarını sağlar.