KV cache
Mezipaměť KV ukládá vektory klíčů a hodnot, které již transformátor vypočítal pro předchozí tokeny, takže je nemusí přepočítávat pro každé nové slovo, které vygeneruje.
Přehled
It is the single biggest reason text generation is fast — and the main thing eating your GPU memory during long conversations.
Hluboký ponor
Transformátory generují text po jednom tokenu a vrstva pozornosti každého nového tokenu se musí porovnat s každým předchozím tokenem. Mechanismus pozornosti promění každý token na vektor dotazu, klíče a hodnoty. Bez ukládání do mezipaměti by generování tokenu číslo 1 000 znamenalo přepočítávání klíčů a hodnot pro všech 999 dřívějších tokenů v každém kroku – kvadratická, plýtvání. Mezipaměť KV tyto vektory klíčů a hodnot uloží po jejich prvním výpočtu a znovu je použije, takže každý nový krok počítá pouze vektory pro jeden nejnovější token a obsluhuje uloženou mezipaměť. To snižuje náklady na token ze škálování s délkou sekvence na zhruba konstantní. Kompromisem je paměť: mezipaměť roste lineárně s délkou kontextu, počtem vrstev a pozorností a často se stává dominantním spotřebitelem paměti při poskytování dlouhých kontextů.
Technický přehled
Během fáze „prefill“ model zpracuje celou výzvu a naplní mezipaměť; během 'dekódování' připojí jeden token K/V na krok a opakuje se. Velikost mezipaměti je škálována jako 2 (K a V) × vrstvy × hlavy × head_dim × sekvence_délka × dávka, se zvolenou přesností. Aby to zkrotily, moderní modely používají pozornost seskupených dotazů nebo více dotazů ke sdílení klíčů/hodnot napříč hlavami a obslužné systémy jako vLLM používají PagedAttention k alokaci mezipaměti v nesouvislých blocích, čímž omezují fragmentaci a plýtvání.
Strategický dopad
Rychlost a měřítko
Jazykové pracovní postupy se mohou pohybovat rychleji, aniž by byla obětována konzistentnost.
Přístup a dosah
Rozšiřuje přístup napříč jazyky a komunikačními styly.
Jasnější rozhodnutí
Týmy mohou strávit více času úsudkem, zatímco automatizace zvládne opakování.
Budoucnost KV Cache
Jak se kontextová okna rozšiřují do stovek tisíc tokenů, KV cache se stává ústředním úzkým hrdlem, takže inovace jsou nelítostné: kvantování mezipaměti na 8 nebo 4 bity, zásady vystěhování, které zahazují tokeny s nízkou důležitostí, sdílení prefixů mezi požadavky a ukládání na CPU nebo disk. Architektonické posuny, jako je latentní pozornost více hlav, komprimují samotnou mezipaměť. Očekávejte pokračující společný návrh variant pozornosti a paměťových systémů zaměřených na obsluhu velmi dlouhých kontextů levně a s vysokou propustností.
Real-World Implementace
Urychlení odpovědí chatbota opětovným použitím klíčů/hodnot uložených v mezipaměti z historie konverzace namísto jejich opětovného zpracování každé kolo.
Ukládání prefixů do mezipaměti, které sdílí mezipaměť pro dlouhou systémovou výzvu napříč mnoha uživateli, což snižuje náklady a latenci.
VLLM PagedAttention spravující KV mezipaměť v blocích pro efektivní obsluhu mnoha souběžných požadavků na jednom GPU.
Kvantování mezipaměti KV na nižší přesnost, aby se delší kontexty vešly do omezené paměti GPU.
Rizika a zábradlí
Halucinovaná fakta mohou tiše vstupovat do zpráv, podpůrných toků nebo výstupů výzkumu.
Citlivost na výzvy může způsobit nekonzistentní výsledky napříč podobnými požadavky.
Citlivá textová data mohou být vystavena, pokud je řízení přístupu slabé.
Plán implementace
Před zavedením definujte výstupní formát, tón a standardy kvality.
Pozemní reakce s důvěryhodnými zdroji, kdykoli záleží na přesnosti.
Udržujte kontrolní bod lidské kontroly pro vysoce důležité výstupy.
Sledujte vzorce selhání a pravidelně opakujte výzvy nebo pracovní postupy.
Pokračujte v objevování
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
Další průvodce
Optimalizace mezipaměti KV
Často kladené otázky
What is KV Cache?
Mezipaměť KV ukládá vektory klíčů a hodnot, které již transformátor vypočítal pro předchozí tokeny, takže je nemusí přepočítávat pro každé nové slovo, které vygeneruje. Je to jediný největší důvod, proč je generování textu rychlé – a hlavní věc, která vám během dlouhých konverzací požírá paměť GPU.
Co ukládá mezipaměť KV?
Mezipaměť KV obsahuje vektory klíčů a hodnot z dřívějších tokenů, takže je může pozornost znovu použít místo přepočítávání.
Jaký problém primárně řeší KV cache?
Bez ukládání do mezipaměti by každý nový token vyžadoval přepočítání K/V pro každý předchozí token, což je plýtvání; mezipaměť činí náklady na token zhruba konstantní.
Jaká je hlavní nevýhoda KV cache?
Mezipaměť roste s délkou sekvence, vrstvami a hlavami a často se stává dominantním spotřebitelem paměti GPU při poskytování dlouhých kontextů.
Která technika snižuje velikost mezipaměti KV sdílením klíčů a hodnot mezi hlavami pozornosti?
Pozornost seskupených dotazů a více dotazů umožňuje více hlavám dotazů sdílet méně sad klíč/hodnota, což podstatně zmenšuje mezipaměť.
Jaké jsou dvě fáze odvození transformátoru vzhledem k mezipaměti KV?
Prefill naplní mezipaměť K/V výzvy; decode připojí každý krok jednoho nového tokenu K/V a znovu se věnuje cache.