Свяжитесь с нами:

Будущее бессерверного вывода для больших языковых моделей

Искусственный интеллект

Будущее бессерверного вывода для больших языковых моделей

mm

Недавние достижения в области больших языковых моделей (LLM), таких как GPT-4 и PaLM, привели к появлению возможностей преобразования в задачах на естественном языке. LLM включаются в различные приложения, такие как чат-боты, поисковые системы и помощники по программированию. Однако обслуживание LLM в больших масштабах остается сложной задачей из-за существенных требований к графическому процессору и памяти.

Подходы к преодолению этой проблемы обычно делятся на две основные категории:

  1. Методы сжатия модели

Эти методы направлены на уменьшение размера модели при сохранении точности. Общие подходы включают в себя:

  • Обрезка – Удаление избыточных или менее важных параметров из модели. Это создает разреженную модель с меньшим количеством параметров.
  • квантование – Использование чисел более низкой точности, таких как int8 или bfloat16, для представления весов вместо fp32 или fp16. Это уменьшает объем памяти.
  • Дистилляция знаний – Обучение меньшей модели «ученика» имитации большой модели «учителя». Меньшая модель затем используется для вывода.
  1. Выборочное выполнение

Вместо сжатых моделей эти методы выборочно выполняют только части модели для каждого вывода:

  • Редкие активации – Пропуск вычислений при нулевых активациях.
  • Условное вычисление – Выполнение только определенных слоев, обусловленных входными данными.

На дополнительной стороне по отношению к стороне архитектора программного обеспечения; Чтобы обеспечить более быстрое развертывание LLM, исследователи предложили бессерверные системы вывода. В бессерверных архитектурах LLM размещаются в общих кластерах графических процессоров и распределяются динамически в зависимости от спроса. Это позволяет эффективно использовать графические процессоры и снижает затраты разработчиков. Известные реализации включают Amazon SageMaker, Microsoft Azure ML и варианты с открытым исходным кодом, такие как KServe.

Несмотря на обещания бессерверных LLM, существующие системы демонстрируют высокие затраты на задержку, которые ухудшают взаимодействие с пользователем в интерактивных приложениях:

  1. Дорогостоящие загрузки контрольно-пропускных пунктов: LLM требуют большого объема памяти, часто от гигабайт до терабайт. Загрузка контрольных точек из удаленного хранилища занимает много времени: более 20 секунд даже в оптимизированных сетях.
  2. Неэффективная загрузка контрольных точек: даже при использовании локального SSD-накопителя загрузка контрольных точек в память графического процессора занимает десятки секунд из-за таких факторов, как десериализация и распределение тензоров. Это добавляет значительные задержки помимо времени запуска контейнера.

Чтобы решить эти проблемы, исследователи из MIT CSAIL предложили БессерверноеLLM, инновационная система, обеспечивающая бессерверный вывод с малой задержкой для LLM. ServerlessLLM повышает локальность за счет использования богатой, но недостаточно используемой емкости и пропускной способности многоуровневого серверного хранилища для развертывания LLM.

Обзор бессерверных систем вывода LLM

Обзор бессерверных систем вывода LLM

Ключевые инновации в ServerlessLLM ServerlessLLM включает в себя несколько новых разработок, позволяющих сократить время загрузки LLM в бессерверных средах:

  1. Быстрая загрузка КПП
  • Оптимизированный для загрузки формат контрольных точек, обеспечивающий быстрое последовательное чтение и эффективную тензорную адресацию в памяти.
  • Многоуровневый конвейер загрузки контрольных точек, который максимизирует использование полосы пропускания в сети, твердотельных накопителях, DRAM и памяти графического процессора с помощью таких методов, как прямой ввод-вывод, передача закрепленной памяти и параллелизм.
  1. Живая миграция для вывода на основе локальности
  • Миграция на основе токенов, при которой по сети передаются только необходимые токены приглашения, что позволяет избежать медленной передачи снимков.
  • Двухэтапная миграция, которая обеспечивает непрерывный вывод путем асинхронного пересчета состояний кэша на целевом сервере перед передачей окончательных токенов.
  1. Распределение серверов с оптимизированной задержкой
  • Точные модели для оценки времени загрузки контрольных точек на каждом уровне и времени миграции для сервера.
  • Планировщик с учетом местоположения, который выбирает серверы, минимизируя ожидаемую задержку запуска, используя вышеуказанные модели.

Эти оптимизации позволяют ServerlessLLM сократить время загрузки LLM в 4–8 раз и время сквозного запуска более чем в 25 раз по сравнению с существующими системами, такими как PyTorch, TensorFlow и KServe.

Давайте подробнее рассмотрим, как ServerlessLLM достигает столь значительного прироста производительности.

Ускорение загрузки контрольной точки

Первым серьезным узким местом, которое устраняет ServerlessLLM, является высокая задержка при загрузке контрольных точек LLM из хранилища в память графического процессора.

