Открыть сервис

SageMaker Model Registry

SageMaker Model Registry — это компонент платформы Amazon Web Services (AWS) Amazon SageMaker, предназначенный для централизованного управления, версионирования, каталогизации и развёртывания моделей машинного обучения (ML) на всех этапах их жизненного цикла. Он предоставляет механизмы для хранения метаданных моделей, отслеживания их статуса (от разработки до промышленной эксплуатации), управления утверждениями (approvals) и автоматизации пайплайнов непрерывной интеграции и доставки (CI/CD) для ML-моделей.

Назначение и роль в MLOps

SageMaker Model Registry является ключевым элементом практик MLOps (Machine Learning Operations), обеспечивая воспроизводимость, прозрачность и управляемость процессами машинного обучения. В отличие от хранения моделей в виде файлов или артефактов в облачных хранилищах, Model Registry создаёт единую точку учёта, где каждая версия модели связана с полным контекстом её создания: используемым набором данных, гиперпараметрами, метриками качества, кодом обучения и окружением.

Основные функции сервиса включают:

  • Версионирование моделей: автоматическое присвоение номеров версий при регистрации новой модели.
  • Управление статусами: возможность переводить модели между состояниями (например, «Pending», «Approved», «Rejected», «Deployed»).
  • Интеграция с пайплайнами: Model Registry может быть частью пайплайнов SageMaker Pipelines, а также взаимодействовать с внешними CI/CD-системами (например, Jenkins, GitLab CI).
  • Автоматизация развёртывания: утверждённые модели могут автоматически развёртываться в SageMaker Endpoints или на пограничных устройствах (SageMaker Edge Manager).
  • Поиск и аудит: каждая версия содержит метаданные, включая дату создания, автора, используемый фреймворк и ссылки на артефакты.

Архитектура и ключевые компоненты

Пакет модели (Model Package)

Основной единицей хранения в Model Registry является Model Packageконтейнер, объединяющий артефакты модели (файлы обученных весов, код инференса), метаданные и конфигурацию развёртывания. Model Package может быть создан как из обученной модели в SageMaker, так и импортирован из внешних источников (например, из хранилища S3).

Каждый Model Package содержит:

  • Model Package Group: логическая группа, объединяющая все версии одной модели (например, «Модель прогноза спроса»).
  • Model Package Version: конкретная версия модели с уникальным идентификатором.
  • Inference Specification: описание среды выполнения для инференса (образ Docker, скрипты, фреймворк).
  • Metadata Properties: пользовательские метаданные (теги, ключи-значения), метрики качества, ссылки на данные обучения.

Статусы и жизненный цикл

Model Registry поддерживает управляемый жизненный цикл модели через систему статусов:

СтатусОписание
PendingМодель зарегистрирована, но ещё не прошла проверку.
ApprovedМодель одобрена для развёртывания в производственной среде.
RejectedМодель отклонена (например, не прошла валидацию по метрикам).
DeployedМодель развёрнута на одном или нескольких эндпоинтах.

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

Интеграция с SageMaker Pipelines

Model Registry тесно интегрирован с SageMaker Pipelines — сервисом для построения ML-пайплайнов. В пайплайне можно определить шаги:

  1. Обучение модели (Training Step).
  2. Регистрация модели (Register Model Step) — создание Model Package Version с метриками.
  3. Условная проверка (Condition Step) — сравнение метрик с порогом; при успехе — перевод в статус Approved, при неудаче — Rejected.
  4. Развёртывание (Deploy Step) — автоматическое создание эндпоинта для утверждённой модели.

Практическое применение

Развёртывание моделей в производство

После того как модель получает статус Approved, её можно развернуть через консоль AWS, AWS CLI или SDK. SageMaker автоматически создаёт эндпоинт с необходимыми вычислительными ресурсами (instance type, количество инстансов). Model Registry позволяет развёртывать одну и ту же модель в нескольких окружениях (staging, production) с разными конфигурациями.

Управление несколькими версиями

В крупных ML-проектах одновременно может существовать десятки версий одной модели. Model Registry предоставляет возможность:

  • Сравнивать метрики разных версий (например, точность, полноту, F1-меру).
  • Откатываться к предыдущей версии в случае проблем.
  • Назначать ответственных за утверждение модели (approval roles) через IAM-политики.

Интеграция с CI/CD

Model Registry может быть использован в пайплайнах непрерывной доставки. Например, после успешного прохождения тестов в CI-системе (например, GitHub Actions) модель автоматически регистрируется в Model Registry. Если автоматические тесты подтверждают качество, модель переводится в статус Approved и развёртывается на тестовом эндпоинте. После ручного или автоматического подтверждения в production-окружении.

Ограничения и критика

Несмотря на функциональность, SageMaker Model Registry имеет ряд ограничений:

  • Привязка к экосистеме AWS: сервис не может быть использован с другими облачными провайдерами (Google Cloud, Azure) или локальными инфраструктурами без дополнительных интеграций.
  • Сложность настройки: для полноценной работы требуется настройка IAM-ролей, политик доступа и пайплайнов, что может быть нетривиально для небольших команд.
  • Отсутствие встроенного механизма A/B-тестирования: Model Registry управляет версиями, но не предоставляет инструментов для автоматического сравнения нескольких версий в реальном времени (эта задача решается через SageMaker Endpoints с мульти-модельными эндпоинтами).
  • Ограниченная поддержка нестандартных фреймворков: хотя SageMaker поддерживает популярные библиотеки (TensorFlow, PyTorch, scikit-learn), для кастомных сред требуется создание собственных Docker-образов.

Сравнение с аналогами

ХарактеристикаSageMaker Model RegistryMLflow Model RegistryKubeflow Model Registry
ПлатформаAWS (облачная)Кроссплатформенный (локально/облачно)Kubernetes (облачно/локально)
Управление статусамиВстроенное (Pending, Approved, Rejected, Deployed)Stage-based (Staging, Production, Archived)Через кастомные пайплайны
Интеграция с CI/CDГлубокая (SageMaker Pipelines)Через API и сторонние инструментыЧерез Kubeflow Pipelines
СтоимостьОплата за хранение метаданных и использование APIБесплатно (open source)Бесплатно (open source)

Пример сценария использования

Типичный сценарий использования Model Registry в организации, занимающейся кредитным скорингом:

  1. Data scientist обучает модель градиентного бустинга (XGBoost) на исторических данных.
  2. В конце пайплайна модель регистрируется в Model Registry с метриками (AUC-ROC = 0.85, precision = 0.78).
  3. Пайплайн автоматически сравнивает метрики с пороговыми значениями (AUC-ROC > 0.80). При успехе модель переводится в статус Approved.
  4. Утверждённая модель автоматически развёртывается на staging-эндпоинте для A/B-тестирования.
  5. После ручного подтверждения DevOps-инженером модель переводится на production-эндпоинт, где начинает обрабатывать реальные запросы.

Источники

  • AWS Documentation: «Amazon SageMaker Model Registry» (2023).
  • «Building Machine Learning Pipelines» — Hannes Hapke, Catherine Nelson (O'Reilly Media, 2020).
  • «MLOps: Machine Learning Operations» — Mark Treveil et al. (O'Reilly Media, 2020).
  • AWS re:Invent 2021: «Deep dive on Amazon SageMaker Model Registry» (SVS313).
  • «Practical MLOps» — Noah Gift, Alfredo Deza (O'Reilly Media, 2021).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →