Действия и рекомендации при развертывании Studio на предприятии

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

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

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

Обзор пошагового руководства

Мы разберемся с этим за 3 шага:

  • Сначала мы создадим фонды с несколькими учетными записями и самообслуживание, чтобы группы машинного обучения могли получить доступ к утвержденным средам Studio за считанные минуты.
  • Затем мы увидим, как вы можете управлять Studio изо дня в день.
  • Наконец, я покажу, как можно включить шаблонные проекты MLOps с помощью SageMaker Pipelines.

Предпосылки

Чтобы подписаться на этот пост, убедитесь, что вы:

  1. Как и DevOps, MLOps - это сочетание культуры, практик и инструментов, а не только инструменты. Убедитесь, что на вашем предприятии есть четко определенная операционная модель и процессы управления для машинного обучения. Шаблоны проектов MLOps должны быть для них технической реализацией.
  2. Знакомы с архитектурой SageMaker Studio.
  3. Принятие стратегии с несколькими учетными записями будет играть наиболее важную роль в том, как вы будете соответствовать требованиям управления, безопасности и эксплуатации на вашей платформе машинного обучения. Убедитесь, что вы прочитали Настройка безопасных, хорошо управляемых сред машинного обучения на AWS.
  4. Ознакомьтесь с SageMaker Pipelines и Шаблонами проектов MLOps.

Шаг 1. Предоставление конечным пользователям доступа к Studio

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

Это будет V1 вашей платформы машинного обучения, спринт 1, над которым может работать ваша команда.

Настройка доменов Studio в учетных записях Project Dev

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

Когда возникает новый проект машинного обучения, вы можете создать набор учетных записей, посвященных ему, и найти домен Project Team Studio в учетной записи Project Dev.

Из своего домена Studio в учетной записи Project Dev группа может подключаться к репозиториям группы в учетной записи Team Shared Services и обмениваться активами, такими как код, контейнеры и модели машинного обучения. Поскольку учетные записи в подразделении Workloads OU реализуют корпоративные ограждения, команда проекта ML может безопасно получать доступ к данным из учетной записи Data Lake через безопасный шлюз. Инженерные функции, разработанные в ходе этого проекта, могут быть добавлены в хранилище функций в учетной записи данных для дальнейшего использования.

Включение самообслуживания для утвержденных ресурсов Studio

Вы можете включить самообслуживание для утвержденных доменов Studio и профилей пользователей с помощью AWS Service Catalog. Доступ к портфолио каталога услуг может быть получен командой проекта из учетной записи Team Shared Service или из учетной записи Project Dev.

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

Основные соображения по настройке вашей студии

На доменном уровне:

  • Сеть для портативных компьютеров пользователей управляется на уровне домена Studio. Дополнительные сведения см. В разделе Защита подключения к Amazon SageMaker Studio с помощью частного VPC.
  • Домену необходимо назначить роль выполнения IAM по умолчанию. Вы можете использовать эту роль по умолчанию для всех профилей пользователей.
  • Шаблоны проектов MLOps - это продукты каталога сервисов, доступные для Studio через boto3 и видимые в консоли AWS Service Catalog после включения разрешений. Вы можете запустить лямбда-функцию, чтобы включить их, как в этом примере.

На уровне профиля пользователя:

  • Аутентификация в Studio может выполняться как с помощью методов единого входа, так и с использованием IAM. У предприятий может быть существующий поставщик удостоверений, который объединяет пользователей при доступе к консоли AWS. В этом случае вы можете назначить профиль пользователя Studio каждому федеративному удостоверению с помощью IAM. Дополнительные сведения см. В разделе Назначение политики пользователям Studio в статье Настройка Amazon SageMaker Studio для команд и групп с полной изоляцией ресурсов.

  • Роли выполнения IAM также можно назначить каждому профилю использования. При использовании Studio пользователь принимает роль, сопоставленную с его профилем пользователя, который переопределяет роль выполнения по умолчанию в домене. Это можно использовать для детального контроля доступа в команде проекта машинного обучения. Например: разделение того, что специалисты по данным и инженеры по машинному обучению могут делать в проекте.
  • Отслеживание затрат можно производить на уровне учетной записи, поскольку для каждого проекта есть отдельные учетные записи. AWS имеет встроенную поддержку для консолидации и составления отчетов о расходах по всему набору учетных записей на платформе машинного обучения. Если вам нужно отслеживать затраты на уровне пользователя, вы можете применить теги распределения затрат к профилям пользователей. Например: Теги могут состоять из идентификатора пользователя и идентификатора проекта / центра затрат.

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

