Хотите знать, что лучше всего подходит для вашего приложения машинного обучения в Microsoft Azure? Это исследование может помочь вам выбрать наиболее подходящую платформу для ваших целей.

Параметры вычислений в Azure

Azure предоставляет разные вычислительные платформы для разных сценариев использования. Вот список доступных опций в Azure:

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

Стоит отметить, что Служба Azure Kubernetes (AKS) имеет возможность запускать рабочие нагрузки машинного обучения в Azure. В этом исследовании мы не рассматриваем это, поскольку это относится к вычислительным платформам в Azure.

Давайте подробнее рассмотрим каждый из них и сравним их друг с другом.

Лазерные блоки данных

Эта платформа на основе Apache Spark в Azure предоставляет мощное интерактивное рабочее пространство для анализа больших данных в Azure. Типичный конвейер Azure Databrick начинается с приема данных из внешних источников, размещения данных в постоянном хранилище (например, хранилище BLOB-объектов Azure), подготовки и согласования данных и использования данных из обучения машинному обучению. Поскольку объем данных велик, Spark обрабатывает оркестровку, избыточность данных (через RDD) и планирование (с помощью DAG). Данные будут храниться в BLOB-объекте Azure для использования Databricks для подготовки и обучения. Затем модель вывода можно сохранить в любой из баз данных Azure или служб аналитики.

Полная информация о том, как работает Azure Databricks, представлена ​​в документации Azure.

Databricks предоставляет два разных типа кластеров:

  • Интерактивный кластер: вычислительная мощность, которая предоставляется заранее и будет работать постоянно.
  • Автоматизированный кластер: вычислительная мощность, которая подготавливает кластер по запросу во время отправки задания. Когда работа будет завершена, жизненный цикл кластера завершится и он умрет.

Для работы Databricks требуется как минимум два узла: узел драйвера и рабочий узел. Количество рабочих узлов зависит от задания (заданий). Поэтому для работы всегда требуется более одной машины. Справедливо сказать, что Databricks разработан для массовых параллельных вычислений. Задания будут выполняться параллельно на разных машинах, и Databricks будет обрабатывать выходные данные.

Примечание. Azure Databricks может упаковать форматирование и развертывать модели в Azure ML с помощью MLflow.

Пакетная служба Azure

Пакетная служба Azure также подходит для высокопроизводительных параллельных вычислений. Он выполняет распараллеливание, создавая пул задач и параллельно выполняя их на вычислительных узлах.

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

Документация по пакетной службе Azure содержит все подробности того, как это работает. Поэтому мы не будем вдаваться в подробности в этом разделе.

Вычисления машинного обучения Azure

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

Упрощенная история конвейера в Azure ML Compute может выглядеть следующим образом:

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

Здесь у вас могут быть вычислительные экземпляры или вычислительный кластер. Они будут предоставлены ML Compute по запросу, загрузят задание, выполнят его, а затем уничтожат вычислительную мощность.

Примечание. Конвейер вычислений машинного обучения может иметь Azure Databricks в качестве вычислительной цели t.

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

Основная цель

Azure Databricks

Вычислительная платформа для масштабирования данных и потоковой обработки данных, где требуется избыточность данных. Он объединяет общий набор библиотек DataBrick для анализа данных, машинного обучения, обработки данных (с Dataframe и SparkSQL).

Пакетная служба Azure

Запуск приложений для высокопроизводительных вычислений (HPC), в которые инженеры приносят свои собственные библиотеки и инструменты для параллельного выполнения больших заданий.

Вычисления машинного обучения Azure

Azure ML Compute включает в себя необходимые инструменты и библиотеки, предназначенные для машинного обучения. Он упакован как часть службы машинного обучения Azure.

Поддерживаемые языки

Azure Databricks

Databricks поддерживает несколько языков, что упрощает работу. Поддерживаемые языки - Python, Scala, R, SQL и Java.

Пакетная служба Azure

Использует следующие пакеты SDK Azure для запуска и управления рабочими нагрузками пакетной службы Azure - REST, .NET, Python, Node и Java.

Сама задача может быть написана на любом языке, если она исполняемая и зависимости доступны в узле.

