Эксперименты, обучение модели и оценка исследование 6 ключевых вопросов MLOps с использованием AWS SageMaker

Исследование 6 ключевых вопросов MLOps эксперименты, модельный тренинг и оценка с применением AWS SageMaker

Эта статья является частью серии AWS SageMaker для исследования «31 вопросов, которые формируют стратегию машинного обучения в Fortune 500».

Что?

Предыдущие блог-посты, «Получение и исследование данных» и «Эксперимент с AutoPilot от SageMaker

[✓] [Автоматизация] Позволяет ли существующая платформа ускорить оценку нескольких стандартных алгоритмов и настройку значений гиперпараметров

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

В данном разделе мы сосредоточимся на AutoPilot от SageMaker, сервисе AWS, который автоматизирует обучение и оценку моделей.

💡 AutoPilot – это функциональный инструмент, который может автоматически обрабатывать различные преобразования данных, такие как обработка отсутствующих данных, с которыми мы ранее должны были работать вручную в других статьях. Кроме того, AutoPilot может нативно разделять данные на обучающую и валидационную группы.

Экспорт данных для тестирования и валидации:

Прежде чем мы начнем, давайте экспортируем наши тестовые данные (и, по желанию, валидационные данные) для последующей оценки модели. Для этого добавьте действие “Экспортировать в S3” к наборам данных для тестирования и валидации, а затем запустите процесс экспорта (Почему не обучающие данные?).

⚠️ ㅤВозможно, вам потребуется запросить увеличение квоты для экземпляра “ml.m5.4xlarge” для обработки данных.

Источник: Изображение автора.
Источник: Изображение автора.

Экспорт обучающих данных:

Интересный читатель может задаться вопросом, почему мы не экспортировали обучающие данные ранее. Да, вы можете это сделать! Однако мы пропустили этот шаг, потому что данные для обучения автоматически экспортируются при выборе опции “Train” в SageMaker Studio.

Источник: Изображение автора.

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

Источник: Изображение автора.

Настройка эксперимента AutoPilot

Теперь, после экспорта данных, мы можем начать тренировку модели. Нажав на “Экспорт и тренировка”, вы будете перенаправлены к мастеру AutoPilot. Мастер предлагает различные разделы и параметры для оптимизации процесса.

1. Подробности эксперимента и данных: Здесь вы можете указать наборы данных для обучения и валидации, а также местоположение вывода, где будут храниться результаты эксперимента, такие как модели и отчеты. В данном примере я задал обучение и валидацию с использованием экспортированных файлов-манифестов и частей.

Источник: Изображение автора.

2. Цель и особенности: Выберите цель и особенности, которые влияют на цель.

Источник: Изображение автора.

3. Метод обучения и алгоритм: Выберите Auto, чтобы SageMaker AutoPilot автоматически оценил несколько алгоритмов и выбрал лучшую модель.

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

Источник: Изображение автора.

Обучение с использованием AutoPilot

После ознакомления с конфигурацией, вы можете создать эксперимент. Это вызовет несколько попыток, которые можно найти в разделе AutoML > Ваш эксперимент. Как только эксперимент завершится, вы увидите лучшую модель.

Результатом работы также являются записные книжки для исследования данных и генерации кандидатов в моделирование для дальнейшей ручной доводки.

Источник: Изображение автора.

Тестирование лучшей модели

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

Если вы не выбрали “Авторазвертывание” во время выполнения мастера AutoML, вы можете вручную развернуть модель из интерфейса эксперимента. Мы подробнее рассмотрим развертывание в следующей статье по теме “Разворачивание и обслуживание” [ССЫЛКА].

Источник: Изображение автора.

⚠️ ㅤ В режиме пакетной обработки вам может понадобиться запрос на увеличение квоты для Инстанса для использования задачи преобразования.

Пока что давайте развернем ее в режиме реального времени и отправим несколько тестовых данных, чтобы наблюдать ответ. Вы можете использовать либо пользовательский интерфейс, либо CLI для запроса к конечной точке.

Источник: Изображение автора.

Для использования CLI откройте облачную оболочку и выполните следующую команду:

# Отправим некорректные данные, чтобы узнать ожидаемую структуру запросаaws sagemaker-runtime invoke-endpoint --body `echo 'example' | base64` --endpoint-name automl-fraud-detection --content-type text/csv /dev/stdout > Exception: Invalid data format. Input data has 1 while the model expects 6 > ['customer_id_0', 'state', 'amount', 'transaction_time', 'transaction_state', 'time_of_day'] <class 'list'># Отправим данные с более высоким суммарным значением (947.98)aws sagemaker-runtime invoke-endpoint --body `echo 2,TX,947.08,1695574580,TX,16 | base64` --endpoint-name automl-fraud-detection --content-type text/csv /dev/stdout> 1.0 // Мошенничество# Отправим данные с более низким суммарным значением (947.98)aws sagemaker-runtime invoke-endpoint --body `echo 2,TX,94.08,1695574580,TX,16 | base64` --endpoint-name automl-fraud-detection --content-type text/csv /dev/stdout> 0.0 // Не мошенничество