Чтобы обеспечить быструю загрузку контрольных точек, ServerlessLLM предлагает:

  1. Оптимизированный для загрузки формат контрольной точки

Стандартные контрольные точки, используемые такими платформами, как PyTorch, предназначены для обучения и отладки моделей. Но для бессерверного вывода контрольные точки доступны только для чтения и доступны повторно.

Чтобы оптимизировать такое интенсивное чтение, ServerlessLLM преобразует контрольные точки в формат с двумя ключевыми свойствами:

  • Последовательное чтение на основе фрагментов: тензоры группируются в двоичные файлы для каждого графического процессора, что облегчает последовательное чтение больших объемов данных.
  • Эффективная тензорная адресация: индекс сопоставляет имена тензоров со смещениями в памяти, обеспечивая прямое восстановление в памяти без десериализации.
  1. Многоуровневый конвейер загрузки контрольно-пропускных пунктов

ServerlessLLM использует многоуровневую архитектуру серверов графических процессоров с носителями данных, такими как твердотельные накопители, и сетевым подключением к графическим процессорам через PCIe, NVMe и т. д.

Система включает в себя многоступенчатый конвейер для максимального использования полосы пропускания на всех уровнях:

  • Блоки данных в памяти выделяются с использованием закрепленной памяти для быстрой передачи данных на графический процессор.
  • Прямой ввод-вывод используется для эффективного чтения SSD без затрат на кэширование.
  • Несколько потоков параллельно читают разные фрагменты памяти.
  • Межэтапная координация осуществляется посредством асинхронных очередей задач.

В совокупности это позволяет насытить пропускную способность даже самых быстрых уровней, таких как NVMe RAID. Эксперименты показывают, что ServerlessLLM обеспечивает загрузку в 6–8 раз быстрее, чем PyTorch/TensorFlow, сокращая время запуска больших LLM с более чем минуты до менее 10 секунд.

Вывод LLM на основе местоположения посредством динамической миграции

Из-за ускоренной загрузки перед ServerlessLLM стоит новая задача: как использовать предварительно загруженные контрольные точки для локальности, не прерывая текущие выводы на загруженных серверах?

ServerlessLLM представляет новую технику — живую миграцию выводов LLM между серверами графических процессоров. Это позволяет беспрепятственно передавать выполнение на серверы с доступными локальными контрольными точками.

Ключевые факторы живой миграции LLM:

  1. Миграция на основе токенов

Вместо создания моментального снимка состояния всей модели ServerlessLLM переносит по сети только минимальные токены приглашения. При этом передается на порядки меньше данных, чем при использовании снимков.

  1. Двухэтапная миграция

Целевой сервер асинхронно предварительно вычисляет состояния кэша на основе токенов приглашения. После готовности исходный сервер передает окончательные токены перед высвобождением ресурсов. Это предотвращает остановки вывода.

Эксперименты показывают, что миграция на основе токенов сокращает время миграции с десятков секунд до менее секунды даже для длинных последовательностей. Динамическая миграция имеет решающее значение для предотвращения задержек в очередях при распределении ресурсов с учетом местоположения.

Планирование модели с оптимизацией задержки

Чтобы минимизировать сквозную задержку, ServerlessLLM расширяет возможности планировщика, оптимизируя выбор сервера с учетом локальности. Это включает в себя:

  1. Детальная оценка времени загрузки

Модели прогнозируют время загрузки из сети, кэшей SSD и памяти для каждого сервера, используя такие показатели, как задержки в очереди, размеры модели и измеренная пропускная способность.

  1. Точный прогноз времени миграции

Планировщик оценивает время миграции серверов, используя количество токенов приглашения и вывода. Он отслеживает ход вывода асинхронно, чтобы избежать накладных расходов.

  1. Распределение с учетом местоположения

Для каждого запроса на вывод планировщик оценивает предполагаемое время загрузки и миграции между серверами. Он выбирает сервер, минимизируя ожидаемую задержку при запуске.

Планировщик также поддерживает очереди задач сервера и использует строго согласованное хранилище для обеспечения отказоустойчивости. В совокупности эти инновации сокращают накладные расходы на планирование и при этом максимизируют преимущества, связанные с местоположением.

Оценка производительности 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, которые открывают их масштабируемость, будут становиться еще более эффективными. Слияние исследований в области систем и машинного обучения может создать новые парадигмы безопасного и устойчивого обслуживания, совместного использования и масштабирования моделей ИИ.

Последние пять лет я погружался в увлекательный мир машинного обучения и глубокого обучения. Моя страсть и опыт позволили мне принять участие в более чем 50 различных проектах по разработке программного обеспечения, уделяя особое внимание AI/ML. Мое постоянное любопытство также привлекло меня к обработке естественного языка, области, которую я очень хочу исследовать дальше.