Используйте функцию обмена моделями Amazon SageMaker Model Card для улучшения управления моделями.

Используйте обмен моделями Amazon SageMaker Model Card для улучшения управления моделями.

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

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

Фреймворк, который обеспечивает системную видимость разработки, валидации и использования моделей ML, называется управлением ML. Во время AWS re:Invent 2022 AWS представила новые инструменты управления ML для Amazon SageMaker, которые упрощают контроль доступа и повышают прозрачность ваших ML-проектов. Одним из инструментов, доступных в рамках управления ML, являются карточки модели Amazon SageMaker, которые обладают возможностью создания единого источника правды для информации о модели, централизующего и стандартизирующего документацию на протяжении всего жизненного цикла модели.

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

При масштабировании ваших моделей, проектов и команд, мы рекомендуем использовать многоконтурную стратегию, обеспечивающую изоляцию проектов и команд для разработки и развертывания моделей ML. Для получения дополнительной информации о повышении управляемости ваших моделей ML, обратитесь к Руководству по улучшению управляемости ваших моделей машинного обучения с помощью Amazon SageMaker.

Обзор архитектуры

Архитектура реализована следующим образом:

  • Учетная запись Data Science – Ученые по данным проводят свои эксперименты в SageMaker Studio и создают MLOps-настройку для развертывания моделей в средах стейджинга/продукта с использованием SageMaker Projects.
  • Общая служба ML – Настройка MLOps из учетной записи Data Science будет запускать непрерывную интеграцию и непрерывную доставку (CI/CD) конвейеров с использованием AWS CodeCommit и AWS CodePipeline.
  • Учетная запись Dev – CI/CD конвейеры дополнительно будут запускать ML конвейеры в этой учетной записи, охватывающие предварительную обработку данных, обучение модели и последующую обработку, такую как оценка и регистрация модели. Результаты этих конвейеров развертывают модель в конечных точках SageMaker для использования в целях вывода. В зависимости от ваших требований к управлению, учетные записи Data Science и Dev могут быть объединены в одну учетную запись AWS.
  • Учетная запись Data – ML конвейеры, выполняющиеся в учетной записи Dev, будут извлекать данные из этой учетной записи.
  • Учетные записи Test и Prod – CI/CD конвейеры продолжат развертывание после учетной записи Dev для настройки конфигурации конечной точки SageMaker в этих учетных записях.
  • Безопасность и управление – В рамках обеспечения безопасности и управления будут использоваться службы, такие как AWS Identity and Access Management (IAM), AWS IAM Identity Center, AWS CloudTrail, AWS Key Management Service (AWS KMS), Amazon CloudWatch и AWS Security Hub.

На следующей диаграмме показана эта архитектура.

Дополнительную информацию о настройке масштабируемой многоконтурной архитектуры ML см. в основах MLOps для предприятий с помощью Amazon SageMaker.

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

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

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

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

Следующая диаграмма иллюстрирует эту архитектуру.

Архитектура реализуется следующим образом:

  1. Ведущему научному сотруднику сообщается о необходимости решить задачу оттока клиентов с помощью машинного обучения, и он начинает проект машинного обучения, создавая модельную карту для модели оттока клиентов V1 в статусе Черновик в общем аккаунте службы машинного обучения
  2. С помощью автоматизации эта модельная карта распространяется на аккаунт разработчика машинного обучения
  3. Научный сотрудник строит модель и начинает заполнять информацию через API в модельную карту на основе результатов экспериментов, и статус модельной карты устанавливается в ожидании проверки
  4. С помощью автоматизации эта модельная карта распространяется на аккаунт тестирования машинного обучения
  5. Инженер машинного обучения (MLE) запускает интеграционные и проверочные тесты в аккаунте тестирования машинного обучения, и модель в центральном реестре отмечается как ожидающая утверждения
  6. Утверждающий модели просматривает результаты модели с помощью сопроводительной документации, предоставленной в центральной модельной карте, и утверждает модельную карту для развертывания в производство.
  7. С помощью автоматизации эта модельная карта распространяется на аккаунт производства машинного обучения в режиме “только чтение”.

Предварительные требования

Перед началом работы убедитесь, что у вас есть следующие предварительные требования:

  • Два учетные записи AWS.
  • В обеих учетных записях AWS должна быть настроена роль IAM-федерации с правами администратора для выполнения следующих действий:
    • Создание, редактирование, просмотр и удаление модельных карт в Amazon SageMaker.
    • Создание, редактирование, просмотр и удаление ресурсных общих доступов в AWS RAM.

Дополнительную информацию см. в примерах политик IAM для AWS RAM.

Настройка обмена модельными картами

Аккаунт, в котором создаются модельные карты, является аккаунтом модельной карты. Пользователи в аккаунте модельной карты делятся ими с общими аккаунтами, где их можно обновить. Пользователи в аккаунте модельной карты могут делиться своими модельными картами с помощью сервиса AWS Resource Access Manager (AWS RAM). AWS RAM помогает вам делиться ресурсами между учетными записями AWS.

В следующем разделе мы покажем, как делиться модельными картами.

Сначала создайте модельную карту для случая оттока клиентов, как описано ранее. В консоли Amazon SageMaker разверните раздел Управление и выберите Модельные карты.

Мы создаем модельную карту в статусе Черновик с именем Customer-Churn-Model-Card. Дополнительную информацию см. в разделе Создание модельной карты. В этой демонстрации вы можете оставить остальные поля пустыми и создать модельную карту.

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

aws sagemaker create-model-card --model-card-name Customer-Churn-Model-Card --content "{\"model_overview\": {\"model_owner\": \"model-owner\",\"problem_type\": \"Customer Churn Model\"}}" --model-card-status Draft

