Пакетная оценка моделей Spark в Azure Databricks

Microsoft Entra ID
Azure Databricks
Фабрика данных Azure
хранилище BLOB-объектов Azure

В этой эталонной архитектуре показано, как создать масштабируемое решение для пакетной оценки модели классификации Apache Spark по расписанию с помощью Azure Databricks. Azure Databricks — это высокопроизводительная платформа на основе Apache Spark, оптимизированная для Azure. Azure Databricks предлагает три среды для разработки приложений с интенсивным использованием данных: Databricks SQL, Databricks для обработки, анализа и инжиниринга данных и Машинное обучение Databricks. Машинное обучение Databricks — это интегрированная комплексная среда машинного обучения, которая включает управляемые службы для отслеживания экспериментов, обучения моделей, разработки признаков и управления ими, а также предоставления признаков и моделей. Эту эталонную архитектуру можно использовать в качестве шаблона, который можно обобщить в других сценариях. Эталонную реализацию для этой архитектуры можно найти на сайте GitHub.

Apache® и Apache Spark® являются зарегистрированными товарными знаками или товарными знаками Apache Software Foundation в США и/или других странах. Использование этих меток не подразумевает подтверждения от Apache Software Foundation.

Архитектура

Diagram showing batch scoring of Apache Spark classification models on Azure Databricks.

Скачайте файл Visio для этой архитектуры.

Рабочий процесс

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

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

Прием. Записная книжка для приема данных скачивает входные файлы данных в коллекцию наборов данных Databricks. В реальном сценарии данные с устройств Интернета вещей будут передаваться в хранилище, доступном для Databricks, например в хранилище BLOB-объектов Azure или SQL Azure. Databricks поддерживает несколько источников данных.

Конвейер обучения. Эта записная книжка выполняет записную книжку проектирования признаков, чтобы на основе полученных данных создать набор аналитических данных. Затем выполняется записная книжка создания модели, которая обучает модель машинного обучения с помощью масштабируемой библиотеки машинного обучения Apache Spark MLlib.

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

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

Описание решения

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

Так как этот сценарий создает конвейер пакетного выполнения, мы предоставляем набор дополнительных записных книжек для просмотра выходных данных, возвращаемых записными книжками конвейера. Эти записные книжки можно найти в папке записных книжек репозитория GitHub:

  • 1a_raw-data_exploring.ipynb
  • 2a_feature_exploration.ipynb
  • 2b_model_testing.ipynb
  • 3b_model_scoring_evaluation.ipynb

Потенциальные варианты использования

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

Модель прогнозного обслуживания собирает данные с компьютеров и сохраняет зарегистрированные данные о сбоях компонентов. Затем модель может использоваться для мониторинга текущего состояния компонентов и прогнозирования, если данный компонент завершится сбоем в ближайшее время. Распространенные варианты использования и подходы к моделированию см. в руководстве по использованию Azure ИИ для создания решений прогнозного обслуживания.

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

  1. Прием данных из внешнего хранилища данных в хранилище данных Azure Databricks.

  2. Обучение модели машинного обучения путем преобразования данных в обучающий набор данных с последующим созданием модели Spark MLlib. MLlib содержит распространенные алгоритмы машинного обучения и служебные программы, оптимизированные для использования поддерживаемых в Spark возможностей масштабируемости данных.

  3. Применение обученной модели для прогнозирования (классификация) сбоев компонентов путем преобразования данных в оценочный набор данных. Оценка данных с помощью модели Spark MLLib.

  4. Сохранение результатов в хранилище данных Databricks для использования после обработки.

Записные книжки предоставляются на сайте GitHub для выполнения каждой из этих задач.

Рекомендации

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

  • Поддержка единого входа с использованием учетных данных Microsoft Entra.
  • планировщик заданий для выполнения заданий рабочих конвейеров;
  • полностью интерактивная записная книжка с поддержкой совместной работы, панелей мониторинга и интерфейсов REST API;
  • неограниченное количество кластеров с возможностью масштабирования до любого размера;
  • широкий набор средств безопасности, управление доступом на основе ролей и журналы аудита.

Для взаимодействия с платформой Azure Databricks откройте интерфейс рабочей области Databricks в браузере или интерфейсе командной строки (CLI). Доступ к Databricks с помощью CLI возможен с любой платформы, которая поддерживает Python версий 2.7.9–3.6.

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

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

Рекомендации

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

Производительность

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

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

Хранилище

В этой эталонной реализации данные хранятся непосредственно в хранилище Databricks, чтобы упростить систему. Однако в рабочей среде можно хранить данные в облачном хранилище данных, например Хранилище BLOB-объектов Azure. Databricks также поддерживает Azure Data Lake Store, Azure Synapse Analytics, Azure Cosmos DB, Apache Kafka и Apache Hadoop.

Оптимизация затрат

Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".

В общих случаях для оценки затрат используйте калькулятор цен Azure. Другие рекомендации описаны в разделе "Затраты" в Microsoft Azure Well-Architected Framework.

Azure Databricks — это предложение Spark ценовой категории "Премиум" с соответствующими ценами. Кроме того, существуют ценовые категории Databricks "Стандартный" и "Премиум".

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

Записные книжки этого решения можно запустить на любой платформе на базе Spark с минимальными изменениями — нужно лишь удалить специализированные пакеты для Databricks. Вы можете изучить аналогичные решения для других платформ Azure.

Развертывание этого сценария

Чтобы развернуть эту эталонную архитектуру, выполните действия, описанные в репозитории GitHub , чтобы создать масштабируемое решение для оценки моделей Spark в пакетной службе Azure Databricks.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.

Автор субъекта:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Следующие шаги