Amazon SageMaker Автопилот автоматически создает, обучает и настраивает лучшие модели машинного обучения (ML) на основе ваших данных, позволяя вам сохранять полный контроль и прозрачность. Автопилот также может автоматически развертывать обученные модели в конечных точках логического вывода в реальном времени.
Если у вас есть рабочие нагрузки со скачкообразными или непредсказуемыми шаблонами трафика, которые могут выдержать холодный запуск, то развертывание модели на бессерверной конечной точке вывода будет более экономичным.
Бессерверный инференс Amazon SageMaker — это специально созданный вариант логического вывода, который идеально подходит для рабочих нагрузок с непредсказуемыми моделями трафика и допускает холодный запуск. В отличие от конечной точки логического вывода в реальном времени, которая поддерживается длительно работающим вычислительным экземпляром, бессерверные конечные точки предоставляют ресурсы по запросу со встроенным автоматическим масштабированием. Бессерверные конечные точки масштабируются автоматически в зависимости от количества входящих запросов и уменьшают ресурсы до нуля при отсутствии входящих запросов, помогая минимизировать расходы.
В этом посте мы покажем, как развернуть модели, обученные Autopilot, на бессерверные конечные точки логического вывода с помощью Библиотеки Бото3 для Создатель мудреца Амазонки.
Режимы обучения автопилота
Перед созданием эксперимента с автопилотом вы можете либо позволить автопилоту выбрать режим обучения автоматически, либо выбрать режим обучения вручную.
В настоящее время автопилот поддерживает три режима обучения:
- Авто – В зависимости от размера набора данных Autopilot автоматически выбирает либо режим ансамбля, либо режим HPO. Для наборов данных размером более 100 МБ Autopilot выбирает HPO; в противном случае он выбирает ансамбль.
- Ансамбль – Автопилот использует АвтоГлюон метод ансамбля с использованием наложения моделей и создает оптимальную прогностическую модель.
- Оптимизация гиперпараметров (HPO) – Автопилот находит наилучшую версию модели, настраивая гиперпараметры с помощью байесовской оптимизации или многоточечной оптимизации во время выполнения обучающих заданий в вашем наборе данных. Режим HPO выбирает алгоритмы, наиболее подходящие для вашего набора данных, и выбирает лучший диапазон гиперпараметров для настройки ваших моделей.
Чтобы узнать больше о режимах обучения автопилота, см. Режимы обучения.
Обзор решения
В этом посте мы используем UCI Банковский маркетинг набор данных, чтобы предсказать, подпишется ли клиент на срочный депозит, предлагаемый банком. Это тип задачи бинарной классификации.
Запускаем два задания Autopilot с помощью Библиотеки Boto3 для SageMaker. Первая работа использует ансамбль в качестве выбранного режима обучения. Затем мы развертываем сгенерированную модель единого ансамбля на бессерверной конечной точке и отправляем запросы на вывод на эту размещенную конечную точку.
Второе задание использует режим обучения HPO. Для типов задач классификации Autopilot создает три контейнера вывода. Мы извлекаем эти три контейнера вывода и развертываем их на отдельных бессерверных конечных точках. Затем мы отправляем запросы на вывод на эти размещенные конечные точки.
Дополнительные сведения о типах задач регрессии и классификации см. Определения контейнера вывода для типов задач регрессии и классификации.
Мы также можем запускать задания автопилота из Студия Amazon SageMaker Пользовательский интерфейс. Если вы запускаете задания из пользовательского интерфейса, обязательно отключите Автоматическое развертывание вариант в Развертывание и дополнительные настройки раздел. В противном случае Autopilot развернет лучшего кандидата на конечной точке в реальном времени.
Предпосылки
Убедитесь, что у вас установлены последние версии пакетов Boto3 и SageMaker Python:
pip install -U boto3 sagemaker
Нам нужна версия пакета SageMaker >= 2.110.0
и версия Бото3 >= boto3-1.24.84.
Запуск задания автопилота в режиме ансамбля
Чтобы запустить задание Autopilot с помощью библиотек SageMaker Boto3, мы используем create_auto_ml_job API. Затем мы проходим в AutoMLJobConfig
, InputDataConfig
и AutoMLJobObjective
в качестве входных данных для create_auto_ml_job
, Смотрите следующий код:
Автопилот возвращает BestCandidate
модельный объект, который имеет InferenceContainers
требуется для развертывания моделей в конечных точках вывода. Чтобы получить BestCandidate
для предыдущей работы мы используем describe_automl_job
функция:
Разверните обученную модель
Теперь мы развертываем предыдущий контейнер вывода на бессерверной конечной точке. Первым шагом является создание модели из контейнера вывода, затем создание конфигурации конечной точки, в которой мы указываем MemorySizeInMB
и MaxConcurrency
значения для бессерверной конечной точки вместе с названием модели. Наконец, мы создаем конечную точку с конфигурацией конечной точки, созданной выше.
Рекомендуем выбрать свой объем памяти конечной точки в соответствии с размером вашей модели. Объем памяти должен быть не меньше размера вашей модели. Ваша бессерверная конечная точка имеет минимальный размер ОЗУ 1024 МБ (1 ГБ), а максимальный размер ОЗУ, который вы можете выбрать, составляет 6144 МБ (6 ГБ).
Вы можете выбрать следующие размеры памяти: 1024 МБ, 2048 МБ, 3072 МБ, 4096 МБ, 5120 МБ или 6144 МБ.
Чтобы помочь определить, является ли бессерверная конечная точка правильным вариантом развертывания с точки зрения затрат и производительности, мы рекомендуем вам обратиться к SageMaker Serverless Inference Toolkit для сравнительного анализа, который тестирует различные конфигурации конечных точек и сравнивает наиболее оптимальную конфигурацию с сопоставимым экземпляром хостинга в реальном времени.
Обратите внимание, что бессерверные конечные точки принимают только SingleModel
для контейнеров вывода. Автопилот в режиме сборки генерирует единую модель, поэтому мы можем развернуть этот контейнер модели как есть на конечной точке. См. следующий код:
Когда бессерверная конечная точка вывода InService
, мы можем протестировать конечную точку, отправив запрос на вывод и наблюдая за прогнозами. Следующая диаграмма иллюстрирует архитектуру этой установки.
Обратите внимание, что мы можем отправлять необработанные данные в качестве полезной нагрузки на конечную точку. Ансамблевая модель, созданная Autopilot, автоматически объединяет все необходимые этапы преобразования признаков и обратного преобразования меток вместе с моделью алгоритма и пакетами в единую модель.
Отправить запрос на вывод обученной модели
Используйте следующий код, чтобы отправить вывод о вашей модели, обученной с использованием режима ансамбля:
Запуск задания автопилота в режиме HPO
В режиме HPO для CompletionCriteria
, Кроме MaxRuntimePerTrainingJobInSeconds
и MaxAutoMLJobRuntimeInSeconds,
мы могли бы также указать MaxCandidates
чтобы ограничить количество кандидатов, которые будут генерироваться заданием Autopilot. Обратите внимание, что это необязательные параметры, и они устанавливаются только для ограничения времени выполнения задания для демонстрации. См. следующий код:
Чтобы получить BestCandidate
для предыдущего задания мы снова можем использовать describe_automl_job
функция:
Разверните обученную модель
Автопилот в режиме HPO для типа задачи классификации создает три контейнера вывода.
Первый контейнер обрабатывает этапы преобразования функций. Затем контейнер алгоритма генерирует predicted_label
с наибольшей вероятностью. Наконец, контейнер вывода постобработки выполняет обратное преобразование предсказанной метки и сопоставляет ее с исходной меткой. Для получения дополнительной информации см. Определения контейнера вывода для типов задач регрессии и классификации.
Мы извлекаем эти три контейнера вывода и развертываем их на отдельных бессерверных конечных точках. Для вывода мы последовательно вызываем конечные точки, сначала отправляя полезную нагрузку в контейнер преобразования функций, затем передавая выходные данные из этого контейнера в контейнер алгоритма и, наконец, передавая выходные данные из предыдущего контейнера вывода в контейнер постобработки. который выводит предсказанную метку.
Следующая диаграмма иллюстрирует архитектуру этой установки.
Мы извлекаем три контейнера вывода из BestCandidate
со следующим кодом:
Отправить запрос на вывод обученной модели
Для логического вывода мы последовательно отправляем полезную нагрузку: сначала в контейнер преобразования признаков, затем в контейнер модели и, наконец, в контейнер преобразования обратной метки.
Смотрите следующий код:
Полная реализация этого примера доступна в следующем jupyter. ноутбук.
Убирать
Чтобы очистить ресурсы, вы можете удалить созданные бессерверные конечные точки, конфигурации конечных точек и модели:
Заключение
В этом посте мы показали, как мы можем развернуть модели, сгенерированные Autopilot, как в режиме ансамбля, так и в режиме HPO, на бессерверные конечные точки вывода. Это решение может ускорить использование экономичных и полностью управляемых сервисов машинного обучения, таких как Autopilot, для быстрого создания моделей из необработанных данных, а затем их развертывания на полностью управляемых бессерверных конечных точках логического вывода со встроенным автоматическим масштабированием для снижения затрат. .
Мы рекомендуем вам попробовать это решение с набором данных, соответствующим ключевым показателям эффективности вашего бизнеса. Вы можете обратиться к решению, реализованному в блокноте Jupyter, в Репо GitHub.
Дополнительные ссылки
Об авторе
Правин Чамарти является старшим специалистом по искусственному интеллекту и машинному обучению в Amazon Web Services. Он увлечен AI/ML и всем, что связано с AWS. Он помогает клиентам в Северной и Южной Америке масштабировать, внедрять инновации и эффективно управлять рабочими нагрузками машинного обучения на AWS. В свободное время Правин любит читать и смотреть научно-фантастические фильмы.
- Продвинутый (300)
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- Создатель мудреца Амазонки
- Amazon SageMaker Автопилот
- искусственный интеллект
- сертификация искусственного интеллекта
- искусственный интеллект в банковском деле
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- Машинное обучение AWS
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- глубокое обучение
- google ai
- обучение с помощью машины
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- масштаб ай
- синтаксис
- Технические инструкции
- зефирнет