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 ГБ.