Шаг 2. Ежедневное управление Studio

Здесь мы погрузимся в общие настройки, которые команды платформы ML могут применять к своим средам Studio.

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

Управление разрешениями пользователей с помощью политик IAM

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

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

SageMaker предоставляет ресурсы, действия и контекстные ключи условий для использования с IAM. Также см. Эту страницу для управления разрешениями для других сервисов AWS.

По крайней мере, ваши команды машинного обучения захотят:

  • Уметь запускать задания SageMaker Processing, Training, Hyperparameter Tuning и Autopilot.
  • Иметь доступ для чтения к странице консоли SageMaker для отслеживания статуса заданий.
  • Все, что их контейнеры отправляют на stdout или stderr, отправляется в Amazon CloudWatch Logs. Поэтому им потребуется доступ для чтения к журналам CloudWatch для отладки заданий и конечных точек.

Масштабное управление разрешениями IAM

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

Дополнительные сведения см. В разделе Проверка политик IAM в шаблонах CloudFormation с помощью IAM Access Analyzer.

Ограничение типов экземпляров в Studio

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

Для этого вы можете настроить разрешения IAM для профилей пользователей. В частности, это sagemaker:CreateApp разрешение, которое вам нужно ограничить для роли выполнения, а sagemaker:InstanceTypes - это ключ условия, который нужно использовать.

Вот пример политики, запрещающей все типы экземпляров SageMaker, кроме экземпляров t3:

Использование конфигураций жизненного цикла для адаптации сред Studio

Studio поддерживает конфигурации жизненного цикла. Они предоставляют способ автоматического и многократного применения настроек к средам Studio, в том числе:

  • Установка пользовательских пакетов
  • Настройка автоматического выключения неактивных приложений для ноутбуков
  • Настройка конфигурации Git

Дополнительные сведения см. В разделе Настройка Amazon SageMaker Studio с использованием конфигураций жизненного цикла.

Автоматизация установки пользовательских изображений SageMaker Studio

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

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

Вы даже можете упаковать его как продукт Каталог услуг, чтобы он был доступен по запросу.

Добавление дополнительных продуктов в портфолио вашего каталога услуг

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

Ниже приведены примеры продуктов, которые могут понадобиться вашим командам:

Шаг 3. Включение проектов MLOps с помощью SageMaker Pipelines

Группам машинного обучения могут потребоваться строительные леса для оркестровки рабочих процессов, реестр моделей и CI / CD, чтобы сократить усилия по запуску сквозных проектов MLOps. SageMaker Pipelines решает эту проблему.

В спринте 3 вы можете упаковать шаблоны проектов MLOps и разрешить командам ML самостоятельно создавать их через каталог услуг.

Создание шаблонов проектов MLOps для развертывания с несколькими учетными записями

Для MLOps вы можете создавать учетные записи Project PreProd и Project Prod, наряду с учетными записями Project Dev, к которым группы ML имеют доступ. Это обеспечит высокий уровень изоляции ресурсов и безопасности между операционными этапами их развертывания. Дополнительные сведения см. В разделах Шаблон учетной записи 3 здесь и Создание безопасной корпоративной платформы машинного обучения на AWS.

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

Ваши шаблоны проектов MLOps должны находиться в портфеле каталога услуг, доступном для учетной записи Team Shared Services / Automation. При запуске он будет создавать репозитории кода, конвейеры CI / CD между учетными записями и хранилища артефактов в этой учетной записи. К ним могут получить доступ команды машинного обучения из учетной записи Project Dev, используя разрешения IAM для нескольких учетных записей.

Использование сторонних инструментов в ваших шаблонах MLOps

На вашем предприятии могут быть стандартизированные инструменты для репозиториев кода и CI / CD.

Ниже приведены примеры интеграции, которую вы можете выполнить в шаблонах проектов MLOps:

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

Вывод

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

Подход основан на принципах с несколькими учетными записями и AWS Service Catalog, что позволяет самообслуживать утвержденные среды Studio и шаблоны проектов MLOps.

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