Машинное обучение с Apache Spark

Apache Spark в Azure Synapse Analytics позволяет выполнять машинное обучение с помощью больших данных, предоставляя возможность получить ценные сведения из больших объемов структурированных, неструктурированных и быстро меняющихся данных.

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

Среда выполнения Synapse

Среда выполнения Synapse — это курированная среда, оптимизированная для обработки и анализа данных и машинного обучения. Среда выполнения Synapse предлагает по умолчанию ряд популярных библиотек с открытым кодом и сборок в пакете SDK для Машинного обучения Azure. Среда выполнения Synapse также включает множество внешних библиотек, в том числе PyTorch, Scikit-Learn, XGBoost и другие.

Дополнительные сведения о доступных библиотеках и соответствующих версиях см. в статье о среде выполнения Azure Synapse Analytics.

Разведочный анализ данных

При использовании Apache Spark в Azure Synapse Analytics доступны различные встроенные параметры, которые помогут вам визуализировать данные, в том числе параметры диаграммы записной книжки Synapse, доступ к популярным библиотекам с открытым кодом, например Seaborn и Matplotlib, а также интеграция с Synapse SQL и Power BI.

Дополнительные сведения о возможностях визуализации и анализа данных см. в статье о том, как визуализировать данные с помощью записных книжек Azure Synapse.

Проектирование признаков

По умолчанию среда выполнения Synapse включает набор библиотек, которые обычно используются для конструирования признаков. Для конструирования признаков в больших наборах данных можно использовать Spark SQL, MLlib и Koalas. Для небольших наборов данных полезные методы, применимые к таким сценариям, предоставляют также сторонние библиотеки, например NumPy, Pandas и Scikit-learn.

Обучение моделей

Существует несколько вариантов, которые можно использовать для обучения моделей машинного обучения с помощью Azure Spark в Azure Synapse Analytics: Apache Spark MLlib, Машинное обучение Azure и большое количество других библиотек с исходным кодом.

Дополнительные сведения о возможностях машинного обучения см. в статье как обучать модели в Azure Synapse Analytics.

SparkM и MLlib

Возможности распределенного вычисления в памяти Spark отлично подходят для итеративных алгоритмов, используемых в машинном обучении и графовых вычислениях. spark.ml предоставляет универсальный набор интерфейсов API высокого уровня, помогающих пользователям создавать и настраивать конвейеры машинного обучения. Дополнительные сведения о spark.ml см. в руководстве по программированию для машинного обучения Apache Spark.

Машинное обучение Azure автоматизированное машинное обучение (не рекомендуется)

Автоматизированное машинное обучение в службе "Машинное обучение Azure" помогает автоматизировать процесс разработки моделей машинного обучения. Это позволяет специалистам по обработке и анализу данных создавать модели машинного обучения с высокими уровнями масштаба, эффективности и производительности без ущерба для качества моделей. Компоненты для запуска пакета SDK для автоматизированного машинного обучения в службе "Машинное обучение Azure" создаются непосредственно в среде выполнения Synapse.

Предупреждение

  • Начиная с 29 сентября 2023 г. Azure Synapse прекратит официальную поддержку среды выполнения Spark 2.4. После 29 сентября 2023 г. мы не будем обращаться в службу поддержки, связанной с Spark 2.4. Конвейер выпуска не будет применяться для исправлений ошибок или безопасности для Spark 2.4. Использование Spark 2.4 после даты отключения поддержки выполняется по собственному риску. Мы настоятельно не рекомендуем использовать его продолжающееся использование из-за потенциальных проблем безопасности и функциональных возможностей.
  • В рамках процесса нерекомендуемого использования Apache Spark 2.4 мы хотели бы уведомить вас о том, что AutoML в Azure Synapse Analytics также не рекомендуется. Это включает как интерфейс с низким кодом, так и ИНТЕРФЕЙСы API, используемые для создания пробных версий AutoML с помощью кода.
  • Обратите внимание, что функции AutoML были доступны исключительно в среде выполнения Spark 2.4.
  • Для клиентов, желающих продолжить использование возможностей AutoML, рекомендуется сохранить данные в вашей учетной записи Azure Data Lake Storage 2-го поколения (ADLSg2). Оттуда вы можете легко получить доступ к интерфейсу AutoML с помощью Машинное обучение Azure (AzureML). Дополнительные сведения об этом обходной путь доступны здесь.

Библиотеки с открытым кодом

Каждый пул Apache Spark в Azure Synapse Analytics поставляется с набором предварительно загруженных популярных библиотек машинного обучения. Ниже перечислен ряд актуальных библиотек машинного обучения, которые включены в этот набор по умолчанию.

  • Scikit-learn — это одна из самых популярных библиотек машинного обучения с одним узлом для классических алгоритмов машинного обучения. Scikit-learn поддерживает большинство контролируемых и неконтролируемых алгоритмов обучения, которые также можно использовать для интеллектуального и обычного анализа данных.

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

  • PyTorch и TensorFlow — это мощные библиотеки глубокого обучения Python. В пуле Apache Spark в Azure Synapse Analytics вы можете использовать эти библиотеки для создания моделей с одним компьютером, установив для количества исполнителей в пуле нулевое значение. Несмотря на то, что Apache Spark не работает с этой конфигурацией, это простой и экономичный способ создания моделей с одним компьютером.

Отслеживание разработки модели

MLflow — это библиотека с открытым кодом для управления жизненным циклом экспериментов машинного обучения. MLFlow Tracking — это компонент MLflow, который осуществляет мониторинг и ведение журнала метрик выполнения обучения и артефактов моделей. Дополнительные сведения об использовании MLFlow Tracking в Azure Synapse Analytics и службе "Машинное обучение Azure" см. в этом учебнике по использованию MLFlow.

Оценка модели

Оценка модели или вывод — это этап, на котором модель используется для создания прогнозов. Для оценки модели с помощью SparkML или MLLib можно использовать собственные методы Spark для формирования вывода непосредственно в кадре данных Spark. Для других библиотек с открытым кодом и типов моделей можно создать определяемую пользователем функцию Spark, которая обеспечит горизонтальное увеличение масштаба вывода в больших наборах данных. Для небольших наборов данных можно также использовать собственные методы вывода модели, предоставляемые библиотекой.

Регистрация и обслуживание моделей

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

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

Чтобы приступить к работе с машинным обучением в Azure Synapse Analytics, ознакомьтесь со следующими учебниками: