Inference

PagedAttention

Алгоритм vLLM, хранящий KV-кеш в несмежных блоках памяти для уменьшения фрагментации.

Что такое PagedAttention

PagedAttention — алгоритм управления KV-кешем, вдохновлённый виртуальной памятью ОС. Разработан командой vLLM (UC Berkeley) и опубликован в 2023 году.

В классическом подходе KV-кеш каждого запроса занимает непрерывный блок GPU-памяти. Это приводит к внутренней фрагментации: для запроса резервируется память под максимальный контекст, даже если реально используется лишь его часть. При тысячах параллельных запросов потери могут составлять 60–80% VRAM.

PagedAttention делит KV-кеш на блоки фиксированного размера (например, 16 токенов), которые хранятся в несмежных физических адресах GPU-памяти. Логические блоки маппятся на физические через таблицу страниц — как виртуальная память в ОС. Блоки выделяются по мере необходимости и освобождаются сразу после завершения запроса.

Что это даёт

  • Уменьшение внутренней фрагментации с ~60% до <4%
  • Совместное использование блоков — несколько запросов с одинаковым префиксом (системный промпт) используют одни и те же физические блоки без копирования (copy-on-write)
  • Увеличение пропускной способности в 2–4× при той же VRAM по сравнению с FasterTransformer/Orca
  • Поддержка beam search и параллельной выборки через sharing блоков

Связанные термины

  • KV-кеш — что хранится в блоках PagedAttention
  • vLLM — фреймворк, где PagedAttention реализован
  • continuous batching — механизм, работающий совместно с PagedAttention
  • prompt caching — переиспользование общих блоков между запросами

Готовы запустить GPU-задачу?

Запустить GPU-сервер