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-сервер