Мы уже сравнивали 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 в Москве:
- Разработка и внедрение ML-решений
- Data Pipeline на Apache Airflow
- Data pipeline на Apache AirFlow и Arenadata Hadoop
Источники