
vLLM и PagedAttention: виртуальная память для инференса
Как идея из операционных систем 1960-х подняла пропускную способность в 2–4 раза
Содержание слайдов
1. vLLM и PagedAttention: виртуальная память для инференса
Как идея из операционных систем 1960-х подняла пропускную способность в 2–4 раза
2. Одна старая идея, одно узкое место
Проблема → идея → система → результат
3. Генерация ждёт память, а не вычисления
Prefill параллелен, пошаговая генерация идёт по одному токену за шаг
4. Куда уходят 40 гигабайт
65 % — веса модели, больше 30 % — KV-кеш, остальное — активации
5. Один токен стоит 800 килобайт
2 × 5 120 × 40 × 2 байта; запрос на 2 048 токенов — 1,6 GB
6. Три вида потерь непрерывного кеша
Резерв, внутренняя фрагментация, внешняя фрагментация
7. Полезной памяти — от 20 до 38 %
vLLM доводит долю настоящих состояний токенов до 96,3 %
8. Страницы, байты, процессы — блоки, токены, запросы
Словарь ОС, перенесённый на KV-кеш один к одному
9. PagedAttention: внимание по блокам
GPU-ядро достаёт ключи и значения из несмежных блоков по их адресам
10. Таблица блоков: логический → физический
Запрос видит блоки 0-3 подряд; в памяти это 7, 1, 3 и ничего
11. Новый блок выделяется, когда предыдущий заполнен
① prefill, ② запись в свободный слот, ③ новый физический блок
12. Один пул вместо личных резервов
Свободный блок достаётся тому, кому он нужен следующим
13. Параллельные семплы: копирование при записи
14. Beam search: дерево блоков вместо копий
Кандидаты делят префикс, как процессы после fork
15. Планировщик: вытеснение целиком
FCFS, вытесняется самый новый запрос, восстановление — swap или пересчёт
16. Один планировщик, много воркеров
Планировщик ведёт таблицы блоков и рассылает их воркерам
17. 2–4× пропускной способности при той же задержке
В батче 30 запросов вместо 7-14; выигрыш растёт с длиной и размером модели
18. Разделение памяти: от 6 до 66 %
Параллельный семплинг, beam search и общий префикс в цифрах
19. Цена абстракции: GPU-ядро медленнее на 20–26 %
Косвенность стоит четверть одного оператора; размер блока 16 — компромисс
20. Что унести из статьи
Найти узкое место, заимствовать при совпадении свойств, платить за косвенность осознанно