Вычисления машинного обучения Azure

Поддерживаемые языки: Python и R.

Расходы

Azure Databricks

Цены на Azure Databricks немного отличаются от двух других платформ. Это означает, что помимо виртуальных машин, пользователь должен заплатить еще одну стоимость за Databricks Units (DBU).

Пакетная служба Azure

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

Вычисления машинного обучения Azure

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

Поддержка CI / CD

Azure Databricks

CI / CD полностью поддерживается Azure Databricks. Настройки могут быть разными в зависимости от требований проекта. Вот ссылка на обзор типичного CI / CD в Azure Databricks.

Пакетная служба Azure

Пакетная служба Azure также поддерживает CI / CD. Вот ссылка на статью, в которой объясняются шаги по его настройке. Однако по сравнению с двумя другими методами этот относительно сложнее настроить.

Вычисления машинного обучения Azure

CI / CD полностью поддерживается через Операции машинного обучения (MLOps), основанные на DevOps.

Тестовая поддержка

Azure Databricks

Тестирование полностью поддерживается Azure Databricks. Есть разные способы добавить тестовую среду. Например, Nutter упростил тестирование Azure Databricks.

Пакетная служба Azure

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

Вычисления машинного обучения Azure

Цели развертывания в Azure ML Compute имеют свои собственные системы тестирования и отладки.

Минимальное количество требуемых узлов

Azure Databricks

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

Пакетная служба Azure

Для запуска пакетной службы Azure требуется минимум один узел.

Вычисления машинного обучения Azure

Для работы вычислений машинного обучения Azure требуется минимум один узел.

Интеграция Azure Data Lake Storage (ADLS) Gen2

Azure Databricks

Возможность подключения учетной записи Azure Data Lake Storage Gen2 к файловой системе Databricks (DBFS) с аутентификацией с использованием принципала службы и OAuth 2.0. Монтирование - это указатель на хранилище озера данных, поэтому данные никогда не синхронизируются локально.

Пакетная служба Azure

Пакетная служба Azure включает встроенную поддержку доступа к хранилищу BLOB-объектов Azure, и задачи могут загружать файлы на вычислительные узлы во время выполнения задач. Более подробную информацию о поддерживаемых Azure Batch учетных записях хранения можно найти в документации Azure.

Вычисления машинного обучения Azure

Поддерживает несколько типов хранилищ данных, включая ADLS Gen 2, в качестве хранилища данных для вычислений машинного обучения.

Возможность планирования

Azure Databricks

Azure Databricks имеет встроенные возможности планирования заданий. Фабрика данных Azure может вызывать преобразование Databricks.

Пакетная служба Azure

Он имеет те же возможности, что и Azure Databricks, собственные возможности планирования заданий. Фабрика данных Azure может вызывать пакетную службу Azure.

Вычисления машинного обучения Azure

Как и два других, это встроенные возможности планирования заданий.

Обработка паркетного файла

Azure Databricks

Parquet - это формат файла Apache, который изначально поддерживается Azure Databricks.

Пакетная служба Azure

Не поддерживается напрямую. Однако об этом можно позаботиться в приложении до запуска заданий в пакетном режиме Azure.

Вычисления машинного обучения Azure

Он поддерживает табличные наборы данных, следовательно, поддерживает паркетные файлы.

Автоматическое масштабирование

Azure Databricks

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

Пакетная служба Azure

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

Вычисления машинного обучения Azure

Поддерживает автомасштабирование. В момент создания кластера вы можете определить минимальное и максимальное количество узлов. По умолчанию он имеет 0 узлов для минимального значения и 4 узла для максимального количества узлов.

Возможность развертывания в выделенной виртуальной сети

Azure Databricks

Поддерживает это за счет того, что все выделенные ресурсы, включая виртуальную сеть (Vnet), заблокированы в группе ресурсов, которая используется всеми кластерами.

Пакетная служба Azure

Поддерживает его, выделяя пул в подсеть, которая находится в выделенной виртуальной сети.

Вычисления машинного обучения Azure

Поддерживает это, выполняя задания в выделенном Vnet.