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

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

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

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

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

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

При масштабировании ваших моделей, проектов и команд, как рекомендуется bewst practice, мы рекомендуем использовать стратегию множественных аккаунтов, предоставляющую изоляцию проектов и команд для разработки и развертывания моделей ML. Для получения дополнительной информации о повышении уровня управления вашими моделями ML обратитесь к документации Improve governance of your machine learning models with Amazon SageMaker.

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

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

  • Учетная запись Data Science – ученые-исследователи данных проводят свои эксперименты в SageMaker Studio и создают среду MLOps для развертывания моделей в средах staging/production с использованием SageMaker Projects.
  • Учетная запись ML Shared Services – настройка 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 foundation for enterprises with Amazon SageMaker.

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

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

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

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

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

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

  1. Ведущий научный сотрудник получает уведомление о решении задачи прогнозирования оттока клиентов с использованием машинного обучения и начинает проект по машинному обучению через создание модельной карты для модели Customer Churn V1 со статусом Черновик в учетной записи ML Shared Services
  2. С помощью автоматизации эта модельная карта делится с учетной записью ML Dev
  3. Ученый по данным строит модель и начинает заполнять информацию через API в модельную карту на основе результатов экспериментов, и статус модельной карты устанавливается на Ожидает проверки
  4. С помощью автоматизации эта модельная карта делится с ML test account
  5. Инженер по машинному обучению (MLE) запускает интеграционные и проверочные тесты в учетной записи ML Test, и модель в центральном реестре помечается как Ожидает одобрения
  6. Одобритель модели рассматривает результаты модели с помощью предоставленной в центральной модельной карте сопроводительной документации и одобряет модельную карту для производственного развертывания.
  7. С помощью автоматизации эта модельная карта делится с учетной записью ML Prod в режиме только для чтения.

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

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

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

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

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

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

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

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

Мы создаем модельную карту со статусом Черновик с именем 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 и введите ID учетной записи для общего ресурса модельной карты. Выберите Добавить и продолжайте на следующую страницу.

На последней странице просмотрите информацию и выберите “Создать общий ресурс”. Также вы можете использовать следующую команду 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 Organizations и ваши принципалы, с которыми вы делитесь, находятся в той же организации, что и учетная запись, предоставляющая доступ, эти принципалы могут получить доступ сразу после предоставления им разрешений администратором своей учетной записи.
  • Если вы не включаете общий доступ AWS RAM с организациями, вы все равно можете делиться ресурсами с отдельными учетными записями AWS, которые находятся в вашей организации. Администратору учетной записи-получателя отправляется приглашение на присоединение к общему ресурсу, и он должен принять приглашение, прежде чем указанные в общем ресурсе принципалы смогут получить доступ к общим ресурсам.
  • Вы также можете делиться с учетными записями вне вашей организации, если тип ресурса поддерживает это. Администратору учетной записи-получателя отправляется приглашение на присоединение к общему ресурсу, и он должен принять приглашение, прежде чем указанные в общем ресурсе принципалы смогут получить доступ к общим ресурсам.

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

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

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

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

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

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

Вы также можете получить доступ к модельной карте, используя опцию 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, созданный вами для передачи модельной карты.

Заключение

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