87% моделей машинного обучения никогда не попадают в продакшен. И одна из основных причин в том, что есть разрыв между процессами, за которые отвечают дата-сайентисты и разработчики.

 
Первые сосредоточены на итерациях и экспериментах, а вторые мечтают о безотказной работе системы любой ценой. 

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

Что такое MLOps

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

Еще в 2015 году команда Google опубликовала исследование о скрытом техническом долге в системах машинного обучения. Согласно статье, разработка моделей — лишь небольшая часть всего процесса. Например, куда большую часть занимает обслуживание инфраструктуры, сбор и проверка данных, конфигурация и мониторинг.
 
Чтобы оптимизировать эту большую систему, начали формировать новую инженерную культуру машинного обучения. Так на стыке DevOps, Data Engineering и Machine Learning появился MLOps. 

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

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

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

Модели чувствительны к данным. Разработка ML-моделей сильно отличается от разработки привычных сервисов: например, любые изменения во входящем потоке данных будут влиять на качество модели. Если скормить скоринговой модели данные о тысяче людей, которым больше 30 лет, и данные о всего паре сотен 20-летних, модель будет предвзятой. Поэтому ее важно постоянно дообучать по мере накопления данных, следить за качеством обучающей выборки.

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

Какие еще проблемы решает MLOps:

  • Отражение изменений в бизнес-целях. Есть множество зависимостей от постоянно меняющихся данных, поддержания стандартов производительности модели и обеспечения управления ИИ. Без MLOps трудно оперативно обновлять обучение модели в соответствии с новыми бизнес-целями.
  • Пробелы в общении. Техническим и бизнес-командам сложно найти общий язык. И это одна из частных причин провалов крупных проектов. 
  • Оценка риска. Вокруг ML/DL ведется много споров — насколько они объективны и вправе принимать какие-то решения. Если нейросеть порекомендует не тот видеоролик пользователю, то цена такой ошибки будет низкой. Но когда речь заходит о блокировке учетной записи или отклонении заявки на ипотеку, то стоимость ошибки сильно возрастает. 

Инструменты для внедрения MLOps: почему стоит выбрать Open-Source-решения 

Глобально есть два варианта решений: проприетарные и Open Source. Главное преимущество инструментов с открытым кодом — гибкость их настройки. Сравним оба подхода при выборе инструментов для MLOps.

Качество кода

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

Универсальность

Вендоры зачастую пытаются сделать универсальный продукт. В итоге те или иные функции не используются в конкретном проекте. Так как из сервиса нельзя «вырезать» функциональность, компания за нее все равно платит. В Open Source можно добавлять или удалять необходимые элементы. 

Гибкость

Open Source дает больше контроля над используемыми инструментами по сравнению с закрытыми проприетарными решениями.

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

Порог входа

Большинство разработчиков умеют работать с популярными Open-Source-инструментами или могут быстро научиться. Компаниям, которые используют проприетарное ПО, зачастую сложнее найти нужного специалиста под свой стек. 

Комьюнити

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

При разработке CLoud ML Platform мы делаем выбор в пользу Open-Source-компонентов для ее построения. 

Зачем бизнесу использовать MLOps

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

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

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

Снижение затрат. MLOps помогает сократить затраты на машинное обучение за счет минимизации ручного труда, упрощения поиска багов и улучшенного управления моделями. 
Надежность. Мониторинг поведения моделей влияет не только на сам ML-проект, но и на часть бизнеса, для которой создавалась модель. С помощью MLOps можно оперативно собирать данные и сразу же переобучать модель. Например, чтобы улучшать скоринг и быстрее принимать решение о выдаче кредита.
 

Как внедрить MLOps-инструменты в компанию

Можно самостоятельно подобрать стек инструментов и настроить конвейер разработки ML-моделей. Для этого нужно нанять отдел и MLOps-инженеров, которые будут строить MLOps, что затратно по человеческим и денежным ресурсам. Другой вариант — воспользоваться облачным инструментом. 

В VK Cloud  появился новый инструмент Cloud ML Platform, который позволяет настроить полный цикл ML-разработки в соответствии с MLOps-подходом. Мы внедрили решения с открытым исходным кодом, чтобы у каждой компании была возможность гибко настраивать инфраструктуру и не зависеть от вендров. При этом мы уже подготовили инструмент так, чтобы его можно было сразу внедрять в свои процессы. 
Мы преднастроили среды для работы с данными и ML-моделями, а конфигурацию и мощность инфраструктуры можно выбрать, исходя из потребностей компании. Cloud ML Platform можно интегрировать в корпоративные системы и быть уверенными в сохранности данных.