Трудности выбора в MLOps: оркестрация ML-конвейеров с Vertex AI Pipelines и Apache AirFlow

MLOps курсы примеры обучение, ML-инженерия обучение примеры, Google vertex AI Pipelines примеры сравнение MLOps; обучение AirFlow, курсы AirFlow администратор кластера, AirFlow vs Google Vertex AI Pipelines примеры курсы обучение, обучение инженеров данных Big Data, курсы дата-инженеров, Школа Больших Данных Учебный центр Коммерсант

Мы уже сравнивали MLflow и Kubeflow, которые позволяют управлять конвейерами машинного обучения. Продолжая эту важную для ML-инженера тему, сегодня рассмотрим 2 других MLOps-инструмента для оркестрации конвейеров Machine Learning: Vertex AI Pipelines и Apache AirFlow.

Что такое Vertex AI Pipelines от Google

Поскольку цель концепции MLOps в том, чтобы объединить разработку алгоритмов машинного обучения c лучшими практиками разработки и развертывания ПО, неудивительно, что вопросы оркестрации ML-конвейеров занимают здесь важное место. Сегодня дата-инженер может найти множество готовых оркестраторов: Apache AirFlow, Kedro, Luigi, Kubeflow Pipelines, Argo, MLRun, Prefect и пр. Однако, в этой статье мы рассмотрим Vertex AI Pipelines от Google и сравним его с наиболее популярным ETL-оркестратором Apache AirFlow.

Google Vertex AI — это новый набор инструментов для поддержки сквозного жизненного цикла ML-решений и MLOps-задач. Он состоит из множества инструментов, включая Workbench, Feature Store, бессерверный конвейер Kubeflow, задания, эксперименты и отслеживание метаданных, реестр ML-моделей, конечные точки для развертывания их в онлайн, пакетные прогнозы и много других полезных функций.

Поскольку фреймворк выпущен недавно, он пока является незрелым во многих отношениях. Например, функции отслеживания экспериментов и метаданных не соответствуют возможностям MLflow. Также в Vertex AI Pipelines отсутствует планировщик, хотя эта платформа позиционируется как всеобъемлющий инструмент автоматизации, мониторинга и управления системами машинного обучения без сервера. Vertex AI объединяет сервисы Google Cloud для создания ML-систем в рамках одного унифицированного пользовательского интерфейса и API, позволяя обучать и сравнивать модели с использованием AutoML или пользовательского кода. Все модели хранятся в одном центральном репозитории  их можно развернуть на одних и тех же конечных точках в Vertex AI. Платформа включает предварительно обученные API для машинного зрения, видео, NLP-задач и прочих доменно-ориентированный приложений Machine Learning.

Через Vertex AI Workbench платформа интегрирована с Google BigQuery, Dataproc и Spark. Можно использовать BigQuery ML для создания и выполнения моделей машинного обучения в BigQuery, используя стандартные SQL-запросы к существующим инструментам бизнес-аналитики и электронным таблицам. Также можно экспортировать наборы данных из BigQuery непосредственно в Vertex AI Workbench и запускать свои модели оттуда. А Vertex Data Labeling поможет разметить датасет для эффективного обучения ML-моделей.

Vertex AI интегрируется со многими открытыми ML-фреймворками, такими как TensorFlow, PyTorch и scikit-learn, а также поддерживает все среды машинного обучения через настраиваемые контейнеры для обучения и прогнозирования. Ключевыми достоинствами Vertex AI с точки зрения MLOps являются следующие:

  • бессерверные решения сокращают затраты на инфраструктуру и развертывание. Стоимость использования стартует от 0,03$ за запуск конвейера и цена ресурсов Google Cloud.
  • оптимизация функций и вариантов использования специально для машинного обучения;
  • поддержка кэширования.

