Логотип Зефирнет

Управляйте рабочими процессами AutoML с помощью AWS Step Functions и AutoGluon на Amazon SageMaker

Дата:

Запуск экспериментов с машинным обучением (ML) в облаке может охватывать множество служб и компонентов. Возможность структурировать, автоматизировать и отслеживать эксперименты ML необходима для быстрой разработки моделей ML. Благодаря последним достижениям в области автоматизированного машинного обучения (AutoML), а именно области машинного обучения, посвященной автоматизации процессов машинного обучения, вы можете создавать точные модели принятия решений, не нуждаясь в глубоких знаниях машинного обучения. В этом посте мы рассмотрим AutoGluon, платформу AutoML с открытым исходным кодом, которая позволяет создавать точные модели машинного обучения с помощью всего нескольких строк Python.

AWS предлагает широкий спектр сервисов для управления рабочими процессами машинного обучения и их запуска, что позволяет вам выбрать решение в зависимости от ваших навыков и области применения. Например, если вы уже используете Шаговые функции AWS для координации компонентов распределенных приложений вы можете использовать ту же службу для создания и автоматизации рабочих процессов машинного обучения. Другие инструменты MLOps, предлагаемые AWS, включают Конвейеры Amazon SageMaker, что позволяет создавать модели машинного обучения в Студия Amazon SageMaker с возможностями MLOps (такими как совместимость с CI/CD, мониторинг моделей и утверждение моделей). Инструменты с открытым исходным кодом, такие как Воздушный поток Apache—доступно на AWS через Amazon Managed Workflows для Apache Airflow-а также КубеФлоу, а также гибридные решения также поддерживаются. Например, вы можете управлять приемом и обработкой данных с помощью Step Functions во время обучения и развертывания моделей машинного обучения с помощью SageMaker Pipelines.

В этом посте мы покажем, как даже разработчики без опыта ML могут легко создавать и поддерживать современные модели ML, используя AutoGluon на Создатель мудреца Амазонки и Step Functions для организации компонентов рабочего процесса.

После обзора алгоритма AutoGluon мы представляем определения рабочего процесса вместе с примерами и руководство по коду которые вы можете применить к своим данным.

АвтоГлюон

AutoGluon — это платформа AutoML с открытым исходным кодом, которая ускоряет внедрение машинного обучения за счет обучения точных моделей машинного обучения всего несколькими строками кода Python. Хотя этот пост посвящен табличным данным, AutoGluon также позволяет вам обучать современные модели для классификации изображений, обнаружения объектов и классификации текста. AutoGluon tabular создает и комбинирует различные модели для поиска оптимального решения.

Команда AutoGluon в AWS выпустила бумаги в котором представлены принципы, которые структурируют библиотеку:

  • Простота – Вы можете создавать модели классификации и регрессии непосредственно из необработанных данных без необходимости их анализа или разработки признаков.
  • прочность - Общий процесс обучения должен быть успешным, даже если некоторые из отдельных моделей терпят неудачу.
  • Предсказуемое время – Вы можете получить оптимальные результаты за то время, которое хотите инвестировать в обучение
  • Отказоустойчивость – Вы можете остановить обучение и возобновить его в любой момент, что оптимизирует затраты, если процесс выполняется на точечных изображениях в облаке.

Подробнее об алгоритме см. бумаги выпущенный командой AutoGluon в AWS.

После установки Пакет AutoGluon и его зависимости, обучение модели так же просто, как написать три строки кода:

from autogluon.tabular import TabularDataset, TabularPredictor

train_data = TabularDataset('s3://my-bucket/datasets/my-csv.csv')
predictor = TabularPredictor(label="my-label", path="my-output-folder").fit(train_data)

Команда AutoGluon доказала силу фреймворка, войдя в топ-10 лидеров на нескольких соревнованиях Kaggle.

Обзор решения

Мы используем пошаговые функции для реализации рабочего процесса машинного обучения, который охватывает обучение, оценку и развертывание. Дизайн конвейера позволяет проводить быстрые и настраиваемые эксперименты, изменяя входные параметры, которые вы вводите в конвейер во время выполнения.

Вы можете настроить конвейер для реализации различных рабочих процессов, таких как следующие:

  • Обучите новую модель машинного обучения и сохраните ее в реестре моделей SageMaker, если на данном этапе развертывание не требуется.
  • Разверните предварительно обученную модель машинного обучения либо для онлайн (Конечная точка SageMaker) или в автономном режиме (Пакетное преобразование SageMaker) вывод
  • Запустите полный конвейер для обучения, оценки и развертывания модели машинного обучения с нуля.

Решения состоят из общего Государственный аппарат (см. следующую диаграмму), который управляет набором выполняемых действий на основе набора входных параметров.

