Архитектура платформы

Тема дорожной карты · MLOps

Архитектура MLOps-платформы представляет собой интеграцию различных компонентов в единое целое, включающее пайплайны данных, трекинг экспериментов, реестр моделей, CI/CD, инфраструктуру обслуживания и мониторинг. Эта архитектура позволяет эффективно управлять машинным обучением, обеспечивая гибкость и масштабируемость. Каждый слой платформы выполняет определённые функции, которые поддерживают цикл жизни модели от разработки до развертывания.

Типовые слои MLOps-платформы включают слой данных (feature store, data lake), слой экспериментов (ноутбуки, трекеры экспериментов), слой обучения (кластеры, оркестраторы), слой реестра (версионирование моделей, хранилище артефактов) и serving-слой (inference-серверы, A/B-роутинг). Чёткие границы между слоями позволяют независимо масштабировать каждый компонент и обеспечивать мультикомандное владение без каскадных отказов.

Как это работает

Архитектура MLOps-платформы строится на основе shared инфраструктуры, которая позволяет ML-командам использовать self-service подход. Основные компоненты platform-архитектуры включают control plane (job submission, scheduling), training-инфраструктуру (GPU pools, distributed training), data plane (feature store, storage), serving plane (inference services, routing) и tooling (notebooks, IDE integrations). Мультиклиентность достигается через изоляцию команд с помощью Kubernetes namespaces, quotas и RBAC.

Self-service подход обеспечивается за счёт определения стандартных абстракций, таких как "model deployment", которые представляются в виде одного YAML-файла. Это позволяет пользователям не взаимодействовать напрямую с Kubernetes, Spark или другими сложными системами.

Когда применять

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

Не стоит строить многоклиентную платформу, например, на основе Kubeflow, до тех пор, пока не будет минимум 10 пользователей. Это связано с тем, что операционные и технические затраты на поддержание такой системы могут быть значительными. Перед проектированием своей платформы рекомендуется изучить примеры MLOps-платформ Google, Meta и Netflix.

Типичные ошибки

Одной из распространённых ошибок при проектировании MLOps-платформы является создание платформы до того, как будет точно определён спрос на неё. Это может привести к тому, что платформа-команда станет препятствием для работы других команд (engineering blocker). Другая распространённая ошибка — это создание слишком большого количества абстракций, которые требуют от пользователей изучения специфичных DSL вместо использования переносимых навыков. Также важно измерять успех платформы, а не просто строить и надеяться на лучшее (build-and-pray). Наконец, игнорирование платформенной налога (platform tax) — каждая абстракция имеет свою цену в терминах отладки и поддержки.

Связанные понятия

Полезные ресурсы