Инференс и оптимизация 20 просмотров

PagedAttention

Paged Attention

PagedAttention — алгоритм управления KV-cache в vLLM, вдохновлённый виртуальной памятью ОС. Разбивает KV-cache на страницы, выделяемые по запросу, устраняя фрагментацию и увеличивая утилизацию VRAM до 98%.

Что такое PagedAttention

PagedAttention (Kwon et al., 2023) — алгоритм, ставший основой vLLM. Применяет концепцию виртуальной памяти ОС к управлению KV-cache при инференсе LLM.

Проблема

Традиционный подход: для каждого запроса выделяется непрерывный блок памяти под KV-cache максимальной длины.

Запрос с max_tokens=2048:
Выделено: [████████████████████] 2048 слотов
Реально использовано: [████░░░░░░░░░░░░░░░░] 200 токенов

Потери: 90% VRAM на пустое место!

При batch из 32 запросов с max_tokens=4096 это гигабайты впустую.

Решение: страничная организация

PagedAttention разбивает KV-cache на блоки (pages) фиксированного размера (обычно 16 токенов):

Логический KV-cache запроса:
[Page 0][Page 1][Page 2]...[Page N]
                    
Физическая память (произвольные адреса):
[Block 42][Block 7][Block 91]...

Таблица страниц: {042, 17, 291, ...}

Преимущества

  1. Нет фрагментации — блоки выделяются по необходимости
  2. Утилизация ~98% — vs ~50% при непрерывном выделении
  3. Больше параллельных запросов — 2× throughput
  4. Copy-on-Write — общие промпты делят KV-cache (beam search, parallel sampling)
  5. Prefix Caching — системные промпты кэшируются между запросами

Влияние

PagedAttention стал стандартом де-факто:
- vLLM — оригинальная реализация
- TensorRT-LLM — аналогичный подход
- TGI — интегрировали PagedAttention

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

Улучшает
Необходим для

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу