Понимание систем обслуживания LLM: шаблоны распределения памяти кэш-кэш

Понимание систем обслуживания LLM: шаблоны распределения памяти кэш-кэш

12 июня 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 Заключение и ссылки

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

Чтобы выделить схему распределения памяти систем обслуживания LLM, мы экспериментируем с YI-6B, работающим на одном графическом процессоре NVIDIA A100, а Llama-3-8B и YI-34B, работающим на двух графических процессорах A100 с тензор-параллелизмом. Мы устанавливаем начальную длину контекста каждого запроса на токены 1K, варьируем размер партии от 1 до 320 и измеряем задержку, пропускную способность и требования к памяти фазы декодирования (см. §6 для нашего обсуждения и оптимизации для фазы предварительной засыпки).

Наблюдение-1:На основе каждого требования к памяти к кв-кэшу известно заранее.Это связано с авторегрессивным декодированием, которое генерирует один токен за раз, Perrequest. Следовательно, с каждой итерацией, следов памяти к kv-кэшу запроса растет один токен, пока запрос не завершится.

Наблюдение-2:KV-Cache не требует высокой пропускной способности распределения памяти.Основная площадь памяти одного токена во всех слоях, как правило, составляет мало 10S-100-х килобит памяти. Например, следы памяти за точка Yi-6B, Llama-3-8b и Yi-34b составляет 64 КБ, 128 КБ и 240 КБ соответственно. Кроме того, каждая итерация работает в течение 10S-100 миллисекундов (рис. 6B), подразумевая, что запрос требует не более нескольких мегабайт памяти в секунду. В то время как партия улучшает пропускную способность системы, количество токенов, генерируемых на секунду, за пределами определенного размера партии (рис. 6а). Это подразумевает, что требование пропускной способности распределения памяти также насыщается в больших размерах партий (например, в 128 для YI34B). Для всех моделей, которые мы изучали, мы наблюдаем, что самая высокая скорость распределения памяти составляет не более 600 МБ в секунду (рис. 6C).

В случае, мы используем эти наблюдения для реализации эффективной динамической системы управления памятью для кв-кэша. В следующем разделе мы начнем с описания конструкции высокого уровня (§5.1), затем обсудим, как ваттенция используется для обслуживания LLMS (§5.3) и, наконец, описать наши оптимизации (§6).

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

Авторы:

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

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

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

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

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


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