Большие языковые модели: процесс вывода и структура квэша KV

Большие языковые модели: процесс вывода и структура квэша KV

11 июня 2025 г.

Аннотация и 1 введение

2 фон

2.1 Модели больших языков

2.2 Фрагментация и Pagegataturation

3 проблемы с моделью Pagegatatturetion и 3.1 требуют переписывания ядра внимания

3.2 Добавляет избыточность в рамки порции и 3,3 накладных расходов

4 понимания систем обслуживания LLM

5 Vattument: проектирование системы и 5.1 Обзор дизайна

5.2 Использование поддержки CUDA низкого уровня

5.3 Служение LLMS с ваттенцией

6 -й ваттиция: оптимизация и 6,1 смягчения внутренней фрагментации

6.2 Скрытие задержки распределения памяти

7 Оценка

7.1 Портативность и производительность для предпочтений

7.2 Портативность и производительность для декодов

7.3 Эффективность распределения физической памяти

7.4 Анализ фрагментации памяти

8 Связанная работа

9 Заключение и ссылки

2.1 Модели больших языков

Учитывая входную последовательность, LLM предсказывает вероятность выходной последовательности, в которой последовательность представляет собой набор токенов [39]. Каждый запрос на вывод начинается с фазы предварительного заполнения, которая параллельно обрабатывает все свои приглашенные токены. Фаза предварительной заполнения создает первый выходной токен запроса. После этого фаза декодирования итеративно обрабатывает выходной токен, сгенерированный на предыдущем этапе, и создает следующий выходной токен в каждой итерации [26].

LLMs построены на одном из вариантов архитектуры трансформатора [44]. Блок трансформатора содержит два типа операторов: по позиции и последовательно. Первая категория включает в себя сеть подачи, нормализацию слоя, активацию, встраивание слоя, выходной выборки и остаточные соединения, тогда как внимание является оператором уровня последовательности. В этой статье мы в первую очередь сосредоточены на внимании, поскольку она является основным потребителем памяти графических процессоров при выводе LLM.

Структура кв-кэша и терминологии:LLM состоит из нескольких слоев блока трансформатора, и каждый слой поддерживает свой собственный кэш из ключей и значений. В этой статье мы называем кэш всех блоков трансформаторов коллективно как кв-кэш при использовании термина k-cache или v-cach для ключей и значений соответственно. В рамках глубокого обучения k-cache (или v-cache) на каждом слое обычно представлен как 4D тензор формы [𝐵, 𝐿, 𝐻, 𝐷], где 𝐵 относится к размеру партии и 𝐿 относится к максимально возможной длине контекста запроса. Мы ссылаемся на реализацию ядра, которая вычисляет оценки внимания по смежному сохранению K и V как ванильного ядра.

Эта статья естьДоступно на ArxivПод CC по лицензии 4.0.


[2] Исключением из этого является внимание скользящего окна, которое фиксирует верхнюю границу того, сколько из токенов используется для вычисления внимания.

Авторы:

(1) Рамья Прабху, Microsoft Research India;

(2) Аджай Наяк, Индийский институт науки и участвовал в этой работе в качестве стажера в Microsoft Research India;

(3) Джаяшри Мохан, Microsoft Research India;

(4) Рамачандран Рамджи, Microsoft Research India;

(5) Ашиш Панвар, Microsoft Research India.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE