Карточки моделей Amazon SageMaker позволяют стандартизировать способы документирования моделей, тем самым обеспечивая наглядность жизненного цикла модели, начиная с проектирования, создания, обучения и оценки. Карточки моделей предназначены для того, чтобы быть единым источником достоверных деловых и технических метаданных о модели, которые можно надежно использовать для аудита и документирования. Они предоставляют информационный бюллетень модели, который важен для управления моделью.
До сих пор карточки моделей были логически связаны с моделью в реестре моделей Amazon SageMaker с помощью совпадения имени модели. Однако при решении бизнес-проблемы с помощью модели машинного обучения (ML) клиенты, повторяющие решение проблемы, создают несколько версий модели, и им необходимо ввести в действие несколько версий модели и управлять ими. Поэтому им нужна возможность привязать карточку модели к конкретной версии модели.
В этом посте мы обсудим новую функцию, которая поддерживает интеграцию карточек моделей с реестром моделей на уровне развернутой версии модели. Мы обсудим архитектуру решения и рекомендации по управлению версиями карты модели, а также покажем, как настроить, ввести в действие и управлять интеграцией карты модели с версией модели в реестре моделей.
Обзор решения
Карточки моделей SageMaker помогают стандартизировать документирование моделей с точки зрения управления, а реестр моделей SageMaker помогает развертывать и эксплуатировать модели машинного обучения. Реестр моделей поддерживает иерархическую структуру для организации и хранения моделей машинного обучения с информацией о метаданных модели.
Когда организация решает бизнес-проблему с помощью машинного обучения, например прогнозирует отток клиентов, мы рекомендуем следующие шаги:
- Создайте карточку-образец для решаемой бизнес-задачи.
- Создайте группу пакетов модели для решаемой бизнес-задачи.
- Создайте, обучите, оцените и зарегистрируйте первую версию версии пакета модели (например, Customer Churn V1).
- Обновите карточку модели, связав версию пакета модели с карточкой модели.
- При повторении новой версии пакета модели клонируйте карточку модели из предыдущей версии и свяжите ее с новой версией пакета модели (например, Customer Churn V2).
На следующем рисунке показано, как карта модели SageMaker интегрируется с реестром моделей.
Как показано на предыдущей диаграмме, интеграция карточек моделей SageMaker и реестра моделей позволяет связать карточку модели с конкретной версией модели в реестре моделей. Это позволяет вам установить единый источник достоверной информации для зарегистрированных версий модели с исчерпывающей и стандартизированной документацией на всех этапах пути модели в SageMaker, облегчая обнаружение и способствуя управлению, соответствию и подотчетности на протяжении всего жизненного цикла модели.
Рекомендации по управлению карточками моделей
Работа в области машинного обучения с управлением является сегодня критическим требованием для многих корпоративных организаций, особенно в строго регулируемых отраслях. В рамках этих требований AWS предоставляет несколько сервисов, обеспечивающих надежную работу среды машинного обучения.
Карты моделей SageMaker документируют важные сведения о ваших моделях машинного обучения в одном месте для упрощения управления и создания отчетов. Карточки моделей помогают фиксировать такие сведения, как предполагаемое использование и рейтинг риска модели, сведения об обучении и показатели, результаты оценки и наблюдения, а также дополнительные выноски, такие как соображения, рекомендации и пользовательская информация.
Карточками моделей необходимо управлять и обновлять их в процессе разработки на протяжении всего жизненного цикла машинного обучения. Они являются важной частью непрерывной доставки и конвейеров в машинном обучении. Точно так же, как проект Well-Architected ML реализует непрерывную интеграцию и непрерывную доставку (CI/CD) под эгидой MLOps, непрерывный процесс документирования ML является критически важной возможностью во многих регулируемых отраслях или для случаев использования с более высоким риском. Карточки с моделями являются частью лучших практик ответственной и прозрачной разработки машинного обучения.
На следующей диаграмме показано, как карты моделей должны быть частью жизненного цикла разработки.
Рассмотрите следующие рекомендации:
- Мы рекомендуем создавать карты моделей на ранних этапах жизненного цикла проекта. На первом этапе проекта, когда вы работаете над определением бизнес-цели и определением проблемы машинного обучения, вы должны инициировать создание карты модели. По мере того, как вы прорабатываете различные этапы бизнес-требований и важных показателей производительности, вы можете создать карточку модели в статусе черновика и определить бизнес-детали и предполагаемое использование.
- В рамках этапа жизненного цикла разработки модели вы должны использовать реестр моделей для каталогизации моделей для производства, управления версиями модели и связывания метаданных с моделью. Реестр моделей позволяет отслеживать происхождение.
- После того, как вы успешно выполнили итерацию и готовы развернуть свою модель в рабочей среде, пришло время обновить карточку модели. На этапе жизненного цикла развертывания вы можете обновить сведения о модели в карточке модели. Вам также следует обновить сведения об обучении, сведения об оценке, этические соображения, а также предостережения и рекомендации.
Карты моделей имеют связанные с ними версии. Данная версия модели является неизменной для всех атрибутов, кроме статуса карты модели. Если вы вносите какие-либо другие изменения в карточку модели, такие как показатели оценки, описание или предполагаемое использование, SageMaker создает новую версию карточки модели, чтобы отразить обновленную информацию. Это сделано для того, чтобы однажды созданная карточка модели не могла быть изменена. Кроме того, каждое уникальное имя модели может иметь только одну связанную карточку модели, и его нельзя изменить после создания карточки модели.
Модели машинного обучения являются динамическими, а компоненты автоматизации рабочего процесса позволяют легко масштабировать свои возможности по созданию, обучению, тестированию и развертыванию сотен моделей в рабочей среде, выполнять итерации быстрее, сокращать количество ошибок из-за ручной оркестровки и создавать воспроизводимые механизмы.
Таким образом, жизненный цикл карт моделей будет выглядеть так, как показано на следующей диаграмме. Каждый раз, когда вы обновляете карту модели в течение жизненного цикла модели, вы автоматически создаете новую версию карты модели. Каждый раз, когда вы повторяете новую версию модели, вы создаете новую карточку модели, которая может наследовать некоторые сведения о карточке модели из предыдущих версий модели и следовать тому же жизненному циклу.
Предпосылки
Этот пост предполагает, что у вас уже есть модели в реестре моделей. Если вы хотите продолжить, вы можете использовать следующий пример SageMaker на GitHub для заполнения реестра вашей модели: Интеграция SageMaker Pipelines с Model Monitor и Clarify.
Интегрировать карточку модели с версией модели в реестр моделей
В этом примере мы имеем model-monitor-clarify-group
package в нашем реестре моделей.
В этом пакете доступны две версии модели.
В этом примере мы связываем версию 1 модели с картой новой модели. В реестре моделей вы можете увидеть подробности для версии 1.
Теперь мы можем использовать новую функцию в SageMaker Python SDK. Из sagemaker.model_card ModelPackage
модуль, вы можете выбрать конкретную версию модели из реестра моделей, с которой вы хотите связать карточку модели.
Теперь вы можете создать новую карточку модели для версии модели и указать model_package_details
параметр с полученным пакетом предыдущей модели. Вам необходимо заполнить карточку модели всеми необходимыми дополнительными данными. Для этого поста мы создадим простую модель карты в качестве примера.
Затем вы можете использовать это определение для создания карты модели с помощью SageMaker Python SDK.
При повторной загрузке карты модели вы можете увидеть связанную модель под "__model_package_details"
.
У вас также есть возможность обновить карту существующей модели с помощью model_package
как показано в примере фрагмента кода ниже:
Наконец, при создании или обновлении новой версии пакета модели в существующем пакете модели, если карточка модели уже существует в этой группе пакетов модели, некоторая информация, такая как бизнес-детали и предполагаемое использование, может быть перенесена в новую карточку модели.
Очистить
Пользователи несут ответственность за очистку ресурсов, если они созданы с помощью записной книжки, упомянутой в разделе предварительных условий. Пожалуйста, следуйте инструкциям в записной книжке, чтобы очистить ресурсы.
Заключение
В этом посте мы обсудили, как интегрировать карточку модели SageMaker с версией модели в реестр моделей. Мы поделились архитектурой решения с рекомендациями по внедрению карточки модели и показали, как настроить и ввести в действие карточку модели, чтобы улучшить управление вашей моделью. Мы рекомендуем вам попробовать это решение и поделиться своим мнением в разделе комментариев.
Об авторах
Рам Виттал является главным архитектором решений машинного обучения в AWS. Он имеет более чем 20-летний опыт проектирования и создания распределенных, гибридных и облачных приложений. Он увлечен созданием безопасных и масштабируемых решений AI/ML и больших данных, чтобы помочь корпоративным клиентам в их переходе на облачные технологии и их оптимизации для улучшения их бизнес-результатов. В свободное время он ездит на мотоцикле и гуляет со своей 2-летней овцой-каракулем!
Наташа Форт является руководителем исследования государственных данных в государственном секторе Австралии и Новой Зеландии, руководителем SA в AWS. Она помогает организациям ориентироваться в процессе машинного обучения, поддерживая их от постановки задачи машинного обучения до развертывания в рабочей среде, при этом следя за тем, чтобы для обеспечения успеха применялись передовые методы архитектуры. Наташа занимается с организациями MLOps и ответственным искусственным интеллектом.