Сегодня мы запускаем Создатель мудреца Амазонки вывод о АМС Гравитон чтобы вы могли воспользоваться ценой, производительностью и эффективностью чипов Graviton.
Экземпляры на основе Graviton доступны для вывода модели в SageMaker. Этот пост поможет вам перенести и развернуть рабочую нагрузку логического вывода машинного обучения (ML) с x86 на инстансы на основе Graviton в SageMaker. Мы предоставляем пошаговое руководство по развертыванию модели, обученной SageMaker, в инстансах на базе Graviton, рассказываем о передовых методах работы с Graviton, обсуждаем преимущества цены и производительности и демонстрируем, как развернуть модель TensorFlow на инстансе SageMaker Graviton.
Краткий обзор Гравитона
AWS Graviton — это семейство процессоров, разработанных AWS, которые обеспечивают лучшее соотношение цены и качества и более энергоэффективны, чем их аналоги x86. Процессоры AWS Graviton 3 являются последними в семействе процессоров Graviton и оптимизированы для рабочих нагрузок машинного обучения, включая поддержку bfloat16 и удвоенную пропускную способность для одной инструкции и нескольких данных (SIMD). Когда эти две функции объединены, Graviton 3 может обеспечить до трех раз более высокую производительность по сравнению с инстансами Graviton 2. Graviton 3 также потребляет до 60% меньше энергии при той же производительности, что и сопоставимые Эластичное вычислительное облако Amazon (Amazon EC2). Это отличная функция, если вы хотите уменьшить свой углеродный след и достичь своих целей в области устойчивого развития.
Обзор решения
Чтобы развернуть свои модели в экземплярах Graviton, вы либо используете Контейнеры глубокого обучения AWS or привозите свои контейнеры совместим с архитектурой Arm v8.2.
Миграция (или новое развертывание) ваших моделей с инстансов на платформе x86 на инстансы Graviton выполняется просто, поскольку AWS предоставляет контейнеры для размещения моделей с помощью PyTorch, TensorFlow, Scikit-learn и XGBoost, а модели не зависят от архитектуры. Тем не менее, если вы хотите принести свои собственные библиотеки, вы также можете это сделать, просто убедитесь, что ваш контейнер создан в среде, поддерживающей архитектуру Arm64. Для получения дополнительной информации см. Создание собственного контейнера алгоритмов.
Для развертывания модели необходимо выполнить три шага:
- Создайте модель SageMaker: она будет содержать, среди прочих параметров, информацию о расположении файла модели, контейнере, который будет использоваться для развертывания, и расположении сценария логического вывода. (Если у вас есть существующая модель, уже развернутая в экземпляре логического вывода на основе x86, вы можете пропустить этот шаг.)
- Создайте конфигурацию конечной точки: она будет содержать информацию о типе экземпляра, который вы хотите использовать для конечной точки (например, ml.c7g.xlarge для Graviton3), имени модели, которую вы создали на шаге 1, и количестве экземпляров на конечная точка.
- Запустите конечную точку с конфигурацией конечной точки, созданной на шаге 2.
Предпосылки
Прежде чем начать, учтите следующие предпосылки:
- Выполните предварительные требования, перечисленные в Предпосылки.
- Ваша модель должна быть моделью на основе PyTorch, TensorFlow, XGBoost или Scikit-learn. В следующей таблице приведены версии, поддерживаемые в настоящее время на момент написания этой статьи. Последние обновления см. Контейнеры SageMaker Framework (только поддержка SM).
. Питон TensorFlow PyTorch Scikit учиться XGBoost Поддерживаемые версии 3.8 2.9.1 1.12.1 1.0-1 1.3-1 - 1.5-1 - Скрипт вывода хранится в Простой сервис хранения Amazon (Amazon S3).
В следующих разделах мы проведем вас через этапы развертывания.
Создайте модель SageMaker
Если у вас есть существующая модель, уже развернутая в экземпляре логического вывода на базе x86, вы можете пропустить этот шаг. В противном случае выполните следующие шаги, чтобы создать модель SageMaker:
- Найдите модель, которую вы сохранили в корзине S3. Скопируйте URI.
Вы используете URI модели позже вMODEL_S3_LOCATION
. - Определите версию платформы и версию Python, которые использовались во время обучения модели.
Вам нужно выбрать контейнер из списка доступных контейнеров AWS Deep Learning для вашей платформы и версии Python. Для получения дополнительной информации см. Представляем образы контейнеров с несколькими архитектурами для Amazon ECR. - Найдите URI сценария Python для вывода в корзине S3 (обычное имя файла —
inference.py
).
URI сценария вывода требуется вINFERENCE_SCRIPT_S3_LOCATION
. - С помощью этих переменных вы можете вызвать SageMaker API с помощью следующей команды:
Вы также можете создавать образы с несколькими архитектурами и использовать один и тот же образ, но с разными тегами. Вы можете указать, на какой архитектуре будет развернут ваш экземпляр. Для получения дополнительной информации см. Представляем образы контейнеров с несколькими архитектурами для Amazon ECR.
Создайте конфигурацию конечной точки
После создания модели необходимо создать конфигурацию конечной точки, выполнив следующую команду (обратите внимание на тип экземпляра, который мы используем):
На следующем снимке экрана показаны сведения о конфигурации конечной точки в консоли SageMaker.
Запустить конечную точку
С конфигурацией конечной точки, созданной на предыдущем шаге, вы можете развернуть конечную точку:
Подождите, пока конечная точка вашей модели не будет развернута. Прогнозы можно запрашивать так же, как вы запрашиваете прогнозы для своих конечных точек, развернутых в экземплярах на базе x86.
На следующем снимке экрана показана ваша конечная точка на консоли SageMaker.
Что поддерживается
SageMaker предоставляет оптимизированные по производительности глубокие контейнеры Graviton для фреймворков TensorFlow и PyTorch. Эти контейнеры поддерживают компьютерное зрение, обработку естественного языка, рекомендации и общие варианты использования на основе глубоких и широких моделей. В дополнение к контейнерам глубокого обучения SageMaker также предоставляет контейнеры для классических платформ машинного обучения, таких как XGBoost и Scikit-learn. Контейнеры бинарно совместимы между экземплярами c6g/m6g и c7g, поэтому миграция приложения логического вывода из одного поколения в другое выполняется без проблем.
C6g/m6g поддерживает fp16 (с плавающей запятой половинной точности) и для совместимых моделей обеспечивает эквивалентную или лучшую производительность по сравнению с инстансами c5. C7g существенно повышает производительность машинного обучения за счет удвоения ширины SIMD и поддержки bfloat-16 (bf16), которая является наиболее экономичной платформой для запуска ваших моделей.
И c6g/m6g, и c7g обеспечивают хорошую производительность для классического машинного обучения (например, XGBoost) по сравнению с другими экземплярами ЦП в SageMaker. Поддержка Bfloat-16 на c7g позволяет эффективно развертывать модели, обученные bf16 или AMP (Automatic Mixed Precision). Бэкэнд Arm Compute Library (ACL) на Graviton предоставляет ядра bfloat-16, которые могут ускорить даже операторы fp32 с помощью быстрого математического режима без квантования модели.
Рекомендуемые передовые методы
В инстансах Graviton каждый виртуальный ЦП является физическим ядром. Нет соперничества за общие ресурсы ЦП (в отличие от SMT), а масштабирование производительности рабочей нагрузки происходит линейно при каждом добавлении виртуального ЦП. Поэтому рекомендуется использовать пакетный вывод всякий раз, когда это позволяет вариант использования. Это позволит эффективно использовать виртуальные ЦП за счет параллельной обработки пакета на каждом физическом ядре. Если пакетный вывод невозможен, требуется оптимальный размер экземпляра для заданной полезной нагрузки, чтобы гарантировать, что накладные расходы на планирование потоков ОС не превышают вычислительную мощность, предоставляемую дополнительными виртуальными ЦП.
TensorFlow по умолчанию поставляется с ядрами Eigen, и рекомендуется переключиться на OneDNN с ACL, чтобы получить наиболее оптимизированный сервер логического вывода. Бэкенд OneDNN и режим быстрой математики bfloat-16 можно включить при запуске службы контейнера:
Предыдущая команда обслуживания размещает стандартную модель resnet50 с двумя важными конфигурациями:
Их можно передать в контейнер вывода следующим образом:
Пример развертывания
В этом посте мы покажем вам, как развернуть модель TensorFlow, обученную в SageMaker, на экземпляре логического вывода SageMaker на базе Graviton.
Вы можете запустить пример кода либо в экземпляре блокнота SageMaker, Студия Amazon SageMaker блокнот или блокнот Jupyter в локальном режиме. Вам необходимо получить роль выполнения SageMaker, если вы используете блокнот Jupyter в локальном режиме.
В следующем примере рассматривается набор данных CIFAR-10. Вы можете следовать примеру блокнота из примеров SageMaker. Репо GitHub воспроизвести модель, которая используется в этом посте. Мы используем обученную модель и cifar10_keras_main.py Скрипт Python для вывода.
Модель хранится в корзине S3: s3://aws-ml-blog/artifacts/run-ml-inference-on-graviton-based-instances-with-amazon-sagemaker/model.tar.gz
Ассоциация cifar10_keras_main.py
сценарий, который можно использовать для вывода, хранится по адресу:s3://aws-ml-blog/artifacts/run-ml-inference-on-graviton-based-instances-with-amazon-sagemaker/script/cifar10_keras_main.py
Мы используем us-east-1
Регионируйте и разверните модель на экземпляре ml.c7g.xlarge на базе Graviton. Исходя из этого, URI нашего контейнера глубокого обучения AWS выглядит следующим образом: 763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-inference-graviton:2.9.1-cpu-py38-ubuntu20.04-sagemaker
- Настройте с помощью следующего кода:
- Загрузите набор данных для тестирования конечной точки:
- Создайте конфигурацию модели и конечной точки и разверните конечную точку:
- При желании вы можете добавить свой сценарий вывода в
Environment
increate_model
если вы изначально не добавили его как артефакт в свою модель SageMaker во время обучения:Вам нужно подождать пару минут, пока произойдет развертывание.
- Проверьте статус конечной точки с помощью следующего кода:
Вы также можете проверить Консоль управления AWS чтобы увидеть, когда ваша модель будет развернута.
- Настройте среду выполнения для вызова конечных точек:
Теперь мы готовим полезную нагрузку для вызова конечной точки. Мы используем тот же тип изображений, что и для обучения модели. Они были загружены на предыдущих шагах.
- Приведите полезную нагрузку к тензорам и задайте правильный формат, ожидаемый моделью. Для этого примера мы запрашиваем только один прогноз.
Мы получаем вывод модели в виде массива.
- Мы можем превратить этот вывод в вероятности, если применим к нему softmax:
Очистить ресурсы
Услуги, задействованные в этом решении, требуют затрат. Когда вы закончите использовать это решение, очистите следующие ресурсы:
Сравнение цены и качества
Инстансы на базе Graviton предлагают самую низкую цену и лучшее соотношение цены и качества по сравнению с инстансами на базе x86. Как и в случае с инстансами EC2, конечные точки вывода SageMaker с инстансами ml.c6g (Graviton 2) предлагают на 20 % более низкую цену по сравнению с инстансами ml.c5, а инстансы Graviton 3 ml.c7g на 15 % дешевле, чем инстансы ml.c6. Для получения дополнительной информации см. Цены на Amazon SageMaker.
Заключение
В этом посте мы продемонстрировали недавно запущенную возможность SageMaker для развертывания моделей в экземплярах логического вывода на базе Graviton. Мы дали вам рекомендации по передовым методам и кратко обсудили преимущества цены и производительности нового типа инстансов логического вывода.
Чтобы узнать больше о Graviton, см. Процессор AWS Graviton. Вы можете начать работу с инстансами EC2 на базе AWS Graviton в консоли Amazon EC2, обратившись к Техническое руководство по AWS Graviton. Вы можете развернуть конечную точку модели Sagemaker для логического вывода на Graviton с помощью примера кода в этом сообщении блога.
Об авторах
Виктор Харамильо, доктор философии, — старший инженер по машинному обучению в AWS Professional Services. До прихода в AWS он был профессором университета и научным сотрудником в области диагностического обслуживания. В свободное время он любит кататься на мотоцикле и мастерить мотоциклы своими руками.
Змнако Аврахман, доктор философии, является менеджером практики, ML SME и членом сообщества технических специалистов по машинному обучению (TFC) в Amazon Web Services. Он помогает клиентам использовать возможности облака для извлечения ценности из своих данных с помощью анализа данных и машинного обучения.
Сунита Надампалли является менеджером по разработке программного обеспечения в AWS. Она руководит оптимизацией производительности программного обеспечения Graviton для машинных, высокопроизводительных и мультимедийных рабочих нагрузок. Она увлечена разработкой с открытым исходным кодом и предоставлением экономически эффективных программных решений с помощью SoC Arm.
Джона Лю — инженер-разработчик программного обеспечения в команде Amazon SageMaker. Ее текущая работа сосредоточена на том, чтобы помочь разработчикам эффективно размещать модели машинного обучения и повышать производительность логических выводов. Она увлечена анализом пространственных данных и использованием ИИ для решения социальных проблем.
Алан Тан является старшим менеджером по продуктам в SageMaker, возглавляет усилия по выводу больших моделей. Он увлечен применением машинного обучения в области аналитики. Вне работы он любит проводить время на свежем воздухе.
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- Создатель мудреца Амазонки
- искусственный интеллект
- сертификация искусственного интеллекта
- искусственный интеллект в банковском деле
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- AMI для глубокого обучения AWS
- Машинное обучение AWS
- лучшие практики
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- глубокое обучение
- google ai
- обучение с помощью машины
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- масштаб ай
- синтаксис
- Технические инструкции
- Тензорный поток на AWS
- зефирнет