Amazon SageMaker упрощает развертывание моделей машинного обучения (ML) для вывода в реальном времени и предлагает широкий выбор экземпляров ML, охватывающих процессоры и ускорители, такие как AWS Inferentia. Будучи полностью управляемой услугой, вы можете масштабировать развертывание моделей, минимизировать затраты на логические выводы и более эффективно управлять моделями в рабочей среде с меньшими эксплуатационными нагрузками. Конечная точка вывода в реальном времени SageMaker состоит из конечной точки HTTPs и экземпляров ML, которые развертываются в нескольких зонах доступности для обеспечения высокой доступности. Автоматическое масштабирование приложения SageMaker позволяет динамически регулировать количество экземпляров машинного обучения, предоставляемых для модели, в ответ на изменения рабочей нагрузки. Конечная точка равномерно распределяет входящие запросы по экземплярам ML с помощью циклического алгоритма.
Когда модели машинного обучения, развернутые на экземплярах, получают вызовы API от большого количества клиентов, случайное распределение запросов может работать очень хорошо, если ваши запросы и ответы не сильно различаются. Но в системах с генеративными рабочими нагрузками ИИ запросы и ответы могут быть чрезвычайно разными. В таких случаях зачастую желательно выполнить балансировку нагрузки, учитывая емкость и использование экземпляра, а не случайную балансировку нагрузки.
В этом посте мы обсуждаем стратегию маршрутизации наименьших невыполненных запросов (LOR) SageMaker и то, как она может минимизировать задержку для определенных типов рабочих нагрузок вывода в реальном времени, принимая во внимание емкость и использование экземпляров ML. Мы говорим о его преимуществах по сравнению с механизмом маршрутизации по умолчанию и о том, как вы можете включить LOR для развертывания вашей модели. Наконец, мы представляем сравнительный анализ улучшения задержки с помощью LOR по сравнению со стратегией маршрутизации по умолчанию, состоящей из случайной маршрутизации.
Стратегия SageMaker LOR
По умолчанию конечные точки SageMaker имеют стратегию случайной маршрутизации. SageMaker теперь поддерживает стратегию LOR, которая позволяет SageMaker оптимально направлять запросы к экземпляру, который лучше всего подходит для обслуживания этого запроса. SageMaker делает это возможным, отслеживая загрузку экземпляров вашей конечной точки, а также моделей или компонентов вывода, развернутых на каждом экземпляре.
На следующей интерактивной схеме показана политика маршрутизации по умолчанию, при которой запросы, поступающие к конечным точкам модели, случайным образом перенаправляются экземплярам ML.
На следующей интерактивной схеме показана стратегия маршрутизации, при которой SageMaker направит запрос к экземпляру с наименьшим количеством ожидающих обработки запросов.
В целом, маршрутизация LOR хорошо работает для базовых моделей или генеративных моделей искусственного интеллекта, когда ваша модель реагирует от сотен миллисекунд до минут. Если ответ вашей модели имеет меньшую задержку (до сотен миллисекунд), вы можете получить больше пользы от случайной маршрутизации. В любом случае мы рекомендуем вам протестировать и определить лучший алгоритм маршрутизации для ваших рабочих нагрузок.
Как настроить стратегии маршрутизации SageMaker
SageMaker теперь позволяет вам устанавливать RoutingStrategy
параметр при создании EndpointConfiguration
для конечных точек. разные RoutingStrategy
значения, поддерживаемые SageMaker:
LEAST_OUTSTANDING_REQUESTS
RANDOM
Ниже приведен пример развертывания модели в конечной точке вывода, в которой включен LOR:
- Создайте конфигурацию конечной точки, установив
RoutingStrategy
какLEAST_OUTSTANDING_REQUESTS
: - Создайте конечную точку, используя конфигурацию конечной точки (без изменений):
Результаты производительности
Мы провели тестирование производительности, чтобы измерить задержку сквозного вывода и пропускную способность кодеген2-7B модель, размещенная на экземплярах ml.g5.24xl с маршрутизацией по умолчанию и конечными точками интеллектуальной маршрутизации. Модель CodeGen2 принадлежит к семейству авторегрессионных языковых моделей и генерирует исполняемый код при наличии подсказок на английском языке.
В нашем анализе мы увеличили количество экземпляров ml.g5.24xl за каждой конечной точкой для каждого запуска теста по мере увеличения количества одновременных пользователей, как показано в следующей таблице.
Тест | Количество одновременных пользователей | Количество экземпляров |
1 | 4 | 1 |
2 | 20 | 5 |
3 | 40 | 10 |
4 | 60 | 15 |
5 | 80 | 20 |
Мы измерили сквозную задержку P99 для обеих конечных точек и наблюдали улучшение задержки на 4–33 % при увеличении количества экземпляров с 5 до 20, как показано на следующем графике.
Аналогичным образом мы наблюдали улучшение пропускной способности на 15–16% в минуту на каждый экземпляр, когда количество экземпляров было увеличено с 5 до 20.
Это показывает, что интеллектуальная маршрутизация способна улучшить распределение трафика между конечными точками, что приводит к улучшению сквозной задержки и общей пропускной способности.
Заключение
В этом посте мы объяснили стратегии маршрутизации SageMaker и новую опцию включения маршрутизации LOR. Мы объяснили, как включить LOR и какую пользу он может принести при развертывании вашей модели. Наши тесты производительности показали улучшение задержки и пропускной способности во время обработки выводов в реальном времени. Дополнительную информацию о функциях маршрутизации SageMaker см. документация. Мы рекомендуем вам оценить рабочие нагрузки вывода и определить, оптимально ли вы настроены на стратегию маршрутизации.
Об авторах
Джеймс Парк — архитектор решений в Amazon Web Services. Он работает с Amazon.com над проектированием, созданием и развертыванием технологических решений на AWS, а также проявляет особый интерес к искусственному интеллекту и машинному обучению. В свободное время он любит искать новые культуры, новый опыт и оставаться в курсе последних технологических тенденций. Вы можете найти его на LinkedIn.
Венугопал Пай — архитектор решений в AWS. Он живет в Бангалоре, Индия, и помогает клиентам, использующим цифровые технологии, масштабировать и оптимизировать свои приложения на AWS.
Дэвид Нигенда — старший инженер по разработке программного обеспечения в команде Amazon SageMaker, в настоящее время работает над улучшением рабочих процессов машинного обучения, а также над запуском новых функций вывода. В свободное время он старается не отставать от своих детей.
Дипти Рагха — инженер-разработчик программного обеспечения в команде Amazon SageMaker. Ее текущая работа сосредоточена на создании функций для эффективного размещения моделей машинного обучения. В свободное время она любит путешествовать, ходить в походы и выращивать растения.
Алан Тан — старший менеджер по продукту в SageMaker, возглавляющий работу по выводу больших моделей. Он увлечен применением машинного обучения в области аналитики. Вне работы он любит отдых на свежем воздухе.
Дхавал Патель — главный архитектор машинного обучения в AWS. Он работал с организациями, от крупных предприятий до стартапов среднего размера, над проблемами, связанными с распределенными вычислениями и искусственным интеллектом. Он специализируется на глубоком обучении, включая области НЛП и компьютерного зрения. Он помогает клиентам добиться высокопроизводительного вывода моделей в SageMaker.