DevOps, DevSecOps, а теперь еще и MLOps…
MLOps - относительно новый термин в индустрии. И вот, как он появился.
Machine Learning это классное направление, которое помогает автоматизировать рабочие процессы, принимать ключевые решения и т.д. Однако со временем многие проекты ML стали приносить компаниям проблемы.
Почему это случилось и в чем проблема?
Если совсем коротко, то теория разошлась с практикой. Все началось с того, что компании, которые занимаются машинным обучением сосредоточились исключительно на найме специалистов по данным и специалистов по машинному обучению. И на бумаге все выглядело правильно. Специалисты и эксперты создавали технически обоснованные модели, обрисовывали бизнес-варианты использования и даже успешно воплощали проекты. А когда ML-модели начали внедрять в реальный бизнес, они зачастую вели себя непредсказуемо. Компании просто не учли, что на качество конечного продукта влияет множество факторов. Например, результаты прогнозирования зависят не только от работы Data Scientist, но и от того, как программисты все реализовали, а администраторы все развернули.
Когда компании начали терять время и деньги из-за неэффективных проектов, они почесали голову и подумали. Почему они не видят результатов, несмотря на то, что наняли высококвалифицированных специалистов? И тут до них дошло, что всех этих разнопрофильных специалистов надо как-то “подружить”, устранить организационные и технические препятствия. Так и возникла необходимость в совершенно новой роли - человеке, который шарит в машинном обучении, обладает операционными навыками и способен управлять происходящим рабочим процессом построения моделей. Эту должность называли MLOps (Machine Learning Operations)
Что умеет MLOps
MLOps engineer отвечает за развертывание модели и постоянное обслуживание. Роль MLOps очень похожа на профессию DevOps, за исключением того, что первый работает с моделями машинного обучения.
Дополнительные задачи MLOps, которые отличают его от DevOps:
- Извлечение данных
- Анализ данных
- Подготовка данных для моделирования
- Обучение модели
- Оценка модели
- Мониторинг модели
Навыки, необходимые MLOps
- знать хотя бы один язык программирования, предпочтительно Python или Java
- знать алгоритмы машинного обучения
- разбираться в чужом коде
- знать концепции DevOps, такие как автоматизация рабочих процессов с использованием конвейеров CI/CD
- способность разрабатывать и внедрять облачные решения (AWS, Azure или GCP)
- знать Docker и Kubernetes
- уметь работать с популярными фреймворками MLOps, таких как Kubeflow, MLFlow и DataRobot.