Модели и платформы ИИ
Будущее серверных выводов для крупномасштабных языковых моделей
Недавние достижения в области крупномасштабных языковых моделей (LLM) типа GPT-4 и PaLM привели к трансформационным возможностям в задачах обработки естественного языка. LLM интегрируются в различные приложения, такие как чат-боты, поисковые системы и помощники программирования. Однако обслуживание LLM в масштабе остается сложной задачей из-за их существенных требований к GPU и памяти.
Подходы к преодолению этих проблем обычно делятся на две основные категории:
- Техники сжатия моделей
Эти техники направлены на уменьшение размера модели при сохранении точности. Общие подходы включают:
- Обрезка – Удаление избыточных или менее важных параметров из модели. Это создает разреженную модель с меньшим количеством параметров.
- Квантование – Использование чисел с более низкой точностью, таких как int8 или bfloat16, для представления весов вместо fp32 или fp16. Это уменьшает потребление памяти.
- Дистилляция знаний – Обучение меньшей “студент” модели имитировать большую “учитель” модель. Затем меньшая модель используется для вывода.
- Выборочная выполнение
Вместо сжатых моделей эти техники выборочно выполняют только части модели для каждого вывода:
- Разреженные активации – Пропуск вычислений для нулевых активаций.
- Условные вычисления – Выполнение только определенных слоев в зависимости от входных данных.
На стороне программной архитектуры, чтобы обеспечить более быструю развертывание LLM, исследователи предложили серверные системы вывода. В серверных архитектурах LLM размещаются на общих кластерах GPU и выделяются динамически на основе спроса. Это позволяет эффективно использовать GPU и снижает затраты для разработчиков. Примечательные реализации включают Amazon (AMZN ) SageMaker, Microsoft Azure ML и открытые варианты, такие как KServe.
Несмотря на перспективы серверных LLM, существующие системы демонстрируют высокую задержку, что ухудшает пользовательский опыт в интерактивных приложениях:
- Дорогие загрузки контрольных точек: LLM имеют большие размеры памяти, часто гигабайты или терабайты. Загрузка контрольных точек из удаленного хранилища занимает много времени, даже с оптимизированными сетями.
- Неэффективная загрузка контрольных точек: Даже с локальным хранилищем SSD загрузка контрольных точек в память GPU занимает десятки секунд из-за факторов, таких как десериализация тензоров и выделение памяти. Это добавляет значительные задержки помимо времени запуска контейнера.
Чтобы решить эти проблемы, исследователи в MIT CSAIL предложили ServerlessLLM, инновационную систему, которая достигает низкозадержной серверной вывода для LLM. ServerlessLLM повышает локальность, используя избыточную, но недоиспользуемую емкость и пропускную способность в многоуровневом хранилище серверов для развертывания LLM.
Ключевые инновации в ServerlessLLM ServerlessLLM включает несколько новаторских конструкций, чтобы сократить время загрузки LLM в серверных средах:
- Быстрая загрузка контрольных точек
- Формат контрольных точек, оптимизированный для загрузки, который позволяет быстро последовательное чтение и эффективное адресование тензоров в памяти.
- Многоуровневый конвейер загрузки контрольных точек, который максимизирует использование пропускной способности на всех уровнях, используя техники, такие как прямой ввод-вывод, передача памяти и параллелизм.
- Живая миграция для локальности-ориентированного вывода
- Токен-ориентированная миграция, которая передает только необходимые токены ввода по сети, избегая медленной передачи снимков.
- Двухфазная миграция, которая позволяет бесшовно передавать выполнение на серверы с локальными контрольными точками.
- Оптимизированная по задержке аллокация серверов
- Точные модели для оценки времени загрузки контрольных точек и времени миграции для каждого сервера.
- Планировщик, осведомленный о локальности, который выбирает серверы, минимизирующие ожидаемую задержку запуска, используя вышеуказанные модели.
Эти оптимизации позволяют ServerlessLLM сократить время загрузки LLM в 4-8 раз и время запуска в более чем 25 раз по сравнению с существующими системами, такими как PyTorch, TensorFlow и KServe.
Давайте более подробно рассмотрим, как ServerlessLLM достигает этих значительных приростов производительности.
Ускорение загрузки контрольных точек
Первым основным препятствием, которое преодолевает ServerlessLLM, является высокая задержка загрузки контрольных точек LLM из хранилища в память GPU.
Чтобы обеспечить быструю загрузку контрольных точек, ServerlessLLM вводит:
- Формат контрольных точек, оптимизированный для загрузки
Стандартные контрольные точки, используемые в таких фреймворках, как PyTorch, предназначены для обучения и отладки моделей. Но для серверного вывода контрольные точки доступны только для чтения и используются повторно.
Чтобы оптимизировать для такого интенсивного чтения, ServerlessLLM преобразует контрольные точки в формат с двумя ключевыми свойствами:
- Последовательное чтение фрагментов: Тензоры группируются в бинарные файлы на каждый GPU, облегчая большие последовательные чтения.
- Эффективное адресование тензоров: Индекс сопоставляет имена тензоров с смещениями в памяти, позволяя直接 восстановить в памяти без десериализации.
- Многоуровневый конвейер загрузки контрольных точек
ServerlessLLM использует многоуровневую архитектуру серверов GPU, с хранилищем, таким как SSD, и сетью, подключенной к GPU через PCIe, NVMe и т. д.
Система включает многоступенчатый конвейер, чтобы максимизировать использование пропускной способности на всех уровнях:
- Фрагменты данных в памяти выделяются с помощью закрепленной памяти для быстрой передачи в GPU.
- Прямой ввод-вывод используется для эффективного чтения с SSD без накладных расходов на кэширование.
- Несколько потоков читают разные фрагменты хранилища параллельно.
- Координация между стадиями происходит через асинхронные очереди задач.
Вместе это позволяет насытить пропускную способность даже самых быстрых уровней, таких как NVMe RAID. Эксперименты показывают, что ServerlessLLM загружает в 6-8 раз быстрее, чем PyTorch/TensorFlow, сокращая время запуска для больших LLM с более чем минуты до менее 10 секунд.
Локальность-ориентированный вывод LLM через живую миграцию
С ускоренной загрузкой ServerlessLLM сталкивается с новым вызовом – как использовать предварительно загруженные контрольные точки для локальности без прерывания текущих выводов на занятых серверах?
ServerlessLLM вводит новую технику – живую миграцию вывода LLM между серверами GPU. Это позволяет бесшовно передавать выполнение на серверы с локальными контрольными точками.
Ключевые факторы живой миграции LLM:
- Токен-ориентированная миграция
Вместо снимка всего состояния модели ServerlessLLM мигрирует только минимальные токены ввода по сети. Это передает на несколько порядков меньше данных, чем снимки.
- Двухфазная миграция
Целевой сервер асинхронно предварительно вычисляет состояния кэша из токенов ввода. Как только готово, исходный сервер передает окончательные токены перед освобождением ресурсов. Это предотвращает простои вывода.
Эксперименты показывают, что токен-ориентированная миграция сокращает время миграции с десятков секунд до менее одной секунды даже для длинных последовательностей. Живая миграция имеет решающее значение для предотвращения задержек в очереди при достижении локальности-ориентированного распределения.
Оптимизированное по задержке планирование моделей
Чтобы минимизировать общую задержку, ServerlessLLM улучшает планировщик, чтобы оптимизировать выбор сервера с учетом локальности. Это включает:
- Точная оценка времени загрузки
Модели прогнозируют время загрузки из сети, кэша SSD и памяти для каждого сервера, используя метрики, такие как задержки в очереди, размеры моделей и измеренную пропускную способность.
- Точная оценка времени миграции
Планировщик оценивает время миграции для серверов, используя количество токенов ввода и вывода. Он отслеживает прогресс вывода асинхронно, чтобы избежать накладных расходов.
- Распределение, осведомленное о локальности
Для каждого запроса вывода планировщик оценивает оцененные время загрузки и время миграции для серверов. Он выбирает сервер, минимизирующий ожидаемую задержку запуска, используя вышеуказанные модели.
Планировщик также поддерживает очереди задач серверов и использует сильно согласованное хранилище для обеспечения отказоустойчивости. Вместе эти инновации снижают накладные расходы на планирование, максимизируя при этом выгоды от локальности.
Оценка производительности ServerlessLLM
Комплексные эксперименты оценивают общую эффективность ServerlessLLM по сравнению с существующими системами, используя реальные модели, такие как OPT-175B, и рабочие нагрузки, моделируемые по следам Azure.
Ключевые результаты:
- Микробенчмарки: ServerlessLLM ускоряет загрузку контрольных точек в 3,6-8,2 раза по сравнению с PyTorch/TensorFlow. Она полностью насыщает пропускную способность хранилища, даже для передовых конфигураций NVMe RAID.
- Планирование: ServerlessLLM снижает задержку распределения в 4-12 раз по сравнению со случайным планированием, подчеркивая выгоды от осведомленности о локальности. Живая миграция предотвращает задержки в очереди.
- Обслуживание от конца до конца: Для больших моделей, таких как OPT-30B, ServerlessLLM улучшает 99-й процентиль задержки в 28-200 раз по сравнению с системами, такими как KServe и Ray Serve. Она также повышает эффективность использования ресурсов.
Эти значительные приросты демонстрируют способность ServerlessLLM преодолевать препятствия в существующих серверных реализациях и разблокировать потенциал LLM для интерактивных сервисов.
Оптимизации, введенные в ServerlessLLM, такие как многоуровневая загрузка, живая миграция и планирование, ориентированное на задержку, могут помочь информировать проектирование будущих серверных архитектур. Способность системы сократить время загрузки и запуска разблокирует масштабируемое развертывание крупномасштабных языковых моделей для практических приложений.
Взгляд в будущее: Продолжающиеся проблемы
Хотя это значительный шаг вперед, ServerlessLLM представляет только первый шаг в оптимизации серверного вывода для крупномасштабных LLM. Несколько открытых проблем остаются, включая:
- Прогнозирование спроса на модели в реальном времени для руководства выделением и предварительной загрузкой
- Интеллектуальное размещение контрольных точек на серверах для максимизации попаданий в кэш
- Эффективное масштабирование алгоритмов планирования для обработки более крупных кластеров
- Обеспечение справедливости в распределении ресурсов между моделями и разработчиками
- Обобщение инноваций, таких как живая миграция, для других серверных рабочих нагрузок
Решение этих вопросов может помочь построить на обещании серверных LLM и сделать их возможности еще более доступными. Помимо системных оптимизаций, снижение возмутительного углеродного следа и потенциальных вредов крупномасштабных моделей остается срочной задачей.
ServerlessLLM демонстрирует, что существует значительный потенциал для инноваций в следующих поколениях серверных архитектур для рабочих нагрузок ИИ. По мере того, как LLM продолжают расти в размерах и популярности, решения, такие как ServerlessLLM, которые разблокируют их масштабируемость, будут становиться еще более влиятельными. Сочетание системных и машинных исследований может ввести новые парадигмы в обслуживании, обмене и масштабировании моделей ИИ безопасно и устойчиво.













