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-пайплайнов. В пайплайне можно определить шаги:
- Обучение модели (Training Step).
- Регистрация модели (Register Model Step) — создание Model Package Version с метриками.
- Условная проверка (Condition Step) — сравнение метрик с порогом; при успехе — перевод в статус
Approved, при неудаче —Rejected. - Развёртывание (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 Registry | MLflow Model Registry | Kubeflow 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 в организации, занимающейся кредитным скорингом:
- Data scientist обучает модель градиентного бустинга (XGBoost) на исторических данных.
- В конце пайплайна модель регистрируется в Model Registry с метриками (AUC-ROC = 0.85, precision = 0.78).
- Пайплайн автоматически сравнивает метрики с пороговыми значениями (AUC-ROC > 0.80). При успехе модель переводится в статус
Approved. - Утверждённая модель автоматически развёртывается на staging-эндпоинте для A/B-тестирования.
- После ручного подтверждения 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 →