KV Önbelleği
KV önbelleği, bir transformatörün önceki belirteçler için zaten hesaplamış olduğu anahtar ve değer vektörlerini saklar, böylece bunları ürettiği her yeni kelime için yeniden hesaplamak zorunda kalmaz.
Genel Bakış
It is the single biggest reason text generation is fast — and the main thing eating your GPU memory during long conversations.
Derin Dalış
Transformatörler her seferinde bir jeton olacak şekilde metin üretir ve her yeni jetonun dikkat katmanının önceki jetonlarla karşılaştırılması gerekir. Dikkat mekanizması her jetonu bir sorguya, anahtara ve değer vektörüne dönüştürür. Önbelleğe alma olmadan, 1.000 numaralı token'ı oluşturmak, her adımda daha önceki 999 token'ın tümü için anahtarların ve değerlerin yeniden hesaplanması anlamına gelir; ikinci dereceden, israflı bir çalışma. KV önbelleği, bu anahtar ve değer vektörlerini ilk hesaplandıktan sonra kaydeder ve yeniden kullanır, böylece her yeni adım yalnızca en yeni belirteç için vektörleri hesaplar ve depolanan önbellek üzerinden katılır. Bu, jeton başına maliyeti dizi uzunluğuyla ölçeklendirmeden kabaca sabite indirir. Takas, bellektir: Önbellek, bağlam uzunluğu, katman sayısı ve dikkat kafaları ile doğrusal olarak büyür ve genellikle uzun bağlam sunumunda baskın bellek tüketicisi haline gelir.
Teknik Bilgi
'Ön doldurma' aşaması sırasında model, istemin tamamını işler ve önbelleği doldurur; 'kod çözme' sırasında adım başına bir jetonun K/V'sini ekler ve yeniden katılır. Önbellek boyutu, seçilen hassasiyette 2 (K ve V) × katmanlar × kafalar × head_dim × dizi_uzunluğu × toplu iş olarak ölçeklenir. Bunu dizginlemek için modern modeller, anahtarları/değerleri kafalar arasında paylaşmak için gruplandırılmış sorgu veya çoklu sorgu dikkatini kullanır ve vLLM gibi hizmet veren sistemler, önbelleği bitişik olmayan bloklara tahsis etmek, parçalanmayı ve israfı azaltmak için PagedAttention'ı kullanır.
Stratejik Etki
Speed and scale
Dil iş akışları tutarlılıktan ödün vermeden daha hızlı ilerleyebilir.
Access and reach
Diller ve iletişim tarzları arasında erişimi genişletir.
Daha net kararlar
Otomasyon tekrarlamayı yönetirken ekipler karar vermeye daha fazla zaman ayırabilir.
KV Cache'in Geleceği
Bağlam pencereleri yüzbinlerce jetona yayıldıkça, KV önbelleği merkezi darboğaz haline gelir, bu nedenle inovasyon şiddetlidir: 8 veya 4 bit'e kadar önbellek nicelemesi, düşük öneme sahip jetonları bırakan tahliye politikaları, çapraz istek önek paylaşımı ve CPU veya diske boşaltma. Çok kafalı gizli dikkat gibi mimari değişimler önbelleğin kendisini sıkıştırır. Çok uzun bağlamlara ucuza ve yüksek verimle hizmet vermeyi amaçlayan dikkat değişkenleri ve bellek sistemlerinin ortak tasarımının devam etmesini bekliyoruz.
Gerçek Dünya Uygulaması
Sohbet geçmişindeki önbelleğe alınmış anahtarları/değerleri her seferinde yeniden işlemek yerine yeniden kullanarak chatbot yanıtlarını hızlandırma.
Birçok kullanıcı arasında uzun bir sistem istemi için önbelleği paylaşan ön ek önbelleğe alma, maliyeti ve gecikmeyi azaltır.
vLLM'nin PagedAttention özelliği, tek bir GPU üzerinde birçok eş zamanlı isteği verimli bir şekilde sunmak için KV önbelleğini bloklar halinde yönetir.
Sınırlı GPU belleğine daha uzun bağlamları sığdırmak amacıyla hassasiyeti azaltmak için KV önbelleğinin nicelendirilmesi.
Riskler ve Korkuluklar
Halüsinasyonlu gerçekler sessizce raporlara, destek akışlarına veya araştırma çıktılarına girebilir.
İstem hassasiyeti, benzer istekler arasında tutarsız sonuçlar yaratabilir.
Erişim kontrolleri zayıfsa hassas metin verileri açığa çıkabilir.
Uygulama Yol Haritası
Kullanıma sunmadan önce çıktı formatını, tonunu ve kalite standartlarını tanımlayın.
Doğruluğun önemli olduğu durumlarda güvenilir kaynaklarla zemin müdahaleleri.
Yüksek riskli çıktılar için insan incelemesi kontrol noktası bulundurun.
Arıza modellerini takip edin ve istemleri veya iş akışlarını düzenli olarak yeniden eğitin.
Keşfetmeye Devam Edin
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the KV Cache quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Next guide
KV Önbellek Optimizasyonu
Sık sorulan sorular
What is KV Cache?
KV önbelleği, bir transformatörün önceki belirteçler için zaten hesaplamış olduğu anahtar ve değer vektörlerini saklar, böylece bunları ürettiği her yeni kelime için yeniden hesaplamak zorunda kalmaz. Metin oluşturmanın hızlı olmasının en büyük nedeni budur ve uzun konuşmalar sırasında GPU belleğinizi tüketen en önemli şey budur.
KV önbelleği neyi saklıyor?
KV önbelleği, daha önceki belirteçlerden gelen anahtar ve değer vektörlerini tutar, böylece dikkat bunları yeniden hesaplamak yerine yeniden kullanabilir.
KV önbelleği öncelikle hangi sorunu çözer?
Önbelleğe alma olmadan, her yeni jeton önceki her jeton için K/V'nin yeniden hesaplanmasını gerektirir ki bu da israftır; önbellek, jeton başına maliyeti kabaca sabit hale getirir.
KV önbelleğinin ana dezavantajı nedir?
Önbellek, dizi uzunluğu, katmanlar ve kafalarla birlikte büyür ve genellikle uzun bağlam sunumunda GPU belleğinin baskın tüketicisi haline gelir.
Hangi teknik, anahtarları ve değerleri dikkat başlıkları arasında paylaşarak KV önbellek boyutunu azaltır?
Gruplandırılmış sorgu ve çoklu sorgu dikkati, birden fazla sorgu kafasının daha az anahtar/değer kümesi paylaşmasına olanak tanıyarak önbelleği önemli ölçüde daraltır.
KV önbelleğine göre transformatör çıkarımının iki aşaması nelerdir?
Önceden doldurma, önbelleği istemin K/V'siyle doldurur; decode, her adımda yeni bir belirtecin K/V'sini ekler ve önbelleğe yeniden katılır.