KV Cache Tahliyesi Üretimde LLM Hatalarını Gizleyebilir
Tech
AI
LLM Inference
KV Cache
Reliability

KV Cache Tahliyesi Üretimde LLM Hatalarını Gizleyebilir

Daha hızlı bir inference yapılandırması üretime alınmadan önce, cache kaynaklı regresyonları zor görevlerden ayırmaya yönelik araştırma destekli bir test planı.

Uygar DuzgunUUygar Duzgun
Jul 26, 2026
Güncellendi 12 Ağu 2026
12 min read

Evet. KV cache tahliyesi LLM hatalarını gizleyebilir; çünkü bir serving policy önemli olan attention state'i atabilir ve ardından yalnızca korunan cache'den hasarın boyutunu tahmin etmek için yeterli bilgiye sahip olmayabilir.

23 Temmuz 2026'da sunulan bir makale bu probleme kesin bir sınır çiziyor: deterministik, value-blind top-k tahliyesi, korunan state'den kaynaklanan attention-output error'ını tutarlı biçimde tahmin edemez. Önerilen alternatif, atılan tail'in olasılıksal bir örneklemesini koruyor ve tahmin edilen hata etrafında istatistiksel bir sertifika oluşturuyor. Yöntem, bildirilen deneylerde hata atfını iyileştirdi; ancak prototip daha yavaş, deneyler 16K context ve 8B parameters ile sınırlı ve makale uçtan uca yanıt doğruluğunu kanıtlamıyor.

Rollout'tan önce her aday cache uygulamasını aynı dondurulmuş istekler üzerinde full-cache control ile karşılaştırın. Full cache'in geçtiği, adayın ise başarısız olduğu durumları sayın. Her karşılaştırmanın tek bir hata kaynağını izole etmesi için eviction, quantization, offload ve reuse işlemlerini ayrı ayrı test edin.

Okuyucu seviyesi: İleri. Bu kılavuz transformer inference, attention ve temel model evaluation kavramlarını bildiğinizi varsayar.

İçindekiler

KV cache tahliyesi hataları neden gizleyebilir

Attention output, korunan girdilere ve policy'nin kaldırdığı girdilere bağlıdır. Deterministik bir policy tail'i attıktan sonra yalnızca seçilen seti gören bir monitor, eksik değerleri inceleyemez.

ArXiv:2607.21475 bu gözlemlenebilirlik problemini inceliyor. Negatif sonuç, deterministik, value-blind top-k tahliyesi için geçerli: yalnızca korunan state, tahliyenin neden olduğu attention-output error'ını tutarlı biçimde tahmin etmeyi destekleyemez. Sonuç, her deterministik policy'nin kötü output ürettiğini söylemiyor. Bu policy sınıfının, yalnızca koruduğu veriyi kullanarak oluşturduğu hatayı güvenilir biçimde sertifikalandıramayacağını söylüyor.

Önerilen yöntem, atılan tail hakkında kanıt koruyor. Aksi hâlde kaybolacak girdileri Poisson-sample ediyor, bir Hájek correction uyguluyor ve bu tahmini korunan set variance certificate'ı ile birleştiriyor.

Ölçülen: Error certificate, 12.096 attention replay cell genelinde 0,97 coverage kaydetti. Ayrı bir gerçek workload çalışması, failure attribution'ı test etmek için yaklaşık 74.000 generation kullandı. Bu çalışmada certificate, cache kaynaklı hataları modelin doğuştan gelen hatalarından ayırmada AUC 0,73–0,75 değerine ulaştı. Output confidence aynı attribution görevinde 0,47–0,54 seviyesine ulaştı.

Ölçülen: Output confidence genel failure'ı daha iyi tahmin etti. İki sinyal farklı sorulara yanıt verir:

Output confidence bir yanıtın başarısız olabileceğini tahmin eder.
Cache certificate, cache approximation'ın failure'a muhtemelen neden olup olmadığını tahmin eder.

Çıkarım: Düşük output confidence, cache regression alarmı olarak tek başına kullanılamaz. Nedeni belirlemeden zayıf bir yanıtı işaretleyebilir; ayrıca cache policy kullanışlı state'i kaldırdıktan sonra kendinden emin bir yanıt bile değişebilir.

Makale ayrıca negatif ve operasyonel sonuçlar bildiriyor. Önceden kaydedilmiş yedi iddianın üçü başarısız oldu. Prototip token başına 0,043 saniye sürerken deterministik eviction 0,023, full cache ise 0,015 saniye sürdü. Deneyler 16K'ya kadar context'leri, 8B'ye kadar modelleri ve tek turlu bir proxy'yi kapsadı. Yazarlar certificate ile uçtan uca task correctness arasında bağlantı kuran bir theorem sunmuyor.

