То, как мы создаём и развёртываем API обученных моделей в продакшене, зависит от множества аспектов жизненного цикла машинного обучения. Концепция MLOps оказалась чрезвычайно полезной для работы со сложными средами развёртывания ML‑моделей.
Внедрение надёжных MLOps‑решений может принести значительные выгоды компаниям, инвестирующим в машинное обучение. Однако важно понимать, какие инструменты использовать и как их применять. При этом освоение и интеграция новых решений, упрощающих рабочий процесс, тоже могут стать вызовом.
В этой статье рассмотрим инструменты для развёртывания моделей. Они помогут вам масштабировать и управлять жизненным циклом машинного обучения, включая сервинг, мониторинг и управление API‑эндпоинтами.
Seldon.io

Seldon.io предлагает Seldon Core — это open‑source фреймворк, который упрощает и ускоряет развёртывание ML‑моделей.
Он поддерживает и выполняет сервинг моделей, созданных в любых других фреймворках машинного обучения с открытым исходным кодом. Развёртывание моделей происходит в Kubernetes. Благодаря этому можно использовать передовые функции Kubernetes, такие как настраиваемые ресурсы для управления графами моделей.
Seldon также интегрируется с CI/CD‑инструментами, что позволяет автоматизировать развёртывание и обновление моделей.
Встроенная система оповещений уведомляет о проблемах при мониторинге моделей в продакшене. Поддерживается интерпретируемость моделей, что позволяет анализировать предсказания. Доступен как в облаке, так и на локальных серверах.
Плюсы:
Поддержка кастомных офлайн‑моделей.
Поддержка предсказаний в реальном времени через API для внешних клиентов.
Упрощение процесса развёртывания.
Минусы:
Сложная настройка.
Трудно освоить новичкам.
BentoML

BentoML упрощает процесс создания сервисов машинного обучения. Он предлагает стандартную архитектуру на основе Python для развёртывания и поддержки API промышленного уровня. Благодаря этой архитектуре пользователи могут легко упаковывать обученные модели, используя любой ML‑фреймворк, как для онлайн‑, так и для офлайн‑сервинга.
Высокопроизводительный сервер моделей BentoML поддерживает адаптивное микро‑батчирование, а также позволяет масштабировать воркеры инференса отдельно от бизнес‑логики. Встроенный UI‑дашборд предоставляет централизованную систему для организации моделей и мониторинга процессов развёртывания.
Модульный дизайн делает конфигурацию переиспользуемой в существующих GitOps‑процессах. Автоматическая генерация Docker‑образов упрощает деплой в продакшен, обеспечивая его воспроизводимость и версионирование.
Это универсальный фреймворк, решающий задачи ML‑сервинга, организации моделей и развёртывания, с акцентом на объединение работы Data Science и DevOps‑команд для создания высокопроизводительных масштабируемых API‑эндпоинтов.
Плюсы:
Удобный формат для быстрого развёртывания сервисов предсказаний в продакшене.
Поддержка высокопроизводительного сервинга и унифицированного процесса развёртывания.
Возможность развёртывания моделей на различных платформах, а не только в Kubernetes.
Минусы:
Не включает управление экспериментами.
Не поддерживает горизонтальное масштабирование «из коробки».
TensorFlow Serving

