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

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

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

Seldon.io

Seldon

Seldon.io предлагает Seldon Core — это open‑source фреймворк, который упрощает и ускоряет развёртывание ML‑моделей.

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

Seldon также интегрируется с CI/CD‑инструментами, что позволяет автоматизировать развёртывание и обновление моделей.

Встроенная система оповещений уведомляет о проблемах при мониторинге моделей в продакшене. Поддерживается интерпретируемость моделей, что позволяет анализировать предсказания. Доступен как в облаке, так и на локальных серверах.

Плюсы:

  • Поддержка кастомных офлайн‑моделей.

  • Поддержка предсказаний в реальном времени через API для внешних клиентов.

  • Упрощение процесса развёртывания.

Минусы:

  • Сложная настройка.

  • Трудно освоить новичкам.

BentoML

BentoML model deployment

BentoML упрощает процесс создания сервисов машинного обучения. Он предлагает стандартную архитектуру на основе Python для развёртывания и поддержки API промышленного уровня. Благодаря этой архитектуре пользователи могут легко упаковывать обученные модели, используя любой ML‑фреймворк, как для онлайн‑, так и для офлайн‑сервинга.

Высокопроизводительный сервер моделей BentoML поддерживает адаптивное микро‑батчирование, а также позволяет масштабировать воркеры инференса отдельно от бизнес‑логики. Встроенный UI‑дашборд предоставляет централизованную систему для организации моделей и мониторинга процессов развёртывания.

Модульный дизайн делает конфигурацию переиспользуемой в существующих GitOps‑процессах. Автоматическая генерация Docker‑образов упрощает деплой в продакшен, обеспечивая его воспроизводимость и версионирование.

Это универсальный фреймворк, решающий задачи ML‑сервинга, организации моделей и развёртывания, с акцентом на объединение работы Data Science и DevOps‑команд для создания высокопроизводительных масштабируемых API‑эндпоинтов.

Плюсы:

  • Удобный формат для быстрого развёртывания сервисов предсказаний в продакшене.

  • Поддержка высокопроизводительного сервинга и унифицированного процесса развёртывания.

  • Возможность развёртывания моделей на различных платформах, а не только в Kubernetes.

Минусы:

  • Не включает управление экспериментами.

  • Не поддерживает горизонтальное масштабирование «из коробки».

TensorFlow Serving

Tensorflow serving
Tensorflow serving

Если вам нужно развернуть обученную модель как API‑эндпоинт, это можно сделать с помощью TensorFlow Serving.

Этот инструмент позволяет создать REST API эндпоинт для обслуживания обученной модели, обеспечивая надёжный и высокопроизводительный сервинг.

Он позволяет легко развёртывать современные ML‑модели, сохраняя при этом единую серверную архитектуру и соответствующие эндпоинты. TensorFlow Serving достаточно мощный, чтобы работать с различными типами моделей и данных, а не только с моделями TensorFlow.

Разработанный Google, он широко используется ведущими компаниями. Централизованное развёртывание модели в таком формате обеспечивает удобное управление и доступ. Архитектура сервинга спроектирована таким образом, чтобы поддерживать одновременную работу большого числа пользователей.

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

Плюсы:

  • Облегчает развёртывание, если модель уже готова.

  • Поддерживает пакетную обработку запросов для эффективного использования аппаратных ресурсов.

  • Включает систему версионирования моделей.

  • Прост в использовании, отвечает за управление моделями и сервингом.

Минусы:

  • Нет механизма для обеспечения нулевого простоя при обновлении моделей.

  • Работает только с моделями TensorFlow.

Kubeflow

Kubeflow

Kubeflow — это инструмент, созданный для управления системами машинного обучения. Он представляет собой мощный набор инструментов, предназначенный для работы в Kubernetes.

Основные функции включают управление контейнерами Docker, что упрощает развёртывание и управление ML‑инфраструктурой.

Kubeflow упрощает разработку и развёртывание ML‑пайплайнов, делая модели более управляемыми и отслеживаемыми. Он предлагает широкий набор ML‑инструментов и архитектурных фреймворков для эффективного выполнения различных задач машинного обучения.

Встроенная панель управления позволяет отслеживать эксперименты, задачи и процессы развёртывания. Функция Notebook обеспечивает интерактивное взаимодействие с ML‑системой.

Компоненты и пайплайны являются модульными и могут быть переиспользованы, что ускоряет разработку. Изначально разработанный Google для выполнения задач TensorFlow в Kubernetes, со временем Kubeflow превратился в мультиоблачный и мультиплатформенный фреймворк, способный управлять всем ML‑пайплайном.