Pratik yorum: Certificate'ı incelenen koşullar altında bir attribution signal olarak değerlendirin. Production readiness'ı sertifikalandırmaz.

Dört cache uygulaması, dört güvenilirlik sorusu

Ekipler çoğu zaman çeşitli müdahaleleri “KV cache optimization” başlığı altında toplar. Her müdahale inference'ın farklı bir bölümünü değiştirir.

UygulamaNe değişirGüvenilirlik sorusu
---------
EvictionSeçilen key-value state'lerini kaldırırDaha sonraki bir token kaldırılan state'e ihtiyaç duydu mu?
QuantizationKorunan state'leri daha düşük precision ile saklarNumerical error, sonucu değiştirecek kadar attention'ı değiştirdi mi?
Offload veya tieringState'i GPU, CPU veya başka bir storage tier arasında taşırTaşıma, scheduling veya implementation davranışı availability, latency ya da correctness'ı değiştirdi mi?
Reuse veya prefix cachingDaha önce eşleşen bir prefix'ten state'i yeniden kullanırState doğru model, prefix, configuration ve isolation boundary'den mi geldi?

ArXiv:2607.08057 adresindeki system-aware survey, alanı temporal scheduling, spatial placement and migration ve structural representation and retention üzerinden sınıflandırıyor. Bu taxonomy aynı zamanda bir evaluation boundary olarak da kullanılabilir. Full-cache BF16 control ile evicted FP8 adayını karşılaştırmak iki structural variable'ı aynı anda değiştirir. Başarısız bir aday, regression'a eviction'ın mı, quantization'ın mı yoksa bunların etkileşiminin mi neden olduğunu belirleyemez.

Pratik yorum: Her cache müdahalesini kendi deneyi olarak test edin. Birleşik uygulamaları ancak bireysel uygulamalar geçtikten sonra birleştirin.

Daha kullanışlı state'i koruyan politikalar

Diğer iki makale, policy tasarımının aynı memory budget altında daha fazla kalite koruyabileceğini gösteriyor. Hiçbiri evrensel bir production threshold sağlamıyor.

VaSE, arXiv:2606.03928, yüksek magnitude value state'lerini korurken stochastic diversity'yi sürdürüyor. Qwen3-4B ve Qwen3-14B üzerinde altı reasoning task boyunca yaklaşık 4× cache compression elde etti ve en güçlü eviction baseline'ına kıyasla sonuçları 4,4 ve 4,9 puan iyileştirdi. Tek bir 16K, single-A100 setup'ında saniyede 3,1× token değerine ulaştı.

Bu ölçümler yalnızca decode'u, Qwen3 modellerini ve production batching olmadan yapılan çalışmayı kapsıyor. Başka bir model family, serving engine, concurrency level veya workload için aynı kazanımı ortaya koymuyor.

K-VEC, arXiv:2606.29563, attention head'leri ve layer'lar arasındaki retention coverage'ı koordine ediyor. Llama 3.1 8B üzerinde 16 LongBench subset'i boyunca skorları en fazla 10,35 puan, `B=128` budget'ında ise ortalama 1,61 puan iyileştirdi. Evaluation tek bir model family ve benchmark suite kullanıyor; ayrıca yöntem prefill work ekliyor.

Pratik yorum: Value-aware, stochastic ve coverage-aware policy'ler bir evaluation'da aday olarak değerlendirilmelidir. Full-cache çalıştırmanız yerel doğruluk kaynağı olmaya devam eder.

Quantization neden ayrı bir control gerektirir

FP8 KV cache quantization, token'ları kaldırmak yerine precision'ı azaltır. Hataları engine error olmadan da uygulamaya ulaşabilir.

22 Nisan 2026'da yayımlanan resmî vLLM FP8 incelemesi, long-context needle accuracy'nin BF16 cache ile %91'den, iki seviyeli accumulation fix uygulanmadan önce FP8 ile %13'e düştüğünü bildirdi. Fix, accuracy'yi %89'a geri getirdi. Bildirilen en iyi FP8 configuration'da decode slope, BF16'nın %54'üydü.

Ölçülen: Bir numerical path ciddi bir regression üretti ve kernel-level correction kaybedilen accuracy'nin çoğunu geri kazandırdı.

Kanıtlanmamış: FP8 cache evrensel olarak bu regression'a neden olmaz veya bu speedup'ı sağlamaz. Sonuç implementation, model, hardware, attention path ve benchmark'a bağlıdır.

vLLM issue #37554 dar kapsamlı bir uyarı ekliyor: Bir reporter hybrid model üzerinde sessizce bozulan FP8 KV scaling tespit etti. Bu bug report, FP8 veya hybrid architecture hakkında genel bir iddiayı destekleyemez.

