Makale Bülteni — KIVI
Anahtar tensörlerini kanal bazlı, değer tensörlerini belirteç bazlı asimetrik 2-bit formatında kuantize ederek KV önbellek belleğini 2,6 kat küçülten ve yeniden eğitim gerektirmeyen çıkarım algoritması.
Rice Üniversitesi ve Texas A&M araştırmacıları tarafından yayımlanan ve ICML 2024 konferansında sunulan “KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache” makalesi, uzun bağlamlı LLM çıkarımında sunucuların boğazını sıkan KV önbellek (KV Cache) krizine doğrudan neşter vurdu1. 32K veya 128K gibi modern bağlam pencerelerinde Llama veya Mistral çalıştırırken, KV önbelleğinin kapladığı VRAM miktarı model ağırlıklarının üç ila dört katına ulaşarak GPU’ları hızla bellek tükenmesi (OOM) hatasına sürükler. Model ağırlıklarını 4-bit’e sıkıştıran yöntemler olgunlaşmış olsa da, KV önbelleğini 2-bit gibi uç noktalara çekmek şimdiye kadar ağır metrik yıkımlarıyla sonuçlanıyordu. KIVI, anahtar (Key) ve değer (Value) tensörlerinin donanımsal dağılım dinamiklerini mikroskop altına yatırarak anahtarları kanal bazında, değerleri ise belirteç bazında asimetrik olarak 2-bit’e sıkıştıran sıfır eğitimli (tuning-free) bir algoritma geliştirdi. Pratikte bunun anlamı şudur: Modelinizi yeniden eğitmeye tek bir kuruş harcamadan aynı GPU üzerinde dört kat daha büyük batch boyutları çalıştırabilirsiniz.
Bu kuantizasyon mimarisinin sunduğu somut mühendislik kazanımı üç temel metrikte belgeleniyor: Standart FP16 KV önbelleğine kıyasla %60’ın üzerinde (2,6 kat) zirve bellek tasarrufu ve 3,47 kata varan throughput artışı, deneylerin koşturulduğu tekil NVIDIA A100-80GB altyapısı ve resmi araştırma deposundaki 437 yıldız, 6 açık issue ve 1 açık PR seviyesindeki çekirdek ayak izi2.
İddia ve Gerçeklik: KIVI
Geleneksel KV önbellek kuantizasyonunda en büyük çıkmaz, anahtar ve değer tensörlerine aynı simetrik ölçeklemenin dayatılmasıdır1. Standart yöntemler tensörleri belirteç (per-token) ekseninde kuantize etmeye çalıştığında anahtar tensörleri çöker; kanal (per-channel) ekseninde kuantize etmeye çalıştığında ise değer tensörleri bozulur.
KIVI ekibi bu anomalinin arkasındaki matematiksel mekanizmayı aydınlattı. Anahtar tensörlerinde belirli kanalların (kanalların yalnızca %1’i) diğer kanallara kıyasla yüz kata varan devasa aykırı aktivasyonlar (outliers) sergilediği ve bu aykırı kanalların tüm sekans boyunca sabit kaldığı gözlemlendi. Bu yüzden anahtar tensörü kanal ekseninde (per-channel) gruplanıp kuantize edildiğinde hata o kanalın içine hapsedilir ve normal kanalların dinamik aralığı korunur. Değer tensörlerinde ise durum tam tersidir; değerler üzerinde belirgin bir aykırı kanal deseni yoktur ancak dikkat çıktısı doğrudan değerlerin ağırlıklı toplamı olduğu için kuantizasyon hatasının belirteç ekseninde (per-token) tutulması gerekir. Bu asimetrik kurgu sayesinde KIVI, Llama-2, Falcon ve Mistral modellerini 2-bit hassasiyetine indirirken şaşkınlık (perplexity) ve LongBench skorlarında FP16 taban çizgisiyle neredeyse farksız bir doğruluk elde eder.
Fakat bedelsiz mühendislik başarısı yoktur ve KIVI’nin arkasında gizlenen operasyonel pürüzler sistem mimarlarını zorlayabilir. Anahtar tensörlerini kanal ekseninde kuantize etmek akışkan (streaming) üretim mantığına terstir; çünkü yeni gelen bir belirtecin kanal minimum ve maksimum değerleri önceden bilinemez. KIVI bu sorunu çözmek için anahtarları 32 veya 64 belirteçlik gruplara (G) böler ve henüz grubu dolmamış son belirteçleri tam hassasiyetli artık tamponda (residual buffer) saklar. Bu artık tamponu, bağlam uzunluğu çok kısa olduğunda 2-bit bellek tasarrufunu sınırlar. Ayrıca 2-bit tamsayıları 16-bit tensör çekirdeklerine açarken (dequantization) CUDA seviyesinde yürütülen bit kaydırma ve maskeleme operasyonları, batch boyutu küçükken hesaplama ek yükü yaratarak gecikmeyi (latency) artırabilir.
Kod ve Entegrasyon Haritası
Makale yazarları tarafından sunulan jy-yuan/KIVI deposu, PyTorch ve özel CUDA C++ uzantılarıyla desteklenmiş çalışan bir referans kod tabanıdır2. Depo; Llama, Mistral ve GQA (Grouped Query Attention) mimarilerini destekleyen özel model sarmalayıcıları (LlamaForCausalLM_KIVI) ve ön yükleme (prefill) aşamasında çalışan FlashAttention çekirdek entegrasyonu barındırır.
Açık kaynak dünyasında KIVI, aşırı düşük bitli KV sıkıştırmasında akademik bir referans standardı haline geldi3. llama.cpp deposunda açılan 5492 numaralı tartışmada yerel cihazlarda 2-bit KV önbelleği çalıştırma potansiyeli değerlendirilirken, Apple Silicon ekosisteminde VeloxQuant-MLX kütüphanesi KIVI algoritmasını doğrudan yerel metal çekirdeklerine uyarladı. Ayrıca Hugging Face transformers 4.43+ ile uyumlu hale getirilen kod tabanı, Llama-3 ailesi üzerinde de test edildi.
Yine de üretim ölçeğinde KIVI’yi vLLM veya TensorRT-LLM gibi devasa servis motorlarına doğrudan bağlamanın önünde ciddi mühendislik bariyerleri vardır. KIVI’nin gruplu artık tamponu ve asimetrik bellek yerleşimi, vLLM’in PagedAttention blok yöneticisiyle doğrudan uyumlu değildir. vLLM halihazırda FP8 ve INT8 KV önbelleğini yerel olarak desteklerken, 2-bit asimetrik bir şemayı üretim motoruna taşımak özel sayfalı (paged) 2-bit CUDA çekirdekleri yazmayı gerektirir. Bu nedenle KIVI bugün için ana akım bir servis motorundan ziyade, tekil sunucularda veya özel çıkarım boru hatlarında uzun bağlam çalıştıran ekipler için optimize edilebilir bir çekirdek çözümdür.
Ticari Etki: Kimin İşine Yarar?
KIVI’nin ticari etkisi, 32K ve üzeri uzun bağlamlı doküman analizi, yasal sözleşme taraması ve çok turlu ajan geçmişi işleyen kurumsal yapay zeka sağlayıcılarının sunucu faturalarında hissedilir. Bu iş yüklerinde sunucuların en büyük darboğazı model ağırlıkları değil, eşzamanlı istekler arttıkça GPU belleğini boğan KV önbellekleridir. KIVI ile önbelleğin 2,6 kat küçülmesi, tek bir A100-80GB GPU üzerinde eşzamanlı işlenen istek sayısını doğrudan dört katına çıkarır.
Bu durum bir CTO için sunucu amortismanında doğrudan çarpan etkisi yaratır: Önceden sekiz GPU’luk bir kümeye ihtiyaç duyan yüksek eşzamanlı bir doküman analiz servisi, KIVI sayesinde iki veya dört GPU ile aynı iş hacmini (throughput) karşılayabilir. Bulut sağlayıcılarından kiralanan GPU sayısını yarıya indirmek, aylık operasyonel faturalarda on binlerce dolarlık doğrudan nakit tasarrufu demektir.
Özetle KIVI, uzun bağlamlı modellerde VRAM yetersizliği yüzünden batch boyutunu artıramayan ve sunucu yatırımları tıkanan ekipler için son derece güçlü bir mühendislik alternatifidir. Standart vLLM gibi motorlarda tak-çalıştır olmaması bir entegrasyon bariyeri oluştursa da, kısıtlı donanımla uzun metin servisi sunmak zorunda olan ekiplerin kendi özel çıkarım hatlarına KIVI’nin asimetrik 2-bit mantığını dahil etmesi muazzam bir ticari getiri sağlayacaktır.