Если вам нужно развернуть обученную модель как API‑эндпоинт, это можно сделать с помощью TensorFlow Serving.
Этот инструмент позволяет создать REST API эндпоинт для обслуживания обученной модели, обеспечивая надёжный и высокопроизводительный сервинг.
Он позволяет легко развёртывать современные ML‑модели, сохраняя при этом единую серверную архитектуру и соответствующие эндпоинты. TensorFlow Serving достаточно мощный, чтобы работать с различными типами моделей и данных, а не только с моделями TensorFlow.
Разработанный Google, он широко используется ведущими компаниями. Централизованное развёртывание модели в таком формате обеспечивает удобное управление и доступ. Архитектура сервинга спроектирована таким образом, чтобы поддерживать одновременную работу большого числа пользователей.
В случае высокой нагрузки можно использовать балансировщик нагрузки для поддержания стабильной работы. В целом, это масштабируемая и легко обслуживаемая система с высокой производительностью.
Плюсы:
Облегчает развёртывание, если модель уже готова.
Поддерживает пакетную обработку запросов для эффективного использования аппаратных ресурсов.
Включает систему версионирования моделей.
Прост в использовании, отвечает за управление моделями и сервингом.
Минусы:
Нет механизма для обеспечения нулевого простоя при обновлении моделей.
Работает только с моделями TensorFlow.
Kubeflow

Kubeflow — это инструмент, созданный для управления системами машинного обучения. Он представляет собой мощный набор инструментов, предназначенный для работы в Kubernetes.
Основные функции включают управление контейнерами Docker, что упрощает развёртывание и управление ML‑инфраструктурой.
Kubeflow упрощает разработку и развёртывание ML‑пайплайнов, делая модели более управляемыми и отслеживаемыми. Он предлагает широкий набор ML‑инструментов и архитектурных фреймворков для эффективного выполнения различных задач машинного обучения.
Встроенная панель управления позволяет отслеживать эксперименты, задачи и процессы развёртывания. Функция Notebook обеспечивает интерактивное взаимодействие с ML‑системой.
Компоненты и пайплайны являются модульными и могут быть переиспользованы, что ускоряет разработку. Изначально разработанный Google для выполнения задач TensorFlow в Kubernetes, со временем Kubeflow превратился в мультиоблачный и мультиплатформенный фреймворк, способный управлять всем ML‑пайплайном.
Плюсы:
Консистентная инфраструктура с мониторингом, проверкой состояния и репликацией.
Возможность добавления новых функций.
Упрощает адаптацию новых членов команды.
Стандартизированный процесс обеспечивает безопасность и контроль над инфраструктурой.
Минусы:
Сложность ручной настройки и конфигурации.
Высокая доступность не обеспечивается автоматически и требует дополнительной настройки.
Крутая кривая обучения, что усложняет освоение инструмента.
Cortex

Cortex — это open‑source инструмент, который поддерживает несколько фреймворков и может использоваться как для сервинга моделей, так и для их мониторинга.
Он охватывает разные рабочие процессы машинного обучения и предоставляет полный контроль над управлением моделями. Cortex также служит альтернативой SageMaker и поддерживает развёртывание моделей в AWS через Elastic Kubernetes Service (EKS), Lambda или Fargate.
Инструмент интегрируется с открытыми проектами, такими как Docker, Kubernetes, TensorFlow Serving и TorchServe, и может работать с любыми ML‑библиотеками и инструментами.
Он поддерживает масштабирование эндпоинтов для управления нагрузкой, позволяет развёртывать несколько моделей в одном API‑эндпоинте и обновлять эндпоинты в продакшене без остановки сервера. Помимо этого, Cortex выполняет функции мониторинга, контролируя производительность эндпоинта и анализируя данные предсказаний.
Плюсы:
Автоматическое масштабирование, которое обеспечивает стабильную работу API при изменении сетевого трафика.
Поддержка нескольких ML‑платформ, включая Keras, TensorFlow, Scikit‑learn и PyTorch.
Возможность обновления моделей без простоя.
Минусы:
Сложность процесса настройки, который может быть трудоёмким.
AWS SageMaker

