Как выбрать между DataOps, MLOps и AIOps? Какие операции подходят вашей команде по работе с большими данными?

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

По крайней мере, мы так думали.

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

Перенесемся на два года вперед, и я наконец понял истинное значение DevOps. И как это то же самое, но и совсем другое в команде по обработке данных.

Прежде чем говорить об операциях, ориентированных на данные, давайте начнем с программного обеспечения. Здесь слишком много параллелей и контрастов, так что терпите меня ...

Индустрия программного обеспечения была одержима различными операционными терминами с момента популяризации DevOps в конце 2000-х. Десять лет назад от разработки программного обеспечения до развертывания использовался глобальный подход. Инженер-программист разрабатывает приложение, а затем передает его инженерам-операторам. Приложение часто ломается во время развертывания и создает серьезные трения между командами.

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

Такой подход произвел революцию в отрасли. Многие организации начали создавать кросс-функциональную команду, которая будет следить за всем SDLC. Команда настраивала инфраструктуру (инженер по инфраструктуре), разрабатывала приложение (инженер-программист), строила конвейер CI / CD (инженер DevOps), развертывала приложение (каждый инженер), а затем постоянно отслеживала и наблюдала за приложением (надежность сайта инженер).

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

DevOps - это не служебная функция, а практика или культура.
Его следует использовать в начале создания любого программного обеспечения.

Вместе с ростом DevOps рождаются самые разные операции.

В основе SecOps лежит безопасность, GitOps стремится к непрерывной доставке, NetOps гарантирует, что сеть может поддерживать поток данных, а ITOps фокусируется на операционных задачах, не связанных с доставкой программного обеспечения. Но в совокупности краеугольным камнем этих операций является видение, которое обещает DevOps:

«Чтобы как можно быстрее выпустить программное обеспечение,

с минимальными ошибками ».

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

Затем мы все это реализовали.

Специалисты по анализу данных стали самой сексуальной карьерой в 21 веке. Мы строим себя и живем в золотой век данных и аналитики. У каждого руководителя есть панель управления. Панель мониторинга с данными по всей организации и встроенной прогнозной моделью. У каждого покупателя есть индивидуальная рекомендация, основанная на его поведении.

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

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

DataOps 🆚 MLOps 🆚 DevOps (и AIOps?)

* Примечание. В этой статье аналитические группы относятся к традиционным командам бизнес-аналитики, использующим SQL / PowerBI для получения информации для бизнеса. Под командами ИИ понимаются команды, использующие технологию больших данных для создания моделей расширенной аналитики и машинного обучения. Иногда это одна и та же команда, но мы собираемся разделить их, чтобы было легче объяснять концепции.

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

  • Данные генерируются клиентами, взаимодействующими с программными приложениями.
  • Программное обеспечение хранит данные в своей базе данных приложения.
  • Группа аналитиков строит ETL из этих баз данных приложений от команд в организациях.
  • Команды аналитиков создают отчеты и информационные панели, чтобы бизнес-пользователи могли принимать решения на основе данных.
  • Затем инженеры по обработке данных загружают необработанные данные, консолидированные наборы данных (от аналитических групп) и другие неструктурированные наборы данных в некую форму озера данных.
  • Затем специалисты по данным строят модели из этих массивных наборов данных.
  • Затем эти модели используют новые данные, созданные пользователями, чтобы делать прогнозы.
  • Затем разработчики программного обеспечения сообщают пользователям свои прогнозы.
  • и цикл продолжается ...

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

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

В идеале, культура X-Ops должна быть принята на начальном этапе проекта, а методы должны применяться на протяжении всего проекта.

Подводя итог, это то, что означает каждая операция:

DevOps предоставляет программное обеспечение быстрее

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

DataOps доставляет данные быстрее

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

MLOps быстрее предоставляет модели машинного обучения