Плюсы:

  • Консистентная инфраструктура с мониторингом, проверкой состояния и репликацией.

  • Возможность добавления новых функций.

  • Упрощает адаптацию новых членов команды.

  • Стандартизированный процесс обеспечивает безопасность и контроль над инфраструктурой.

Минусы:

  • Сложность ручной настройки и конфигурации.

  • Высокая доступность не обеспечивается автоматически и требует дополнительной настройки.

  • Крутая кривая обучения, что усложняет освоение инструмента.

Cortex  

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

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

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

SageMaker упрощает его, предоставляя все необходимые компоненты машинного обучения в едином инструменте, где они уже настроены и готовы к использованию.

Это ускоряет развёртывание моделей и снижает затраты на инфраструктуру. SageMaker можно использовать с эндпоинтами, работающими на любых ML‑фреймворках. Он также предоставляет возможности отслеживания и сохранения предсказаний, а также мониторинга по расписанию.

Плюсы:

  • Простая настройка, поддержка Jupyter Notebook, что упрощает управление и развёртывание скриптов.

  • Гибкая стоимость, зависящая от используемых функций.

  • Обучение моделей выполняется на нескольких серверах.

Минусы:

  • Высокий порог входа для начинающих разработчиков.

  • Жёсткие рабочие процессы, усложняющие кастомизацию.

  • Работает только в экосистеме AWS.

MLflow 

MLflow

MLflow — это open‑source инструмент для организации полного жизненного цикла ML‑моделей. Он предоставляет решения для управления процессом машинного обучения и развёртывания, поддерживая эксперименты, воспроизводимость, деплой и регистрацию моделей.

Эта платформа подходит как для индивидуальных разработчиков, так и для команд, поскольку может быть интегрирована в любую экосистему разработки. Библиотека разработана для удовлетворения различных технологических потребностей и совместима с разными фреймворками машинного обучения.

Весь ML‑цикл в MLflow организуется вокруг четырёх ключевых функций: Tracking, Projects, Models и Model Registry.

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

Плюсы:

  • Простая настройка механизма отслеживания моделей.

  • Интуитивно понятные API для сервинга моделей.

  • Удобная система логирования, которая облегчает запуск экспериментов.

  • Подход, ориентированный на код (code‑first).

Минусы:

  • Дополнительные настройки моделей выполняются вручную.

  • Не самый удобный инструмент для развёртывания моделей на разных платформах.

TorchServe 

Torchserve

TorchServe — это фреймворк для сервинга моделей PyTorch, который упрощает развёртывание обученных моделей в масштабируемой среде. Он устраняет необходимость писать кастомный код для развёртывания моделей.

TorchServe был разработан AWS совместно с PyTorch, что делает его настройку удобной для пользователей, работающих в экосистеме PyTorch. Он обеспечивает легковесный сервинг с низкой задержкой, поддерживает высокопроизводительные модели и широкий диапазон масштабируемости.

Фреймворк включает встроенные библиотеки для некоторых задач машинного обучения, таких как обнаружение объектов и классификация текста, что позволяет сократить время на их разработку. Среди ключевых возможностей — сервинг нескольких моделей одновременно, версионирование моделей для A/B‑тестирования, метрики для мониторинга, а также RESTful‑эндпоинты для интеграции с приложениями.

Плюсы:

  • Упрощает масштабирование развёрнутых моделей.

  • Легковесные эндпоинты с высокой производительностью.

Минусы:

  • Частые изменения и обновления, так как инструмент активно развивается.

  • Работает только с моделями PyTorch.

А какие инструменты предпочитаете вы? Поделитесь опытом использования в комментариях.


Больше про актуальные инструменты эксперты OTUS рассказывают в рамках практических онлайн‑курсов по Data Science и Machine Learning. С полным каталогом курсов можно ознакомиться по ссылке.

Также приглашаем всех желающих на открытый урок 26 февраля «Задача регрессии в ML на пальцах». На занятии обсудим, что представляет из себя этот тип задач, какие есть подходы для её решения, а также изучим алгоритм линейной регрессии и применим его на практике. Записаться

Комментарии (1)


  1. puchuu
    20.02.2025 09:41

    Машины с видеокартами на OVH Cloud в 4-5 раз дешевле, чем на амазоне. Интересуйтесь лучше утилитами ovhai для деплоя и мониторинга.