Конвейеры Amazon SageMaker позволяет специалистам по данным и инженерам по машинному обучению (ML) автоматизировать рабочие процессы обучения, что помогает создать повторяемый процесс для организации шагов разработки модели для быстрого экспериментирования и переобучения модели. Вы можете автоматизировать весь рабочий процесс построения модели, включая подготовку данных, разработку функций, обучение модели, настройку модели и проверку модели, а также каталогизировать ее в реестре моделей. Вы можете настроить конвейеры для автоматического запуска через регулярные промежутки времени или при возникновении определенных событий, или вы можете запускать их вручную по мере необходимости.
В этой статье мы расскажем о некоторых улучшениях Создатель мудреца Амазонки SDK и представить новые функции Amazon SageMaker Pipelines, упрощающие специалистам по машинному обучению создание и обучение моделей машинного обучения.
Pipelines продолжает совершенствовать свой опыт разработчиков, и благодаря этим недавним выпускам вы теперь можете использовать сервис более индивидуально:
- 2.99.0, 2.101.1, 2.102.0, 2.104.0 – Обновлена документация по
PipelineVariable
использование для оценщика, процессора, тюнера, преобразователя и базовых классов моделей, моделей Amazon и моделей фреймворка. В новых версиях SDK будут внесены дополнительные изменения для поддержки всех подклассов оценщиков и процессоров. - 2.90.0 – Наличие Шаг модели для задач создания и регистрации ресурсов интегрированной модели.
- 2.88.2 – Наличие PipelineSession для управляемого взаимодействия с сущностями и ресурсами SageMaker.
- 2.88.2 – Совместимость подклассов для этапы задания конвейера рабочего процесса поэтому вы можете создавать абстракции заданий, а также настраивать и запускать задания обработки, обучения, преобразования и настройки так же, как и без конвейера.
- 2.76.0 – Наличие Шаг неудачи условно остановить конвейер со статусом отказа.
В этом посте мы познакомим вас с рабочим процессом с использованием образца набора данных с акцентом на построение и развертывание модели, чтобы продемонстрировать, как реализовать новые функции Pipelines. К концу у вас должно быть достаточно информации, чтобы успешно использовать эти новые функции и упростить рабочие нагрузки машинного обучения.
Обзор возможностей
Pipelines предлагает следующие новые функции:
- Аннотация переменной конвейера – Некоторые параметры метода принимают несколько типов входных данных, включая
PipelineVariables
и добавлена дополнительная документация, поясняющая, гдеPipelineVariables
поддерживаются как последней стабильной версией документации SageMaker SDK, так и сигнатурой инициализации функций. Например, в следующем оценщике TensorFlow сигнатура инициализации теперь показывает, чтоmodel_dir
иimage_uri
поддержкаPipelineVariables
, тогда как другие параметры этого не делают. Для получения дополнительной информации см. Оценщик TensorFlow.- До:
- После:
- Конвейерная сессия – PipelineSession — это новая концепция, введенная для обеспечения единства SageMaker SDK и вводит ленивую инициализацию ресурсов конвейера (вызовы выполнения перехватываются, но не выполняются до тех пор, пока конвейер не будет создан и запущен).
PipelineSession
контекст наследуетSageMakerSession
и реализует удобные методы взаимодействия с другими объектами и ресурсами SageMaker, такими как задания обучения, конечные точки и наборы входных данных, хранящиеся в Простой сервис хранения Amazon (Amazon S3). - Совместимость подкласса с этапами задания конвейера рабочего процесса – Теперь вы можете создавать абстракции заданий, а также настраивать и запускать задания обработки, обучения, преобразования и настройки так же, как и без конвейера.
- Например, создание шага обработки с помощью
SKLearnProcessor
ранее требовалось следующее: - Как мы видим в предыдущем коде,
ProcessingStep
должен выполнять в основном ту же логику предварительной обработки, что и.run
, просто не инициируя вызов API для запуска задания. Но теперь, когда совместимость подклассов включена с помощью шагов задания конвейера рабочего процесса, мы объявляемstep_args
Аргумент, который принимает логику предварительной обработки с помощью .run, поэтому вы можете создать абстракцию задания и настроить ее так, как если бы вы использовали ее без конвейеров. Мы также проходим вpipeline_session
, Которая являетсяPipelineSession
объект вместоsagemaker_session
чтобы убедиться, что вызовы запуска перехватываются, но не вызываются до тех пор, пока конвейер не будет создан и запущен. См. следующий код:
- Например, создание шага обработки с помощью
- Шаг модели (упрощенный подход с этапами создания и регистрации модели) –Pipelines предлагает два типа шагов для интеграции с моделями SageMaker:
CreateModelStep
иRegisterModel
. Теперь вы можете добиться того и другого, используя толькоModelStep
тип. Обратите внимание, чтоPipelineSession
требуется для достижения этого. Это обеспечивает сходство между этапами конвейера и SDK.- До:
-
- После:
- Неисправный шаг (условная остановка трассы трубопровода) –
FailStep
позволяет остановить конвейер со статусом отказа, если выполняется условие, например, если оценка модели ниже определенного порога.
Обзор решения
В этом решении вашей точкой входа является Студия Amazon SageMaker интегрированная среда разработки (IDE) для быстрого экспериментирования. Studio предлагает среду для комплексного управления Pipelines. С помощью Studio вы можете обойти Консоль управления AWS для управления всем вашим рабочим процессом. Дополнительную информацию об управлении конвейерами из Studio см. Просмотр, отслеживание и выполнение конвейеров SageMaker в SageMaker Studio.
На следующей диаграмме показана высокоуровневая архитектура рабочего процесса машинного обучения с различными этапами обучения и формирования выводов с использованием новых функций.
Конвейер включает в себя следующие этапы:
- Предварительно обработайте данные для создания необходимых функций и разделения данных на наборы данных для обучения, проверки и тестирования.
- Создайте задание обучения с помощью платформы SageMaker XGBoost.
- Оцените обученную модель, используя набор тестовых данных.
- Проверьте, превышает ли показатель AUC заранее заданный порог.
- Если показатель AUC меньше порогового значения, остановите запуск конвейера и отметьте его как неудачный.
- Если показатель AUC превышает пороговое значение, создайте модель SageMaker и зарегистрируйте ее в реестре моделей SageMaker.
- Примените пакетное преобразование к данному набору данных, используя модель, созданную на предыдущем шаге.
Предпосылки
Чтобы следовать этому сообщению, вам понадобится учетная запись AWS с Домен студии.
Pipelines напрямую интегрированы с объектами и ресурсами SageMaker, поэтому вам не нужно взаимодействовать с какими-либо другими сервисами AWS. Вам также не нужно управлять какими-либо ресурсами, поскольку это полностью управляемая служба, а это означает, что она создает ресурсы и управляет ими для вас. Для получения дополнительной информации о различных компонентах SageMaker, которые являются как автономными API-интерфейсами Python, так и интегрированными компонентами Studio, см. Страница продукта SageMaker.
Прежде чем приступить к работе, установите SageMaker SDK версии >= 2.104.0 и xlrd >=1.0.0 в записной книжке Studio, используя следующий фрагмент кода:
Рабочий процесс машинного обучения
Для этого поста вы используете следующие компоненты:
- Подготовка данных
- Обработка SageMaker – SageMaker Processing – это полностью управляемый сервис, позволяющий выполнять пользовательские преобразования данных и разработку функций для рабочих нагрузок машинного обучения.
- Построение модели
- Обучение и оценка модели
- Обучение в один клик – Функция распределенного обучения SageMaker. SageMaker предоставляет распределенные обучающие библиотеки для параллелизма данных и параллелизма моделей. Библиотеки оптимизированы для среды обучения SageMaker, помогают адаптировать ваши распределенные учебные задания к SageMaker и повышают скорость и производительность обучения.
- SageMaker эксперименты — Эксперименты — это возможность SageMaker, которая позволяет упорядочивать, отслеживать, сравнивать и оценивать ваши итерации машинного обучения.
- Пакетное преобразование SageMaker – Пакетное преобразование или автономная оценка – это управляемая служба в SageMaker, которая позволяет прогнозировать больший набор данных с использованием моделей машинного обучения.
- Оркестрация рабочего процесса
Конвейер SageMaker — это ряд взаимосвязанных шагов, определяемых определением конвейера JSON. Он кодирует конвейер с помощью направленного ациклического графа (DAG). DAG предоставляет информацию о требованиях и взаимосвязях между каждым этапом конвейера, а его структура определяется зависимостями данных между этапами. Эти зависимости создаются, когда свойства выходных данных шага передаются в качестве входных данных для другого шага.
На следующей диаграмме показаны различные шаги в конвейере SageMaker (для варианта использования прогнозирования оттока), где SageMaker выводит связи между шагами на основе входных и выходных данных, определенных определениями шагов.
В следующих разделах описывается создание каждого этапа конвейера и запуск всего созданного конвейера.
Структура проекта
Начнем со структуры проекта:
- /sm-pipelines-end-to-end-example – Название проекта
- /данные – Наборы данных
- /трубопроводы – Файлы кода для компонентов конвейера.
- /отток клиентов
- preprocess.py
- оценить.py
- /отток клиентов
- sagemaker-pipelines-project.ipynb – Блокнот, демонстрирующий рабочий процесс моделирования с использованием новых функций Pipelines.
Скачать набор данных
Чтобы следовать этому сообщению, вам необходимо скачать и сохранить образец набора данных в папке данных в домашнем каталоге проекта, при этом файл сохраняется в Эластичная файловая система Amazon (Amazon EFS) в среде Studio.
Сборка компонентов конвейера
Теперь вы готовы создавать компоненты конвейера.
Импорт операторов и объявление параметров и констант
Создайте блокнот Studio с именем sagemaker-pipelines-project.ipynb
в домашнем каталоге проекта. Введите следующий блок кода в ячейку и запустите ячейку, чтобы настроить SageMaker и клиентские объекты S3, создать PipelineSession
и настройте местоположение корзины S3, используя корзину по умолчанию, которая поставляется с сеансом SageMaker:
Конвейеры поддерживают параметризацию, которая позволяет указывать входные параметры во время выполнения без изменения кода конвейера. Вы можете использовать модули, доступные в разделе sagemaker.workflow.parameters
модуль, например ParameterInteger
, ParameterFloat
и ParameterString
, чтобы указать параметры конвейера различных типов данных. Запустите следующий код, чтобы настроить несколько входных параметров:
Создать пакетный набор данных
Создайте пакетный набор данных, который вы будете использовать позже на этапе пакетного преобразования:
Загрузить данные в корзину S3
Загрузите наборы данных в Amazon S3:
Определите сценарий обработки и этап обработки.
На этом шаге вы подготавливаете скрипт Python для разработки функций, одного горячего кодирования и курируете обучение, проверку и тестовые разделения, которые будут использоваться для построения модели. Запустите следующий код, чтобы создать сценарий обработки:
Затем запустите следующий блок кода, чтобы создать экземпляр процессора, и шаг Pipelines, чтобы запустить сценарий обработки. Поскольку сценарий обработки написан на Pandas, вы используете SKLearnПроцессор. Трубопроводы ProcessingStep
Функция принимает следующие аргументы: процессор, входные местоположения S3 для необработанных наборов данных и выходные местоположения S3 для сохранения обработанных наборов данных.
Определение шага обучения
Настройте обучение модели с помощью оценщика SageMaker XGBoost и конвейеров. TrainingStep
функция:
Определите сценарий оценки и этап оценки модели.
Запустите следующий блок кода, чтобы оценить модель после обучения. Этот сценарий инкапсулирует логику проверки соответствия показателя AUC указанному порогу.
Затем запустите следующий блок кода, чтобы создать экземпляр процессора, и шаг Pipelines, чтобы запустить сценарий оценки. Поскольку оценочный сценарий использует пакет XGBoost, вы используете ScriptProcessor
вместе с изображением XGBoost. Трубопроводы ProcessingStep
Функция принимает следующие аргументы: процессор, входные местоположения S3 для необработанных наборов данных и выходные местоположения S3 для сохранения обработанных наборов данных.
Определите шаг создания модели
Запустите следующий блок кода, чтобы создать модель SageMaker с помощью шага модели Pipelines. На этом шаге выходные данные этапа обучения используются для упаковки модели для развертывания. Обратите внимание, что значение аргумента типа экземпляра передается с использованием параметра Pipelines, который вы определили ранее в посте.
Определите шаг пакетного преобразования
Запустите следующий блок кода, чтобы запустить пакетное преобразование с использованием обученной модели с пакетным вводом, созданным на первом этапе:
Определить шаг модели регистрации
Следующий код регистрирует модель в реестре моделей SageMaker с помощью шага модели Pipelines:
Определите шаг сбоя для остановки конвейера
Следующий код определяет шаг сбоя конвейеров, чтобы остановить запуск конвейера с сообщением об ошибке, если показатель AUC не соответствует определенному порогу:
Определите шаг условия для проверки оценки AUC
Следующий код определяет шаг условия для проверки оценки AUC и условного создания модели, запуска пакетного преобразования и регистрации модели в реестре модели или остановки запуска конвейера в состоянии сбоя:
Создайте и запустите конвейер
После определения всех шагов компонента вы можете собрать их в объект Pipelines. Вам не нужно указывать порядок конвейера, поскольку Pipelines автоматически выводит последовательность порядка на основе зависимостей между шагами.
Запустите следующий код в ячейке записной книжки. Если конвейер уже существует, код обновляет конвейер. Если конвейер не существует, он создает новый.
Заключение
В этом посте мы представили некоторые из новых функций, которые теперь доступны в Pipelines, а также другие встроенные функции SageMaker и алгоритм XGBoost для разработки, итерации и развертывания модели для прогнозирования оттока. Решение может быть дополнено дополнительными источниками данных
для реализации собственного рабочего процесса машинного обучения. Дополнительные сведения о шагах, доступных в рабочем процессе Pipelines, см. Конвейер построения моделей Amazon SageMaker и Рабочие процессы SageMaker, Примеры AWS SageMaker В репозитории GitHub есть больше примеров различных вариантов использования Pipelines.
Об авторах
Джерри ПэнЕще является инженером-разработчиком программного обеспечения в AWS SageMaker. Он занимается созданием комплексной крупномасштабной системы MLOps от обучения до мониторинга моделей в производстве. Он также увлечен тем, чтобы донести концепцию MLOps до более широкой аудитории.
Девэн Ци — инженер-разработчик программного обеспечения в AWS. В настоящее время она занимается разработкой и улучшением конвейеров SageMaker. Вне работы она увлекается игрой на виолончели.
Гаятри Ганакота — старший инженер по машинному обучению в AWS Professional Services. Она увлечена разработкой, развертыванием и объяснением решений AI/ML в различных областях. До этой должности она руководила несколькими инициативами в качестве специалиста по данным и инженера по машинному обучению в ведущих мировых компаниях в сфере финансов и розничной торговли. Она имеет степень магистра компьютерных наук, специализирующуюся на науке о данных, полученную в Колорадском университете в Боулдере.
Рупиндер Гревал является старшим архитектором решений Ai/ML Specialist в AWS. В настоящее время он занимается обслуживанием моделей и MLOps в SageMaker. До этой должности он работал инженером по машинному обучению, создавая и размещая модели. Вне работы он любит играть в теннис и кататься на велосипеде по горным тропам.
Рэй Ли является старшим специалистом по данным в AWS Professional Services. Его специальность сосредоточена на создании и внедрении решений AI/ML для клиентов разного размера, от стартапов до корпоративных организаций. Вне работы Рэй увлекается фитнесом и путешествует.
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- Создатель мудреца Амазонки
- искусственный интеллект
- сертификация искусственного интеллекта
- искусственный интеллект в банковском деле
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- Машинное обучение AWS
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- глубокое обучение
- google ai
- обучение с помощью машины
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- масштаб ай
- синтаксис
- зефирнет