Теперь создайте общий доступ между аккаунтами с помощью AWS RAM. В консоли AWS RAM выберите Создать общий доступ к ресурсу.

Введите имя для общего доступа к ресурсу, например «Customer-Churn-Model-Card-Share». В разделе Ресурсы – необязательно выберите тип ресурса как Карты моделей SageMaker. Карта модели, созданная на предыдущем шаге, появится в списке.

Выберите эту модель и она появится в разделе Выбранные ресурсы. Выберите этот ресурс снова, как показано на следующих шагах, и выберите Далее.

На следующей странице вы можете выбрать Управляемые разрешения. Вы можете создать пользовательские разрешения или использовать параметр по умолчанию “AWSRAMPermissionSageMakerModelCards” и выбрать Далее. Дополнительные сведения см. В разделе Управление разрешениями в AWS RAM.

На следующей странице вы можете выбрать Принципалы. В разделе Выберите тип принципала выберите AWS Account и введите идентификатор учетной записи, с которой нужно общий доступ к карте модели. Выберите Добавить и перейдите к следующей странице.

На последней странице проверьте информацию и выберите «Создать общий доступ к ресурсу». Альтернативно, вы можете использовать следующую команду AWS CLI для создания общего доступа к ресурсу:

aws ram create-resource-share --name <Имя карты модели>

aws ram associate-resource-share --resource-share-arn <ARN ресурсного общего доступа, созданного с предыдущей команды> --resource-arns <ARN карты модели>

В консоли AWS RAM вы увидите атрибуты общего доступа к ресурсу. Убедитесь, что Общие ресурсы, Управляемые разрешения и Общие принципалы находятся в статусе «Associated».

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

  • Если вы включили общий доступ к AWS RAM с организациями AWS и ваши принципалы, с которыми вы делитесь, находятся в той же организации, что и учетная запись, делающая общий доступ, эти принципалы могут получить доступ, как только администратор их учетной записи предоставит им разрешения.
  • Если вы не включили общий доступ к AWS RAM с организациями, вы все равно можете делиться ресурсами с отдельными учетными записями AWS, находящимися в вашей организации. Администратор в потребляющей учетной записи получает приглашение для присоединения к общему доступу к ресурсу, и он должен принять приглашение, прежде чем принципалы, указанные в общем доступе к ресурсу, смогут получить доступ к общим ресурсам.
  • Вы также можете делиться с учетными записями за пределами вашей организации, если тип ресурса это поддерживает. Администратор в потребляющей учетной записи получает приглашение для присоединения к общему доступу к ресурсу, и он должен принять приглашение, прежде чем принципалы, указанные в общем доступе к ресурсу, смогут получить доступ к общим ресурсам.

Дополнительные сведения об AWS RAM см. В разделе Термины и концепции для AWS RAM.

Доступ к общим картам моделей

Теперь мы можем войти в общую учетную запись AWS, чтобы получить доступ к карте модели. Убедитесь, что вы получаете доступ к консоли AWS с использованием разрешений IAM (роли IAM), которые позволяют получить доступ к AWS RAM.

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

Чтобы просмотреть карточку модели в общей учетной записи AWS:

  1. Перейдите на страницу Общие ресурсы в консоли AWS RAM.
  2. Убедитесь, что вы работаете в том же регионе AWS, где была создана общая публикация.
  3. Размещенная из учетной записи модели модель будет доступна в списке. Если список ресурсов длинный, вы можете применить фильтр для поиска конкретных общих ресурсов. Вы можете применять несколько фильтров для сужения поиска.
  4. Доступна следующая информация:
    1. Идентификатор ресурса – Идентификатор ресурса. Это имя карточки модели, которую мы создали ранее в учетной записи карточки модели.
    2. Тип ресурса – Тип ресурса.
    3. Дата последней публикации – Дата, когда ресурс был опубликован для вас.
    4. Доля ресурсов – Количество ресурсов, включающих данный ресурс. Выберите значение, чтобы просмотреть доли ресурсов.
    5. Идентификатор владельца – Идентификатор принципала, являющегося владельцем ресурса.

Вы также можете получить доступ к карточке модели с использованием опции AWS CLI. Для настроенной с правильными учетными данными политики AWS IAM убедитесь, что у вас есть разрешения на создание, редактирование и удаление карточек моделей в Amazon SageMaker. Дополнительные сведения см. в разделе Настройка AWS CLI.

Вы можете использовать следующую политику разрешений AWS IAM в качестве шаблона:

{
     "Version": "2012-10-17",
     "Statement": [
        {
             "Effect": "Allow",
             "Action": [
                 "sagemaker:DescribeModelCard",
                 "sagemaker:UpdateModelCard",
                 "sagemaker:CreateModelCardExportJob",
                 "sagemaker:ListModelCardVersions",
                 "sagemaker:DescribeModelCardExportJob"
             ],
             "Resource": [
                 "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-0",
                 "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-1/*"
             ]
        },
        { 
             "Effect": "Allow", 
             "Action": "s3:PutObject",
             "Resource": "arn:aws:s3:::Amazon-S3-bucket-storing-the-pdf-of-the-model-card/model-card-name/*"
        }
    ]
}

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

aws sagemaker describe-model-card --model-card-name <ARN карточки модели>

Теперь вы можете вносить изменения в эту карточку модели из этой учетной записи.

aws sagemaker update-model-card --model-card-name <ARN карточки модели> --content "{\"model_overview\": {\"model_owner\": \"model-owner\",\"problem_type\": \"Customer Churn Model\"}}"

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

Тип проблемы был обновлен на «Customer Churn Model», который мы указали в качестве входных данных команды AWS CLI.

Очистка

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

Заключение

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