KV önbelleği (KV cache)
Kısaca: KV önbelleği, şimdiye kadarki belirteçlerin ara sonuçlarını (anahtarlar ve değerler) saklar; böylece model bunları her seferinde yeniden hesaplamak zorunda kalmaz.
Biraz daha ayrıntılı: Önbellek her belirteçle büyür. Uzun bağlamlarda birkaç gigabayt tutabilir ve modele ek olarak belleğe sığmalıdır. “Grouped-query attention” kullanan modern modeller bunu epeyce küçültür.
Ayrıntılı
- Boyut: 2 × katman × KV başlığı × başlık boyutu × değer başına bayt × belirteç. 32 katmanlı 8 milyarlık bir model FP16’da belirteç başına yaklaşık 0,13 MB, 32.000 belirteçte yaklaşık 4 GB ister.
- Nicemlenmiş: Önbellek 8 bit olarak saklanabilir; ihtiyaç yarıya iner.
- Hıza etkisi: Uzun bağlamlarda her yeni belirteç tüm önbelleği de okur. Bu yavaşlatır.
- Yeniden kullanım: Birkaç istemin ortak başlangıcı (sistem istemi) önbellekte kalabilir (“prompt caching”).
Ayrıca bak: Bağlam penceresi, VRAM ve model boyutu