Справочник по MLOps и как об этом думать

‍Что такое MLOps?

В MLOps вы найдете противоречивые определения: движение, философия, платформа или должность? Большинство из них либо слишком расплывчато - «философия», либо слишком конкретны, просто относятся к одному конкретному набору инструментов.

Вот наше определение MLOP:

MLOps - это набор общепринятых передовых методов управления кодом, данными и моделями в вашей группе машинного обучения.

Это означает, что MLOps должен помочь вашей команде в следующем:

  • Управление кодом: MLOps поощряет стандартные передовые методы разработки программного обеспечения и поддерживает непрерывную разработку и развертывание.
  • Передовой опыт. Рекомендации помогут вам плавно перейти от идей к экспериментам и внедрению надежных моделей в производство.
  • Управление данными. Платформа и рабочий процесс помогают обрабатывать, сохранять и отслеживать версии ваших наборов данных.
  • Эффективное сотрудничество: команды могут обмениваться кодом, данными, моделями и экспериментами; бегать и понимать работу друг друга; и повторить предыдущую работу.
  • Управление моделями. Вы можете легко обучать модели, отслеживать результаты экспериментов и развертывать надежные API.

MLOps - это обширная область, поэтому мы рассмотрим общую картину, а затем углубимся в темы, с которыми вы столкнетесь при ее внедрении.

Пейзаж MLOps

Может быть сложно выбрать лучшие инструменты и с чего начать. Наша страница инструментов машинного обучения предлагает обзор и простые объяснения наиболее полезных инструментов.

Эти инструменты MLOps охватывают все: от обработки данных, визуализации и автоматизации задач до обучения и развертывания. Мы сосредоточились на вариантах с открытым исходным кодом, но стоит ли отказываться от такого количества проприетарных платформ?

MLOps: строить против покупки

Многочисленные коммерческие платформы стремятся упростить MLOps, и многие команды задают вопрос «строить против покупки». Люди часто «покупают», потому что не уверены в создании собственных инструментов или использовании возможностей с открытым исходным кодом. Дорогие проприетарные платформы обещают упростить всю сложность.

Но проприетарные инструменты часто не оправдывают своих обещаний и вместо этого обходятся дорого и ограничивают вашу команду. Гарантируемые ими ярлыки часто невозможны; и вашей команде по-прежнему потребуется внутренний опыт MLOps, чтобы использовать их эффективно.

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

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

Но если вы хотите создать свой собственный, как начать, не тратя месяцы на изучение всех вариантов? Мы искали проект MLOps с открытым исходным кодом, но не смогли найти его, поэтому создали его.

Теперь вы можете пропустить месяцы исследований и разработок, которые мы делали, и за несколько часов настроить ориентированную на производство среду MLOps с открытым исходным кодом.

Готовая к использованию архитектура MLOps с открытым исходным кодом

Если вам нужна мощность и гибкость вашего собственного решения, но простота и скорость управляемого частного решения, обратите внимание на нашу архитектуру Open MLOps. Это набор скриптов terraform для настройки той же системы, которую мы используем внутри Kubernetes, и вы можете настроить ее менее чем за день.

Вот преимущества Open MLOps:

  • Бесплатно, гибко и с открытым исходным кодом. Мы создали Open MLOps полностью с использованием инструментов с открытым исходным кодом. Это означает, что если у вас есть другие потребности, их легко адаптировать: просто замените компоненты другими инструментами или своими собственными решениями.
  • Начать легко. Многие инструменты MLOps требуют сложного обучения. Мы написали пошаговые инструкции, чтобы вы могли пройти через примерный проект за несколько часов, а затем приступить к выполнению своего собственного.
  • Масштабируемость: Open MLOps работает в Kubernetes, поэтому его легко масштабировать вверх или вниз в зависимости от ваших потребностей. Если вы выполняете огромную рабочую нагрузку, вы можете просто увеличить вычислительную мощность. Если у вас ограниченный бюджет, вы можете запустить его в небольшом кластере.

Open MLOps включает в себя следующие компоненты:

  • JupyterHub, общая записная книжка для совместной работы вашей команды.
  • MLFlow для отслеживания ваших экспериментов и моделей.
  • Префект для управления рабочими процессами и запланированными задачами.
  • Селдон для производства ваших моделей и превращения их в API.

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

Ресурсы MLOps

Мы написали много статей о MLOps. Вот наши фавориты, которые помогут вам на разных этапах вашего пути к MLOps.

Начало работы с MLOps и машинным обучением

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

Выбор инструментов для создания собственной платформы MLOps

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

Настройка Open MLOps

После того, как вы выбрали инструменты, вам нужно будет установить и настроить их. Если вы хотите сымитировать настройку, которую мы используем внутри Data Revenue с помощью Open MLOps, мы создали несколько пошаговых руководств, чтобы быстро настроить и запустить JupyterHub, Prefect, Seldon, Dask и MLFlow.

Получать помощь

Если вам нужна помощь в настройке вашей команды с помощью MLOps, не стесняйтесь протягивать руку.