Перечень недостатков Vertex AI Pipelines более широкий:

  • отсутствие планировщика требует использовать сторонние инструменты, такие как Cloud Scheduler и Cloud Function, Jenkins, AirFlow или что-то еще;
  • нет поддержки микроконвейеров, а разрабатывать большие сквозные конвейеры может быть очень сложно, долго и дорого;
  • нет поддержки взаимозависимых и динамических DAG;
  • отсутствие CLI, что затрудняет протестировать конкретную задачу или конвейер;
  • невозможность запустить конвейеры локально;
  • недостаточные контроль и наблюдаемость по сравнению с AirFlow на Kubernetes;
  • привязка к инфраструктуре Google может вызвать дополнительные сложности и проблемы с настройкой сети, VPN и брандмауэра. В большинстве случаев компоненты конвейера должны взаимодействовать с пользовательской инфраструктурой, например, считывать данные из базы данных или взаимодействовать с конечными точками. Однако, бессерверная модель Vertex AI не позволит работать со статическими IP-адресами в шорт-листе и т. д.
  • Наконец, фреймворк пока еще имеет мало реальных внедрений, а потому его небольшое сообщество еще не накопило список лучших практик, операторов и кейсов. Вместе с «сырой» документацией это сильно повышает порог входа в технологию, что противоречит идее MLOps, которая стремится устранить разрывы между ML-разработкой и программной инженерией.

Таким образом, новый продукт от Google AI пока нельзя назвать успешным инструментом современной дата-инженерии для решения MLOps-задач, в отличие от Apache AirFlow, который мы рассмотрим далее.

Apache AirFlow с точки зрения MLOps

Apache AirFlow не случайно считается наиболее популярным ETL-оркестратором. Имея открытый исходный код, он работает с любыми пакетными конвейерами обработки данных, а не только с ML. Благодаря длительной истории AirFlow сегодня является зрелым, надежным и многофункциональным фреймворком, развиваемый большим сообществом разработчиков и дата-инженеров. Поэтому он предоставляет много операторов для разных задач и сценариев. Кроме того, AirFlow легко расширяется, позволяя создать собственный оператор или сенсор, о чем мы писали здесь. Наконец, современный рынок труда богат на специалистов, имеющих опыт работы с AirFlow.

Что касается его применения в MLOps, то AirFlow можно использовать как в качестве вычисляющего механизма, так и передавать фактические вычисления узлам Kubernetes или кластерам Dataproc или EMR для Spark-заданий с помощью KubernetesPodOperator. Таким образом, AirFlow выполняет роль оркестратора и планировщика, предоставляя следующие преимущества:

  • зрелый планировщик;
  • поддержка динамического создания задач и DAG;
  • поддержка конвейеров, управляемых данными, что реализовано с помощью класса Dataset с версии AirFlow4, что мы недавно разбирали здесь;
  • поддержка микроконвейеров, что позволяет разделить большие комплексные DAG на несколько взаимозависимых цепочек;
  • наличие CLI-интерфейса для управления конвейерами, включая повторный запуск, отладку и тестирование;
  • локальный запуск AirFlow для тестирования и разработки;
  • универсальный подход к любым пакетным конвейерам обработки данных, включая ML;
  • AirFlow не зависит от облака, поэтому нет привязки к какому-либо провайдеру;
  • открытый исходный код и огромное сообщество разработчиков дает подробную документацию, примеры, лучшие практики и огромный набор операторов, включая специализированные MLOps-задачи, такие как AutoML, развертывание ML-моделей, пакетное прогнозирование, конечные точки и пр.
  • Наконец, AirFlow относительно прост в освоении и использовании по сравнению с Vertex AI Pipelines, а потому очень распространен среди дата-инженеров и MLOps-специалистов.

Справедливости ради стоит отметить и минусы Apache AirFlow с точки зрения MLOps:

  • накладные расходы на установку и управление;
  • эксплуатационные расходы (узел планировщика и база данных должны работать постоянно).

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

Как применять Apache AirFlow и другие современные инструменты MLOps в проектах аналитики больших данных, вы узнаете на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://medium.com/@saeedhajebi/orchestrator-for-ml-pipelines-vertex-ai-pipelines-vs-apache-AirFlow-6876740e6997
  2. https://cloud.google.com/vertex-ai
Поиск по сайту