Новости и аналитика

PagedAttention: управление KV-кэшем и памятью GPU в vLLM

Разбор логических и физических блоков, копирования при записи и границ исходного эксперимента с чат-ботом.

Соответствие логических блоков физической памяти GPU в PagedAttention

Зачем генерации нужна память

Статья рассматривает первую версию работы Woosuk Kwon, Zhuohan Li и соавторов, поданную в arXiv 12 сентября 2023 года: Efficient Memory Management for Large Language Model Serving with PagedAttention. Авторегрессионная модель генерирует токены последовательно. KV-кэш хранит вычисленные ключи и значения механизма внимания, а не документ с исходным текстом пользователя. Длинным последовательностям требуется больше памяти. Резервирование большой непрерывной области для каждого запроса оставляет неиспользуемое место и создает фрагментацию. PagedAttention меняет распределение и совместное использование памяти, а не обучение модели.

Условный пример двух ответов с общими входными KV-блоками
Условный пример двух ответов с общими входными KV-блоками

Логический порядок отдельно от физического размещения

Каждый блок содержит KV-данные фиксированного числа токенов. Таблица сопоставляет логическую последовательность запроса физическим блокам GPU и заполненным позициям; соседние логические блоки могут находиться далеко друг от друга. Сначала выделяется память для входа, затем заполняется последний блок, и только при необходимости добавляется новый. Внимание читает данные по таблице, сохраняя порядок. Общий пул памяти не объединяет чужие разговоры: у запросов остаются собственные отображения.

Два ответа на один запрос: условный пример

Предположим, сервис поддержки формирует ответы A и B из полностью одинакового входа и инструкций. Их таблицы могут ссылаться на общие физические блоки входа. Разошедшиеся продолжения хранятся отдельно; одинаковые слова не гарантируют равенства KV, поскольку важны контекст и позиция. Если в последнем общем блоке есть место, при записи и наличии других ссылок применяется копирование при записи. Заполненные общие блоки остаются общими; копируется только требующий разделения блок либо выделяется новый. Блоки без ссылок освобождаются. Иллюстрация условная, не снимок продукта и не результат измерений.

Что означает результат примерно в два раза

В разделе 6.5 сообщается, что vLLM выдерживал примерно вдвое более высокую частоту запросов, чем три варианта Orca в эксперименте с чат-ботом. Речь о пропускной способности при исследованной задержке, а не об удвоении точности или сокращении времени каждого ответа вдвое. Моменты поступления запросов моделировались, KV-кэш между раундами разговора не сохранялся. Это не измерение условного сервиса поддержки. Результат зависит от длины входов и выходов, памяти GPU и характера нагрузки.

Управление памятью и описание технических отличий

Разбиение на блоки не выбирает лишь часть истории, не удаляет малозначимые токены и не расширяет автоматически контекст модели. Мелкие блоки уменьшают свободный остаток, но увеличивают расходы на отображение. FlashAttention-2 улучшает вычисления и параллелизм; PagedAttention управляет размещением и совместным использованием растущих KV-данных. Для разработки и анализа ИС фиксируйте моменты выделения, таблицы, условия совместного использования, копирование и освобождение, длины последовательностей и число одновременных запросов. Это практические рекомендации, отличные от экспериментов статьи: описывайте измененные операции, а не только экономию памяти.

Сохранены исходные обозначения и формы; содержание раскрыто в тексте.

Связанная практика: патенты в области ИИ

Статья PagedAttention, версия 1

Исходный технический разбор в Tistory

Прочитать корейский оригинал

Материал отражает ситуацию на дату публикации. Обратитесь в IPLEX, чтобы обсудить обстоятельства вашего дела.
Обсудить этот вопрос ↗Все статьи

Обсудим следующий шаг в защите ваших технологий и интеллектуальной собственности.