Dil AI KILAVUZU

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.

2 min readSon güncelleme

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ı

1

Kullanıma sunmadan önce çıktı formatını, tonunu ve kalite standartlarını tanımlayın.

2

Doğruluğun önemli olduğu durumlarda güvenilir kaynaklarla zemin müdahaleleri.

3

Yüksek riskli çıktılar için insan incelemesi kontrol noktası bulundurun.

4

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.

Testi başlat

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.