Кеш KV
Кеш KV зберігає вектори ключів і значень, які трансформатор уже обчислив для попередніх токенів, тому йому не потрібно повторно обчислювати їх для кожного нового слова, яке він генерує.
Огляд
It is the single biggest reason text generation is fast — and the main thing eating your GPU memory during long conversations.
Глибоке занурення
Transformers генерують текст по одному токену за раз, і кожен новий рівень уваги маркера потрібно порівнювати з кожним попереднім токеном. Механізм уваги перетворює кожен маркер на запит, ключ і вектор значення. Без кешування генерація маркера номер 1000 означатиме переобчислення ключів і значень для всіх 999 попередніх маркерів на кожному кроці — квадратична, марна робота. Кеш KV зберігає ці вектори ключів і значень після їх першого обчислення та повторно використовує їх, тому кожен новий крок обчислює вектори лише для єдиного найновішого токена та обробляє збережений кеш. Це зменшує вартість кожного токена від масштабування з довжиною послідовності до приблизно постійної. Компромісом є пам’ять: кеш-пам’ять лінійно зростає з довжиною контексту, кількістю шарів і головками уваги, часто стаючи домінуючим споживачем пам’яті в обслуговуванні довгого контексту.
Технічне розуміння
Під час фази попереднього заповнення модель обробляє весь запит і заповнює кеш; під час «декодування» він додає один K/V маркера на крок і повторює його. Розмір кешу масштабується як 2 (K і V) × шари × голови × head_dim × sequence_length × партія з вибраною точністю. Щоб приборкати це, сучасні моделі використовують увагу згрупованих запитів або багатозапитів для обміну ключами/значеннями між заголовками, а системи обслуговування, такі як vLLM, використовують PagedAttention для розподілу кешу в несуміжних блоках, скорочуючи фрагментацію та відходи.
Стратегічний вплив
Швидкість і масштаб
Мовні робочі процеси можуть рухатися швидше без шкоди для узгодженості.
Доступ і охоплення
Це розширює доступ до різних мов і стилів спілкування.
Чіткіші рішення
Команди можуть витрачати більше часу на оцінювання, поки автоматизація справляється з повторенням.
Майбутнє KV Cache
Оскільки контекстні вікна розтягуються на сотні тисяч токенів, кеш KV стає центральним вузьким місцем, тому інновації є жорстокими: квантування кешу до 8 або 4 бітів, політики вилучення, які видаляють маловажливі токени, спільний доступ до префіксів перехресних запитів і розвантаження на ЦП або диск. Архітектурні зміни, такі як прихована увага кількох головок, стискають сам кеш. Очікуйте продовження спільного проектування варіантів уваги та систем пам’яті, спрямованих на обслуговування дуже довгих контекстів дешево та з високою пропускною здатністю.
Реалізація в реальному світі
Прискорення відповідей чат-бота шляхом повторного використання кешованих ключів/значень з історії бесід замість повторної обробки кожного ходу.
Кешування префіксів, яке ділиться кеш-пам’яттю для довгих системних запитів між багатьма користувачами, скорочуючи витрати та затримку.
PagedAttention від vLLM, що керує кеш-пам’яттю KV блоками для ефективного обслуговування багатьох одночасних запитів на одному GPU.
Квантування кешу KV для зниження точності, щоб розмістити довші контексти в обмеженій пам’яті GPU.
Ризики та огорожі
Галюциновані факти можуть непомітно входити у звіти, допоміжні потоки або результати досліджень.
Делікатність підказок може створити суперечливі результати для подібних запитів.
Конфіденційні текстові дані можуть бути розкриті, якщо контроль доступу слабкий.
Дорожня карта впровадження
Визначте вихідний формат, тон і стандарти якості перед розгортанням.
Якщо точність має значення, зв’яжіться з надійними джерелами.
Тримайте контрольну точку перевірки людьми для отримання високих ставок.
Відстежуйте моделі збоїв і регулярно перенавчайте підказки або робочі процеси.
Продовжуйте досліджувати
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
Наступний посібник
Оптимізація кешу KV
Часті запитання
What is KV Cache?
Кеш KV зберігає вектори ключів і значень, які трансформатор уже обчислив для попередніх токенів, тому йому не потрібно повторно обчислювати їх для кожного нового слова, яке він генерує. Це головна причина швидкого генерування тексту — і головне, що споживає пам’ять графічного процесора під час довгих розмов.
Що зберігає кеш KV?
Кеш KV зберігає вектори ключів і значень із попередніх токенів, тому увага може використовувати їх повторно замість повторного обчислення.
Яку проблему в основному вирішує кеш KV?
Без кешування кожен новий токен вимагатиме переобчислення K/V для кожного попереднього токена, що марнотратно; кеш робить вартість кожного токена приблизно постійною.
Який головний недолік кеша KV?
Кеш зростає із збільшенням довжини послідовності, шарів і заголовків, часто стаючи домінуючим споживачем пам’яті графічного процесора в обслуговуванні тривалого контексту.
Яка техніка зменшує розмір кешу KV шляхом спільного використання ключів і значень між заголовками уваги?
Увага до згрупованих запитів і кількох запитів дозволяє кільком заголовкам запиту використовувати менше наборів ключів/значень, суттєво зменшуючи кеш.
Які дві фази виведення трансформатора щодо кеша KV?
Prefill заповнює кеш K/V підказки; декодування додає один новий K/V маркера на кожному кроці та повторно перевіряє кеш.