Устранение неполадок с помощью SageMaker Debugger

[Бонус] Как понять и отслеживать прогресс длительной обучения?

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

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

Источник: https://aws.amazon.com/sagemaker/debugger/

Объяснение с помощью SageMaker Clarify

[✓] [Управление и соблюдение нормативных требований] Как отслеживать границы модели, позволяющие объяснить принимаемые моделью решения и обнаружить предвзятость?

SageMaker интегрируется с SageMaker Clarify, что позволяет объяснить корреляцию между характеристиками в результате обучения. Это, в свою очередь, позволяет лучше понять решения модели.

Мы рассмотрим SageMaker Clarify более подробно в статье «Мониторинг и постоянное улучшение» [ССЫЛКА].

Источник: Изображение автором.

Организация с помощью SageMaker Experiments

[✓] [Сотрудничество] Как специалист по данным может поделиться экспериментом, настройками и обученными моделями?

Как уже обсуждалось в статье о Сборе и исследовании данных, SageMaker Studio позволяет всем пользователям домена получить доступ к одной и той же информации, включая эксперименты.

Кроме того, вы можете легко поделиться этими экспериментами с пользователями Canvas или экспортировать визуализации и тренированные модели для выполнения на локальном, облачном или ресурсоемком устройстве.

Источник: Изображение автором.

[✓] [Воспроизводимость] Как обеспечить воспроизводимость результатов эксперимента?

При проведении испытаний с помощью SageMaker, в данном случае AutoML, каждый запуск фиксируется и отслеживается. SageMaker Experiments автоматически записывает все шаги, параметры, настройки, а также связанные вводные и выходные артефакты. Это позволяет легко воспроизводить модели с одинаковыми настройками, упрощая устранение проблем производства и аудит моделей в соответствии с требованиями.

Источник: Изображение автором.

Каталог с помощью SageMaker Model Registry

[✓] [Воспроизводимость] Как отслеживать и управлять разными версиями обученных моделей?

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

  • Логически организовывать связанные модели в группы,
  • Понятно управлять разными версиями,
  • Откатывать или перемещаться вперед до версий, если возникают проблемы в производстве.

Здесь и приходит на сцену SageMaker Model Registry. Он позволяет ученым-данных регистрировать обученные модели в группы моделей в качестве версий. Кроме того, он позволяет установить процесс утверждения модели с состояниями “В ожидании”, “Утверждено” и “Отклонено”. Подключенный к CI/CD конвейеру (об этом я расскажу позже в статье “Мониторинг и непрерывное улучшение” [ССЫЛКА]), он может автоматизировать развертывание конечной точки SageMaker, когда модель утверждена.

Создайте группу моделей Создайте группу для логической организации моделей, решающих конкретную проблему.

Источник: Картинка от автора.

Зарегистрируйте версию модели Сначала соберите данные для регистрации модели. В процессе каталогизации убедитесь, что вы предоставляете как можно больше информации. Это включает в себя образец входных данных, объяснимость, предвзятость, отчеты о качестве, детали пакета и детали вывода.

В SageMaker Pipelines вы можете использовать RegisterModel или новое Model Step для автоматической регистрации модели в реестре моделей во время процесса обучения. Мы расскажем об этом в разделе “Мониторинг и непрерывное улучшение” [ССЫЛКА].

Источник: Картинка от автора.

После получения необходимой информации, вы можете зарегистрировать версию в ранее созданной группе моделей.

Источник: Картинка от автора.
Источник: Картинка от автора.

Утвердите версии модели Я создал две дополнительные версии в одной группе. Для каждой версии вы сможете просмотреть и рассмотреть предоставленные детали. Кроме того, если вы загрузите метрики качества, вы сможете сравнить несколько версий. И, как уже упоминалось ранее, вы можете утвердить или отклонить модель.

Источник: Картинка от автора.

⚠️ Очистка

Если вы следовали практическим упражнениям, убедитесь, что вы выполните очистку, чтобы избежать дополнительных расходов.

Источник: Картинка от автора.

Удалите конечную точку вывода Чтобы избежать дополнительных расходов, убедитесь, что вы удалили конечную точку и любые другие задачи обработки.

Источник: Картинка от автора.

Резюме

В заключение, AWS SageMaker может ускорить путь данных ученого в экспериментах, оценке и управлении моделями. Кроме того, инструменты, такие как SageMaker Debugger и SageMaker Clarify, могут помочь в понимании процесса обучения и модели.

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