7 Nisan tarihli bir LocalLLaMA tartışması, cache format'ları ve quality hakkında çelişkili practitioner raporları içeriyor. Bu raporlar test case'leri önerebilir; ancak rollout kararını controlled evaluation vermelidir.

vLLM v0.26.0 release'i, 25 Temmuz tarihli olup 212 contributor'dan gelen 411 commit içeriyor ve KV tiering, offload metrics ve cache reuse görünürlüğünü genişletiyor. Release activity ve yeni observability feature'ları geniş production adoption veya correctness'ı kanıtlamaz.

Eşleştirilmiş full-cache validation workflow'u

“Full cache”i, eklenmiş eviction veya cache quantization olmadan modelin native attention davranışı olarak tanımlayın. Her pair içinde model weights, tokenizer, runtime version, attention backend, sampling settings, prompt tokens ve output validator'ı sabit tutun.

1. Bir ablation matrix çalıştırın

En az dört treatment kullanın:

RunRetentionPrecisionComparison
------------
AFullReference precisionControl
BFullCandidate quantizationA → B quantization'ı izole eder
CCandidate evictionReference precisionA → C eviction'ı izole eder
DCandidate evictionCandidate quantizationA → D birleşik treatment'ı ölçer
Optional EFullReference precision, offload veya reuse ileA → E placement veya reuse'u izole eder

Yalnızca A ile D'yi karşılaştırmak birleşik bir regression'ı ortaya çıkarabilir; ancak nedeni atayamaz. B ve C run'ları eksik control'leri sağlar.

Desteklenen her model, runtime, kernel ve hardware path'ini ayrı ayrı test edin. vLLM FP8 sonucu, “FP8 enabled” gibi bir etiketin reliability decision için neden yeterli ayrıntıya sahip olmadığını gösteriyor.

Full-cache ve compressed inference sonuçlarını karşılaştıran eşleştirilmiş KV cache validation diagramı
Full-cache ve compressed inference sonuçlarını karşılaştıran eşleştirilmiş KV cache validation diagramı

*Caption: Eşleştirilmiş full-cache validation, eviction veya quantization production'a ulaşmadan önce yalnızca adayda görülen hataları izole eder.*

2. Bir workload matrix'i dondurun

Matrix'i gerçek request shape'lerinden oluşturun ve boundary case'leri dahil edin:

Context length: kısa, tipik, yüksek percentile ve desteklenen maksimum değer.
Generation length: kısa yanıtlar, tipik completion'lar ve uzun continuation'lar.
Task type: retrieval, multi-step reasoning, structured output, tool selection ve uygulamaya özgü her kritik path.
Cache pressure: hedef budget ve load altında izin verilen en küçük budget.
Serving mode: izole decode ve temsili batching veya concurrency.
Randomness: kararlı bir mechanistic pair için greedy decoding; ardından production sampling kullanıyorsa fixed-seed tekrarları.

Long-context workload'ler synthetic needle testinden fazlasına ihtiyaç duyar. Ürün code agent'ları veya uzun workflow'lar çalıştırıyorsa temsili trace'leri dahil edin. Token volume ve workflow shape, More Tokens, Better AI — and the Compute Bill ve Code Agents, 21 Billion Activity Tokens, and the Fable of GPT-5.6 içinde açıklanan economics'i etkiler.

3. İstekleri eşleştirin ve cache state'i izole edin

Bu evaluation logic'ini kullanın:

text for each frozen_case: full = run(frozen_case, treatment=A, isolated_cache=true) candidate = run(frozen_case, treatment=candidate, isolated_cache=true)

full_pass = validate(full, frozen_case.expected_behavior) candidate_pass = validate(candidate, frozen_case.expected_behavior)

record(full_pass, candidate_pass, context_length, task_type, model, runtime, hardware, treatment)

Bu block pseudocode'dur; engine-specific API değildir. Birden fazla yanıt doğru olabildiğinde text equality yerine task validator kullanın. Uygun validator'lar arasında generated code için unit test'ler, structured output için schema check'leri, exact tool-and-argument check'leri, retrieval assertion'ları veya önceden kaydedilmiş bir rubric bulunur.

Cache namespace'lerini izole tutun. Treatment'lar arasında yeniden kullanılan prefix state karşılaştırmayı kirletebilir.

4. Yalnızca adayda görülen hataları ölçün

Bu primary metric'i kullanın:

text cache_induced_failure_rate = count(full passes and candidate fails) / count(full passes)

Payda, rate'i full-cache başarısına koşullar. Her iki run'ın da başarısız olduğu bir pair, failure'a cache compression'ın neden olduğunu göstermez.

