
Понимание систем обслуживания 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.
Оригинал