Поделиться через


Что такое Ray в Azure Databricks?

Ray — это платформа открытый код для масштабирования приложений Python. Она включает библиотеки, относящиеся к рабочим нагрузкам ИИ, что делает его особенно подходящим для разработки приложений ИИ. Ray в Azure Databricks позволяет запускать приложения Ray при получении всех преимуществ платформы и функций Azure Databricks.

С помощью Ray 2.3.0 и более поздних версий можно создавать кластеры Ray и запускать приложения Ray в кластерах Apache Spark с помощью Azure Databricks.

Сведения о начале работы с машинным обучением в Ray, включая учебники и примеры, см. в документации по Ray. Дополнительные сведения об интеграции Ray и Apache Spark см. в документации по API Spark.

См. другие статьи в этом разделе.

Что такое Ray?

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

Ray и Apache Spark являются дополнительными платформами. Рэй работает на логическом параллелизме, обрабатывая динамические, вычислительные задачи, такие как машинное обучение и обучение с подкреплением. Apache Spark специализируется на параллелизме данных, эффективно обрабатывая большие наборы данных для таких задач, как ETL и аналитика данных. Вместе они обеспечивают мощное сочетание как для обработки данных, так и для сложных вычислений.

Почему запустите Ray в Azure Databricks?

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

  • Единая платформа: Azure Databricks предоставляет единую платформу, в которой можно запускать приложения Ray вместе с Apache Spark. Эта интеграция поддерживает простое выполнение операций ETL данных, эффективную передачу данных и мощные параллельные вычисления в одной вычислительной среде.
  • Управление и управление: получение преимуществ отслеживания происхождения, управления версиями данных и управления доступом с помощью каталога Unity для всех ваших ресурсов данных, файлов, моделей и многого другого, обеспечения соответствия требованиям и безопасности.
  • Управление инфраструктурой. Используйте такие средства инфраструктуры, как поставщик Azure Databricks Terraform и пакеты ресурсов Azure Databricks для управления кластерами и заданиями, обеспечивая оптимизированные операции и масштабируемость.
  • Управляемые кластеры Ray: кластеры Ray управляются в той же среде выполнения, что и запущенный кластер Apache Spark. Это обеспечивает масштабируемость, надежность и удобство использования без необходимости сложной настройки инфраструктуры.
  • Обслуживание моделей и мониторинг. Подключение моделей, обученных с помощью Ray Train к Модели ИИ Для обеспечения высокой доступности, низкой задержки развертывания. Кроме того, используйте Мониторинг Lakehouse для отслеживания качества прогнозирования и смещения моделей, обеспечивая согласованную производительность.
  • Расширенная разработка машинного обучения. Интеграция с полностью управляемой службой Azure Databricks MLflow для отслеживания разработки модели, упрощения управления экспериментами и воспроизведения в приложениях Ray.
  • Автоматизированные рабочие процессы: используйте рабочие процессы Azure Databricks для автоматизации процессов, создавая готовые к работе конвейеры, которые упрощают операции и сокращают вмешательство вручную.
  • Управление кодом и совместная работа. Эффективное управление кодом с помощью папок Git Azure Databricks, что позволяет легко интегрировать Git для управления версиями и совместной разработки для кода приложения Ray.
  • Эффективный доступ к данным: подключите приложения Ray к Delta Lake, используя широкую экосистему интеграции данных Azure Databricks, чтобы расширить возможности Ray до более широкого спектра приложений и выходных данных.

Запустив Ray в Azure Databricks, вы получаете доступ к интегрированной экосистеме, которая улучшает обработку данных, машинное обучение и рабочие процессы.

Варианты использования — машинное обучение и более поздней версии

Ray — это универсальное средство, которое расширяет возможности Python за пределами ограничений операций DataFrame, что делает его идеальным для высоконастройных и специализированных распределенных алгоритмов.

машинное и глубокое обучение.

Используйте библиотеки машинного обучения Ray для улучшения рабочих процессов машинного обучения:

  • Настройка гиперпараметра: оптимизация производительности модели с помощью Ray Tune для выполнения и масштабируемого поиска гиперпараметров.
  • Распределенное обучение глубокого обучения: масштабирование моделей глубокого обучения на нескольких узлах с поддержкой популярных платформ, таких как PyTorch, TensorFlow, HuggingFace и Keras. Идеально подходит для обучения моделей компьютерного зрения или больших языковых моделей (LLM).
  • Традиционное машинное обучение: использование Ray для распространения обучения, оценки и пакетного вывода для традиционных моделей машинного обучения, созданных с помощью популярных библиотек, таких как scikit-learn или XGBoost.

Высокопроизводительные вычисления (HPC)

Рэй преуспевает в распределении рабочих нагрузок HPC, что делает его подходящим для:

  • Математические вычисления: выполнение сложных вычислений в таких областях, как физика, геномика или финансы с помощью Ray Core для эффективной параллельной обработки.
  • Прогнозирование временных рядов: масштабируйте модели прогнозирования, выполняя оценки параллельно с пакетами прогнозирования, такими как Пророк или ARIMA.

Обработка данных и проектирование компонентов

Ray также может обрабатывать различные задачи обработки данных:

  • Вычисляемые функции: сложные задачи проектирования функций с интенсивным вычислением могут воспользоваться архитектурой распределенных вычислений Ray.
  • Аудио, изображение и видеообработка: распространение и ускорение обработки мультимедийных данных, что делает его идеальным для приложений в распознавании речи, классификации изображений и видеоанализа.

Ограничения

  • Ray в Apache Spark поддерживается для режима доступа одного пользователя (назначенного), режима изоляции общего доступа и кластеров заданий. Кластер Ray нельзя инициировать в кластерах с помощью бессерверных сред выполнения.
  • Избегайте выполнения %pip установки пакетов в работающем кластере Ray, так как он завершит работу кластера. Вместо этого установите библиотеки перед инициализацией кластера.
  • Использование интеграции, переопределенной конфигурацией, ray.util.spark.setup_ray_cluster может привести к нестабильности кластера Ray. Избегайте чрезмерной подписки на ресурсы кластера Ray в сторонних приложениях.
  • При возникновении ncclInternalError: Internal check failedтаких ошибок это указывает на проблему сетевого взаимодействия между графическими процессорами в кластере. Чтобы устранить эту ошибку, добавьте следующий фрагмент кода обучения для использования основного сетевого интерфейса.
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"