К тренажеру
ВопросMediumllm-servingРеальный собес

Что такое KV cache в LLM inference

На собеседовании спрашивают про KV cache в LLM inference. Что это такое, зачем он нужен и какие trade-off появляются в production?

Короткий ответ

KV cache хранит key/value тензоры уже обработанных токенов, чтобы при autoregressive generation не пересчитывать attention по всему прошлому контексту на каждом шаге.

Полный разбор

В decoder-only LLM каждый новый токен зависит от всех предыдущих токенов. Без кеша модель на каждом шаге заново считала бы key/value представления для всего префикса. KV cache сохраняет эти представления после первого прохода и на следующих шагах добавляет только новый токен.

Это сильно снижает вычисления и latency при генерации, но переносит часть нагрузки в память. Поэтому в production появляются trade-off: размер контекста, batch size, concurrent users, GPU memory, eviction, prefix caching, paged attention и качество планировщика запросов.

Хороший ответ также упоминает prefill и decode фазы. На prefill модель обрабатывает prompt и строит cache, на decode генерирует токены по одному, используя уже сохраненные key/value.

Теория

KV cache — один из базовых механизмов эффективного LLM serving. Он ускоряет decode, но становится узким местом по памяти, особенно при длинных контекстах и высокой конкуренции запросов.

Типичные ошибки

  • Говорить только "это кеш токенов", не объясняя key/value в attention.
  • Не разделять prefill и decode.
  • Забыть, что KV cache экономит compute, но расходует memory.

Как отвечать на собеседовании

  • Нарисуй мысленно две фазы: prompt prefill и token-by-token decode.
  • Сразу назови главный trade-off: быстрее генерация, но больше память на пользователя и контекст.