Her kritik slice için ham numerator ve denominator'ı raporlayın. Tek bir aggregate, maksimum context'te, bir modelde veya bir attention backend altında görülen regression'ı gizleyebilir. Output confidence ve cache-attribution signal'ları farklı failure mode'larını kapsadığı için total failure rate'i paired metric'in yanında izleyin.

5. Karar kuralını önceden belirleyin

Aday sonuçlarını görmeden önce maksimum kabul edilebilir rate olan `τ` değerini seçin. Kritik task'ler için daha katı kurallar belirleyin. Yeniden üretilebilir bir candidate-only failure, aggregate `τ` değerinin altında kalsa bile tool, safety veya transaction path'inde rejection gerektirebilir.

Cache configuration execution policy'nin parçasıdır. Bunu deterministic AI-agent permissions için kullanılan disiplinle kaydedin ve uygulayın: açık configuration, gözlemlenebilir kararlar ve enforcement başarısız olduğunda bir repair path.

Rollout kararları

KanıtKararSonraki adım
---------
Geçerli full-cache pair yokEngelleEvaluation harness'ı düzeltin
Aday genel olarak veya kritik bir slice'ta `τ` değerini aşıyorReddetCache budget'ını artırın, policy'yi değiştirin veya quantization'ı devre dışı bırakın
Aggregate geçiyor ancak bir model, kernel veya context slice regression gösteriyorBekletBu path'i izole edin ve paired test'i tekrarlayın
Offline pair'ler geçiyor ancak batching veya production hardware test edilmemişYalnızca canaryPaired traffic örnekleyin ve full-cache fallback'i koruyun
Paired sonuçlar desteklenen path'lerde geçiyor ve operational gains yeniden üretiliyorKademeli rolloutRollback threshold'larını koruyarak slice'lar üzerinden genişletin
Online candidate-only failure'lar ilan edilen limiti aşıyorGeri alSon geçen full-cache veya candidate configuration'a dönün

Release-note activity, anecdotal report'lar ve average benchmark gain'leri paired rollout gate'in yerini tutamaz.

Mevcut kanıtların sınırları

En güçlü certificate sonucu, uçtan uca application correctness yerine single-turn proxy altında attention-output error'ını kapsıyor. Deneyler 16K ve 8B'de duruyor; production system'leri ise daha büyük modeller, daha uzun context'ler, multiple turn'ler, tool'lar ve batch'ler çalıştırabilir. Ölçülen prototype ayrıca bildirilen setup'ta deterministik eviction ve full cache'ten token başına daha fazla zaman harcıyor.

VaSE ve K-VEC belirli model'lere, task'lere, budget'lara ve serving setup'larına bağlı kalıyor. vLLM kanıtı, implementation detail'larının cache-format sonucuna hâkim olabileceğini gösteriyor. Bu kaynakların hiçbiri evrensel bir güvenli compression ratio sunmuyor.

Pratik yorum: Araştırmayı aday policy'leri ve monitoring signal'larını seçmek için kullanın. Workload'ınız için implementation'ınızın reliability limit'lerini karşılayıp karşılamadığına karar vermek için paired full-cache validation kullanın.

İddia kontrolleri

İddiaKanıta dayalı ifade
------
“Deterministic eviction güvenli değildir.”Fazla geniş. Negatif sonuç, deterministic, value-blind top-k eviction için retained state'ten tutarlı self-estimation yapılmasıyla ilgilidir.
“Certificate yanlış yanıtları tespit eder.”Cache-induced attention error'ı tahmin eder ve yararlı failure attribution gösterir; uçtan uca correctness theorem'i yoktur.
“FP8 KV cache accuracy'yi yok eder.”Bir vLLM path'i %91'den %13'e düştü, ardından bir fix sonrasında %89'a geri döndü. Sonuç path'e özgüdür.
“Stochastic eviction production-ready'dir.”VaSE ve certificate prototype'ı model, context, batching ve speed limit'leriyle birlikte ölçülmüş tradeoff'lar gösterir.
“vLLM'nin yeni metrics'leri adoption'ı kanıtlıyor.”Görünürlüğü artırırlar. Release kapsamı ve contributor sayıları production kullanımını kanıtlamaz.

Kaynaklar

ArXiv:2607.21475, 23 Temmuz 2026'da sunuldu — deterministic eviction limit'leri ve stochastic error certification.
ArXiv:2606.03928 — VaSE value-aware stochastic eviction.
ArXiv:2606.29563 — K-VEC cross-head ve cross-layer coverage.
ArXiv:2607.08057 — system-aware KV cache survey.
vLLM v0.26.0 release'i, 25 Temmuz 2026.
vLLM issue #37554 — hybrid model üzerinde sessiz FP8 scaling corruption raporu.
LocalLLaMA practitioner tartışması, 7 Nisan 2026 — anekdot niteliğinde, çelişkili raporlar.