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

Seldon: технология и платформа машинного обучения

Seldon — это совокупность программных продуктов с открытым исходным кодом, предназначенных для развёртывания, управления и мониторинга моделей машинного обучения в производственных средах. Технология позволяет организациям переводить экспериментальные модели, созданные специалистами по данным, в стадию эксплуатации, обеспечивая их масштабирование, обновление и отслеживание качества работы. Название происходит от имени вымышленного математика Гэри Селдона из цикла романов Айзека Азимова «Основание», что подчёркивает ориентацию проекта на предсказуемость и надёжность систем.

История и происхождение

Проект Seldon был основан в Великобритании в 2017 году Клайвом Коксом, который ранее занимался разработкой систем машинного обучения в таких компаниях, как Google и Red Hat. Первоначально Seldon развивался как коммерческий стартап, предлагающий платформу для управления моделями. В 2018 году ключевые компоненты платформы были открыты под лицензией Apache 2.0, что позволило сформировать вокруг проекта активное сообщество разработчиков.

В 2020 году Seldon Technologies привлекла финансирование от инвесторов, включая AlbionVC и Cambridge Innovation Capital. В 2021 году проект стал одним из первых, кто присоединился к экосистеме Kubeflow — платформы для машинного обучения на базе Kubernetes. В 2023 году Seldon объявил о слиянии с компанией Alteryx, занимающейся аналитическим программным обеспечением, однако открытые проекты продолжили развиваться независимо.

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

Основой Seldon Core является оркестратор, работающий внутри кластера Kubernetes. Он использует концепцию инференс-графов (inference graphs), позволяющих объединять несколько моделей в единый конвейер обработки запросов. Такая архитектура даёт возможность реализовывать сложные сценарии: ансамбли моделей, A/B-тестирование, мультиплексоры запросов и каскадные вызовы.

Ключевые компоненты Seldon Core:

  • SeldonDeployment — пользовательский ресурс Kubernetes (CRD), описывающий желаемое состояние развёртывания модели.
  • Seldon Operator — контроллер, который следит за созданными ресурсами и автоматически настраивает поды, сервисы и конфигурации.
  • Seldon API — единый интерфейс для отправки запросов на предсказание (REST и gRPC).
  • Seldon Analytics — модуль сбора метрик и логов для мониторинга производительности моделей.
  • Seldon Python SDK — библиотека для упаковки моделей, написанных на Python, в стандартизированные контейнеры.

Поддерживаемые фреймворки

Seldon Core поддерживает широкий спектр библиотек машинного обучения. Для каждой из них предусмотрены готовые обёртки (wrappers), упрощающие процесс контейнеризации. Среди поддерживаемых инструментов: TensorFlow, PyTorch, Scikit-learn, XGBoost, LightGBM, ONNX Runtime, MLflow и другие. Модели, созданные на этих фреймворках, могут быть развёрнуты без серьёзной модификации исходного кода, достаточно использовать стандартный интерфейс загрузки и предсказания.

Процесс развёртывания

Развёртывание модели в Seldon Core проходит в несколько этапов. Сначала модель упаковывается в Docker-контейнер вместе с необходимыми зависимостями. Затем создаётся манифест SeldonDeployment, в котором указываются имя модели, тип фреймворка, количество реплик и параметры масштабирования. После применения манифеста оператор автоматически создаёт необходимые ресурсы и предоставляет доступ к модели через внутренний или внешний IP-адрес.

Благодаря интеграции с Kubernetes, Seldon Core обеспечивает автоматическое масштабирование в зависимости от нагрузки, самовосстановление при сбоях и возможность обновления моделей без прерывания сервиса (rolling updates).

Seldon Enterprise Platform

Помимо открытого ядра, существует коммерческая версия — Seldon Enterprise Platform. Она добавляет функции, необходимые крупным организациям: графический интерфейс для управления моделями, расширенную политику безопасности, интеграцию с корпоративными системами аутентификации (SSO), а также инструменты для объяснимости предсказаний (explainability) и обнаружения дрейфа данных (data drift detection).

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

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

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

Одним из преимуществ Seldon является возможность развёртывания моделей в различных облачных средах: публичных (AWS, Google Cloud, Microsoft Azure), частных и гибридных. Благодаря использованию Kubernetes, обеспечивается переносимость между инфраструктурами.

Сравнение с альтернативами

На рынке систем управления моделями (MLOps) Seldon конкурирует с такими платформами, как MLflow, Kubeflow, BentoML и коммерческими решениями (DataRobot, H2O.ai). Отличительной особенностью Seldon является фокус на этапе эксплуатации моделей, а не на этапе экспериментов и обучения. В отличие от MLflow, который охватывает весь жизненный цикл, Seldon Core специализируется на надёжном и масштабируемом инференсе. По сравнению с Kubeflow, Seldon предоставляет более гибкие механизмы построения инференс-графов и поддерживает больше фреймворков «из коробки».

Сообщество и развитие

Seldon Core является одним из самых популярных проектов в области MLOps по количеству звёзд на GitHub. Проект активно поддерживается сообществом и используется в продакшн-средах десятками компаний по всему миру. Регулярные релизы добавляют поддержку новых фреймворков и улучшают интеграцию с экосистемой Kubernetes.

Источники

  • Официальная документация Seldon Core (seldon.io).
  • Репозиторий проекта на GitHub (github.com/SeldonIO/seldon-core).
  • Статья «Seldon: Open Source Platform for Deploying ML Models» в блоге компании.
  • Материалы конференций KubeCon и MLOps World.
Загружаем BFOmetr…