MLOps — новый товарищ по команде DevOp

Машинное обучение превратилось из теоретической темы в общедоступный инструмент. Учитывая новообретенную доступность, приложения с поддержкой машинного обучения превратились из конкурентного преимущества в конкурентную необходимость.
Клиенты ожидают, что качественные продукты и новые функции будут выполняться молниеносно — за это традиционно отвечала команда DevOps. Однако дополнительные возможности машинного обучения создают новый уровень сложности продукта. Масштабное развертывание продуктов машинного обучения — это то, что традиционные инструменты DevOps могут не поддерживать. Вот тут-то и появляется MLOps.

Что такое жизненный цикл машинного обучения?

Прежде чем мы сможем понять операции ML, нам нужно понять жизненный цикл ML:

В традиционном жизненном цикле программного обеспечения код пишется, тестируется, развертывается, отслеживается, и процесс начинается снова. Разработчики встречаются, планируют новые функции, реализуют код и развертывают эти функции. Перед развертыванием их код проходит серию сборок, тестов и мониторинга, прежде чем быть объединенным и выпущенным. Общие используемые инструменты включают Jenkins, Docker и GitLab.

Хороший CI/CD означает, что у разработчиков есть средства защиты перед выпуском их кода и возможность вернуться в случае возникновения каких-либо сбоев. Быстро ошибайся, быстрее восстанавливайся.

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

Одну модель можно обучить, переобучить и снова обучить. Конечная цель — создать модель, которая точно предсказывает вопрос на основе данных. Набор показателей используется для выбора наилучшей модели или набора моделей для развертывания.

Что такое MLOps?

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

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

Рисунок 3: Млопс

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

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

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

Заключение

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