Перейти к содержимому

SageMaker делит GPU на части для нескольких моделей

Короткий ответ

Amazon SageMaker Inference теперь поддерживает NVIDIA Multi-Instance GPU. Один физический GPU можно разделить максимум на семь изолированных партиций, в каждой работает своя модель. Можно также взять часть нового ускорителя вместо целого старого. Почасовая цена инстанса остается прежней.

Что это значит для операций

Если у вашей команды на SageMaker крутится несколько небольших моделей, например классификатор, эмбеддер, реранкер и дообученная модель под отдельного клиента, сейчас вы платите за целый GPU на каждую. Раскладка с партициями позволяет посадить их на один инстанс без взаимного влияния на задержки. Первый шаг: выписать все модели с весами, длиной контекста и числом одновременных запросов и проверить, помещаются ли они в партиции. Сделайте это до решения: раскладка фиксируется при создании эндпоинта, поэтому набор моделей, который вы часто перетасовываете, подходит плохо. Модели с малым трафиком или короткими промптами на целом старом GPU могут оказаться дешевле, как показал собственный тест AWS.

Amazon добавила разделение GPU в SageMaker Inference, о чем сообщается в записи блога AWS Machine Learning. Функция опирается на NVIDIA Multi-Instance GPU (MIG) и режет один физический GPU на партиции. Каждая получает фиксированную долю вычислений и собственный блок памяти, а изоляцию обеспечивает само железо.

Что изменилось

Раньше минимальной единицей был один целый ускоритель: на инстансе с восемью A100 помещалось не больше восьми моделей. Командам, которым нужно было настоящее разделение, приходилось поднимать собственный стек на Kubernetes. Теперь после выбора профиля партиции SageMaker сам занимается настройкой GPU, размещением и масштабированием.

Функция добавляет два необязательных поля API, новых операций и действий IAM нет. Раскладка в production variant конфигурации эндпоинта задает, как поделен каждый GPU. Затем каждый inference component указывает тип партиции, на которой он работает. Вызов модели не меняется, а эндпоинт без обоих полей работает как раньше. По замерам AWS, шаг разделения добавляет к развертыванию около 17 секунд.

Где это работает

Разделение доступно на семействах P4d, P5, G7 и G7e в семи регионах: US East (Северная Вирджиния и Огайо), US West (Орегон), Сингапур, Токио, Франкфурт и Ирландия. Из одного GPU получается не больше семи партиций, G7 делится на две, G7e на четыре. Эндпоинт должен использовать inference components. Эндпоинты с одной моделью, serverless-эндпоинты, пулы из разнородных инстансов и асинхронные вызовы не поддерживаются.

Ограничения

  • Тип партиции компонента фиксируется на все время его жизни. Чтобы изменить нарезку, нужно создать новый эндпоинт и перенести трафик.
  • Компонент, запросивший профиль, которого нет в раскладке, отклоняется, возврата к целому GPU нет.
  • Модели, которым нужно больше одного GPU, по-прежнему требуют целых устройств.
  • Счет выставляется за весь инстанс, поэтому выгода появляется за счет более высокой загрузки, а почасовая цена остается прежней.
  • Изоляция на уровне GPU не дает полной границы между арендаторами: модели на одном инстансе делят процессор хоста, память, хранилище и сеть.
  • На P4d для одного малого профиля нужен более новый драйвер NVIDIA, чем в образе по умолчанию, и, по словам AWS, сообщение об ошибке не называет этот профиль.

Что измерила AWS

AWS сравнила одну партицию H100 на три вычислительные единицы и 40 ГБ с целым A100-40GB. На каждом работала одна реплика Llama-3.1-8B-Instruct. При нагрузке, где выигрыш по стоимости был максимальным, партиция выдавала на 53-89 процентов больше выходных токенов в секунду, а время до первого токена было ниже во всех случаях. Выше порога по числу одновременных запросов она оказалась на 18-34 процента дешевле в пересчете на миллион выходных токенов. Для промптов в 100 токенов порог составил 64, для промптов в 8 000 токенов - 4. Ниже порога дешевле был целый A100. На верхней границе нагрузки с длинными промптами A100 не справился с третью-половиной запросов, а партиция не отказала ни разу. Это один тест вендора на одной модели, поэтому воспринимайте его как методику, которую стоит повторить на собственном трафике.

AWS также напоминает, что в партиции должны поместиться веса, KV-кэш и один-два гигабайта служебных расходов среды выполнения. Модели на 8 млрд параметров в FP16 только на веса нужно примерно 16 ГБ.

Источник: AWS Machine Learning Blog

Инструменты из этой новости

  • NVIDIA - цена, кто пользуется, альтернативы
Следующий шаг

Visibility Analyzer

Новость об ИИ не скажет, как ассистенты видят ваш сайт. Это проверяет Visibility Analyzer на живом сайте: в каких ответах вас цитируют, до каких страниц ассистенты не добираются и что чинить первым. Запуск бесплатный.

Запустить бесплатный аудит видимости

Запуск бесплатный, карта не нужна.

Стоимость
Бесплатно
Срок
Один прогон, минуты

Бесплатный тариф: два анализа в день, без карты.

Ещё по теме