AWS SageMaker — это мощный сервис, предоставляемый Amazon. Он позволяет разработчикам машинного обучения быстро создавать, обучать и развёртывать модели, упрощая весь процесс за счет исключения ряда сложных этапов. Это делает модели более масштабируемыми и снижает сложность разработки.
Жизненный цикл машинного обучения — сложный и итеративный процесс, требующий интеграции множества инструментов и рабочих процессов. Этот процесс может быть трудоёмким, особенно при возникновении ошибок на этапе конфигурации.
SageMaker упрощает его, предоставляя все необходимые компоненты машинного обучения в едином инструменте, где они уже настроены и готовы к использованию.
Это ускоряет развёртывание моделей и снижает затраты на инфраструктуру. SageMaker можно использовать с эндпоинтами, работающими на любых ML‑фреймворках. Он также предоставляет возможности отслеживания и сохранения предсказаний, а также мониторинга по расписанию.
Плюсы:
Простая настройка, поддержка Jupyter Notebook, что упрощает управление и развёртывание скриптов.
Гибкая стоимость, зависящая от используемых функций.
Обучение моделей выполняется на нескольких серверах.
Минусы:
Высокий порог входа для начинающих разработчиков.
Жёсткие рабочие процессы, усложняющие кастомизацию.
Работает только в экосистеме AWS.
MLflow

MLflow — это open‑source инструмент для организации полного жизненного цикла ML‑моделей. Он предоставляет решения для управления процессом машинного обучения и развёртывания, поддерживая эксперименты, воспроизводимость, деплой и регистрацию моделей.
Эта платформа подходит как для индивидуальных разработчиков, так и для команд, поскольку может быть интегрирована в любую экосистему разработки. Библиотека разработана для удовлетворения различных технологических потребностей и совместима с разными фреймворками машинного обучения.
Весь ML‑цикл в MLflow организуется вокруг четырёх ключевых функций: Tracking, Projects, Models и Model Registry.
Инструмент упрощает автоматизацию отслеживания ML‑моделей, но не поддерживает автоматическое конфигурирование, поэтому дополнительные параметры необходимо задавать вручную.
Плюсы:
Простая настройка механизма отслеживания моделей.
Интуитивно понятные API для сервинга моделей.
Удобная система логирования, которая облегчает запуск экспериментов.
Подход, ориентированный на код (code‑first).
Минусы:
Дополнительные настройки моделей выполняются вручную.
Не самый удобный инструмент для развёртывания моделей на разных платформах.
TorchServe

TorchServe — это фреймворк для сервинга моделей PyTorch, который упрощает развёртывание обученных моделей в масштабируемой среде. Он устраняет необходимость писать кастомный код для развёртывания моделей.
TorchServe был разработан AWS совместно с PyTorch, что делает его настройку удобной для пользователей, работающих в экосистеме PyTorch. Он обеспечивает легковесный сервинг с низкой задержкой, поддерживает высокопроизводительные модели и широкий диапазон масштабируемости.
Фреймворк включает встроенные библиотеки для некоторых задач машинного обучения, таких как обнаружение объектов и классификация текста, что позволяет сократить время на их разработку. Среди ключевых возможностей — сервинг нескольких моделей одновременно, версионирование моделей для A/B‑тестирования, метрики для мониторинга, а также RESTful‑эндпоинты для интеграции с приложениями.
Плюсы:
Упрощает масштабирование развёрнутых моделей.
Легковесные эндпоинты с высокой производительностью.
Минусы:
Частые изменения и обновления, так как инструмент активно развивается.
Работает только с моделями PyTorch.
А какие инструменты предпочитаете вы? Поделитесь опытом использования в комментариях.
Больше про актуальные инструменты эксперты OTUS рассказывают в рамках практических онлайн‑курсов по Data Science и Machine Learning. С полным каталогом курсов можно ознакомиться по ссылке.
Также приглашаем всех желающих на открытый урок 26 февраля «Задача регрессии в ML на пальцах». На занятии обсудим, что представляет из себя этот тип задач, какие есть подходы для её решения, а также изучим алгоритм линейной регрессии и применим его на практике. Записаться
puchuu
Машины с видеокартами на OVH Cloud в 4-5 раз дешевле, чем на амазоне. Интересуйтесь лучше утилитами ovhai для деплоя и мониторинга.