Что такое 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.
- Автоматизированные рабочие процессы. Использование заданий 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"
См. другие статьи в этом разделе.