Набор практик для разработки, создания и управления воспроизводимым, тестируемым и устойчивым программным обеспечением на основе машинного обучения. Для команд, занимающихся большими данными / машинным обучением, MLOps включает в себя большинство задач DataOps и дополнительные задачи, связанные с машинным обучением, такие как управление версиями моделей, тестирование, проверка и мониторинг.

Бонус: AIOps улучшает инструменты DevOps, используя возможности ИИ

Иногда люди неправильно называют MLOps AIOps, но это совсем другое дело. От Gartner:

Платформы AIOps используют большие данные, современное машинное обучение и другие передовые аналитические технологии для прямого или косвенного улучшения функций ИТ-операций (мониторинг, автоматизация и служба поддержки) за счет упреждающего, личного и динамического анализа.

Таким образом, AIOps обычно представляют собой инструменты DevOps, которые используют технологию на базе искусственного интеллекта для улучшения предлагаемых услуг. Система оповещений и обнаружения аномалий, предлагаемая AWS CloudWatch, является хорошим примером AIOps.

💎 Руководители, а не должности

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

Практика DataOps, MLOps и DevOps должна быть независимой от языка, платформы, платформы и инфраструктуры.

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

Все операции имеют одни и те же 7 общих принципов, но у каждой есть свои небольшие нюансы:

1. Соблюдение

DevOps обычно заботится о безопасности сети и приложений. В сфере MLOps такие отрасли, как финансы и здравоохранение, часто требуют объяснимости модели. DataOps необходимо обеспечить соответствие продукта данных таким законам, как GDPR / HIPPA.

🔧 Инструменты: PySyft разделяет личные данные для обучения модели, AirCloak - для анонимизации данных. Awesome AI Guidelines для выработки принципов, стандартов и правил, касающихся ИИ.

2. Итеративная разработка

Этот принцип проистекает из гибкой методологии, которая фокусируется на постоянном устойчивом создании ценности для бизнеса. Продукт спроектирован, построен, протестирован и развернут итеративно, чтобы максимально увеличить отказоустойчивость и изучить принципала.

3. Воспроизводимость

Программные системы обычно детерминированы: код должен каждый раз работать точно так же. Таким образом, для обеспечения воспроизводимости DevOps необходимо отслеживать только код.

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

🔧 Инструменты: инструменты отслеживания экспериментов, такие как KubeFlow, MLFlow или SageMaker, имеют функции, которые связывают метаданные с запуском эксперимента. Pachyderm и DVC для управления версиями данных.

4. Тестирование

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

🔧 Инструменты: библиотеки, такие как Shap и Lime для интерпретируемости, fiddler для мониторинга объяснимости, большие ожидания для тестирования данных.

5. Непрерывное развертывание

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

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

🔧 Инструменты: большинство инструментов управления рабочими процессами имеют это, например AWS SageMaker, AzureML, DataRobot и т. Д. Инструменты с открытым исходным кодом, такие как Seldon, Kubeflow KFServing.

6. Автоматизация

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

7. Мониторинг

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

🔧 Инструменты. Большинство фреймворков для управления рабочими процессами имеют ту или иную форму мониторинга. Среди других популярных инструментов - Prometheus для мониторинга показателей, Orbit by Dessa для мониторинга данных и моделей.

Заключение

Примите правильную культуру X-Ops, чтобы ускорить доставку вашего программного продукта, основанного на данных и машинном обучении. Помните, принципала важнее технологии:

  1. Развивайте междисциплинарные навыки: воспитывайте Т-образных людей и команды
    , чтобы устранить пробелы и согласовать подотчетность
  2. Автоматизация на раннем этапе (достаточно): объединитесь в стек технологий и
    автоматизируйте процессы, чтобы снизить накладные расходы на проектирование.
  3. Разрабатывайте с учетом цели: инвестируйте в разработку решения заранее, чтобы уменьшить трение от PoC до производства.

Спасибо за чтение ⭐ Подписывайтесь на меня в Medium, LinkedIn или посетите мой Веб-сайт. Кроме того, если вы хотите узнать больше о облачных технологиях и развертывании машинного обучения, напишите нам на melio.ai.