Шаги конечного автомата следующие:

  1. Первый шаг IsTraining решает, используем ли мы предварительно обученную модель или обучаем модель с нуля. При использовании предварительно обученной модели конечный автомат переходит к шагу 7.
  2. Когда требуется новая модель ML, TrainSteps запускает второй конечный автомат, который выполняет все необходимые действия и возвращает результат в текущий конечный автомат. Мы более подробно рассмотрим конечный автомат обучения в следующем разделе.
  3. Когда обучение закончено, PassModelName сохраняет имя задания обучения в указанном месте контекста конечного автомата для повторного использования в следующих состояниях.
  4. Если выбран этап оценки, IsEvaluation перенаправляет конечный автомат в сторону оценочной ветки. В противном случае он переходит к шагу 7.
  5. Затем выполняется этап оценки с использованием AWS Lambda функция, вызываемая ModelValidation шаг. Функция Lambda извлекает характеристики модели на тестовом наборе и сравнивает их с настраиваемым пользователем порогом, указанным во входных параметрах. Следующий код является примером результатов оценки:
    "Payload":{
       "IsValid":true,
       "Scores":{
          "accuracy":0.9187,
          "balanced_accuracy":0.7272,
          "mcc":0.5403,
          "roc_auc":0.9489,
          "f1":0.5714,
          "precision":0.706,
          "recall":0.4799
       }
    }

  6. Если оценка модели на EvaluationResults завершается успешно, конечный автомат продолжает этапы возможного развертывания. Если производительность модели ниже заданных пользователем критериев, конечный автомат останавливается и развертывание пропускается.
  7. Если выбрано развертывание, IsDeploy запускает третий конечный автомат через DeploySteps, которые мы опишем позже в этом посте. Если развертывание не требуется, конечный автомат останавливается здесь.

Набор образцов входных параметров доступен на Репо GitHub.

Конечный автомат обучения

Конечный автомат для обучения новой модели машинного обучения с использованием AutoGluon состоит из двух шагов, как показано на следующей диаграмме. Первый шаг — это обучающее задание SageMaker, которое создает модель. Второй сохраняет записи в реестре моделей SageMaker.

Вы можете выполнить эти шаги либо автоматически как часть основного конечного автомата, либо как отдельный процесс.

Конечный автомат развертывания

Давайте теперь посмотрим на конечный автомат, предназначенный для этапа развертывания (см. следующую диаграмму). Как упоминалось ранее, архитектура поддерживает развертывание как в режиме онлайн, так и в автономном режиме. Первый состоит из развертывания конечной точки SageMaker, а второй запускает задание пакетного преобразования SageMaker.

Этапы реализации следующие:

  1. ChoiceDeploymentMode просматривает входные параметры, чтобы определить, какой режим развертывания необходим, и направляет конечный автомат к соответствующей ветке.
  2. Если выбрана конечная точка, EndpointConfig шаг определяет его конфигурацию, а CreateEndpoint запускает процесс выделения необходимых вычислительных ресурсов. Это выделение может занять несколько минут, поэтому конечный автомат останавливается на WaitForEndpoint и использует функцию Lambda для опроса состояния конечной точки.
  3. Пока конечная точка настраивается, ChoiceEndpointStatus возвращается к WaitForEndpoint состояние, в противном случае он продолжает либо DeploymentFailed or DeploymentSucceeded.
  4. Если выбрано автономное развертывание, конечный автомат запускает задание пакетного преобразования SageMaker, после чего конечный автомат останавливается.

Заключение

В этом посте представлен простой в использовании конвейер для организации рабочих процессов AutoML и проведения быстрых экспериментов в облаке, что позволяет создавать точные решения машинного обучения, не требуя передовых знаний в области машинного обучения.

Мы предоставляем общий конвейер, а также два модульных, которые позволяют вам проводить обучение и развертывание по отдельности, если это необходимо. Кроме того, решение полностью интегрировано с SageMaker, что позволяет использовать его возможности и вычислительные ресурсы.

Начните прямо сейчас с этого руководство по коду чтобы развернуть ресурсы, представленные в этом посте, в своей учетной записи AWS и запустить свои первые эксперименты с AutoML.


Об авторах

Федерико Пиччинини является архитектором глубокого обучения в лаборатории решений для машинного обучения Amazon. Он увлечен машинным обучением, объяснимым искусственным интеллектом и MLOps. Он занимается проектированием конвейеров машинного обучения для клиентов AWS. Вне работы он любит спорт и пиццу.

Паоло Иррера — специалист по данным в лаборатории решений для машинного обучения Amazon, где он помогает клиентам решать бизнес-проблемы с помощью машинного обучения и облачных возможностей. Он имеет докторскую степень в области компьютерного зрения от Telecom ParisTech, Париж.

Spot_img

Последняя разведка

Spot_img

Чат с нами

Всем привет! Могу я чем-нибудь помочь?