Partage via


Qu’est-ce que Ray sur Azure Databricks ?

Ray est une infrastructure open source pour la mise à l’échelle des applications Python. Il inclut des bibliothèques spécifiques aux charges de travail IA, ce qui le rend particulièrement adapté au développement d’applications IA. Ray sur Azure Databricks vous permet d’exécuter des applications Ray tout en obtenant tous les avantages et fonctionnalités de la plateforme d'Azure Databricks.

Avec Ray 2.3.0 et versions ultérieures, vous pouvez créer des clusters Ray et exécuter des applications Ray sur des clusters Apache Spark avec Azure Databricks.

Pour plus d’informations sur la prise en main du Machine Learning sur Ray, notamment des didacticiels et des exemples, consultez la documentation Ray. Pour plus d'informations sur l'intégration de Ray et Apache Spark, consultez la documentation Ray on Spark API.

Qu’est-ce que Ray ?

Ray simplifie les systèmes distribués en fournissant des primitives Python de base pour créer des applications distribuées à partir de zéro. Pour les développeurs Python nouveaux sur les systèmes distribués, il offre la même facilité d’utilisation que Python standard tout en gérant l’orchestration, la planification et la tolérance de panne.

Ray et Apache Spark sont des frameworks complémentaires. Ray excelle au parallélisme logique, gère les tâches dynamiques et nécessitant beaucoup de ressources de calcul, comme le Machine Learning et l’apprentissage par renforcement. Apache Spark se spécialise dans le parallélisme des données, traitant efficacement de grands jeux de données pour des tâches telles que ETL et l’analytique des données. Ensemble, ils fournissent une combinaison puissante pour le traitement des données et le calcul complexe.

Comment exécuter Ray sur Azure Databricks ?

L’exécution de Ray sur Azure Databricks vous permet de tirer parti de l’étendue de l’écosystème Azure Databricks, d’améliorer le traitement des données et les flux de travail Machine Learning avec des services et des intégrations qui ne sont pas disponibles dans Ray open source. Les avantages de l’exécution de Ray dans Azure Databricks sont les suivants :

  • Plateforme unifiée : Azure Databricks fournit une plateforme unifiée où vous pouvez exécuter des applications Ray avec Apache Spark. Cette intégration prend en charge les opérations ETL de données transparentes, le transfert de données efficace et le calcul parallèle puissant dans le même environnement de calcul.
  • Gouvernance et contrôle : bénéficiez des avantages du suivi de traçabilité, du contrôle de version des données et du contrôle d’accès avec Unity Catalog pour toutes vos ressources de données, fichiers, modèles, etc., en garantissant la conformité et la sécurité.
  • Gestion de l’infrastructure : utilisez des outils d’infrastructure tels que le fournisseur Azure Databricks Terraform et azure Databricks Asset Bundles pour gérer vos clusters et travaux, ce qui garantit des opérations et une scalabilité rationalisées.
  • Clusters Ray managés : les clusters Ray sont gérés dans le même environnement d’exécution qu’un cluster Apache Spark en cours d’exécution. Cela garantit l’extensibilité, la fiabilité et la facilité d’utilisation sans avoir à configurer l’infrastructure complexe.
  • Service et surveillance des modèles : connectez les modèles formés avec Ray Train à Mosaïque AI Model Service pour les déploiements à haute disponibilité et à faible latence. En outre, utilisez Lakehouse Monitoring pour suivre la qualité et la dérive des prédictions de modèle, ce qui garantit des performances cohérentes.
  • Développement ML amélioré : intégrez le service Azure Databricks MLflow entièrement managé pour suivre le développement de votre modèle, facilitant ainsi la gestion des expériences et la reproductibilité dans vos applications Ray.
  • Flux de travail automatisés : utilisez des travaux Databricks pour automatiser vos processus, en créant des pipelines prêts pour la production qui simplifient vos opérations et réduisent l’intervention manuelle.
  • Gestion et collaboration du code : gérez votre code efficacement avec les dossiers Git Azure Databricks, ce qui permet une intégration Git transparente pour le contrôle de version et le développement collaboratif pour votre code d’application Ray.
  • Accès efficace aux données : connectez les applications Ray à Delta Lake, en tirant parti de l’écosystème large d’intégrations de données d'Azure Databricks pour étendre les fonctionnalités de Ray à un large éventail d’applications et de sorties.

En exécutant Ray sur Azure Databricks, vous accédez à un écosystème intégré qui améliore votre traitement des données, le Machine Learning et les flux de travail opérationnels.

Cas d’utilisation : apprentissage automatique et au-delà

Ray est un outil polyvalent qui étend les fonctionnalités de Python au-delà des limitations des opérations DataFrame, ce qui le rend idéal pour les algorithmes distribués hautement personnalisés et spécialisés.

Machine Learning et Deep Learning

Tirez parti des bibliothèques Machine Learning de Ray pour améliorer vos flux de travail ML :

  • Réglage des hyperparamètres : optimisez les performances du modèle avec Ray Tune pour une recherche d’hyperparamètre performante et évolutive.
  • Formation de Deep Learning distribuée : mettez à l’échelle des modèles d’apprentissage profond sur plusieurs nœuds avec prise en charge des frameworks populaires tels que PyTorch, TensorFlow, HuggingFace et Keras. Idéal pour les modèles de formation pour la vision par ordinateur ou les modèles de langage volumineux (LLM).
  • Machine Learning traditionnel : utilisez Ray pour distribuer la formation, l’évaluation et l’inférence par lots pour les modèles ML traditionnels créés avec des bibliothèques populaires telles que scikit-learn ou XGBoost.

Calcul haute performance (HPC)

Ray excelle dans la distribution de charges de travail HPC, ce qui lui permet de :

  • Calculs mathématiques : effectuez des calculs complexes dans des domaines tels que la physique, la génomique ou la finance à l’aide de Ray Core pour un traitement parallèle efficace.
  • Prévision de série chronologique : mettez à l’échelle vos modèles de prévision, en exécutant des estimations simultanément avec des packages de prévision tels que Prophète ou ARIMA.

Traitement des données et ingénierie des fonctionnalités

Ray peut également gérer différentes tâches de traitement des données :

  • Fonctionnalités calculées : des tâches d’ingénierie de fonctionnalités nécessitant beaucoup de ressources de calcul complexes peuvent tirer parti de l’architecture de calcul distribuée de Ray.
  • Traitement audio, image et vidéo : distribuez et accélérez le traitement des données multimédias, ce qui le rend idéal pour les applications de reconnaissance vocale, de classification d’images et d’analyse vidéo.

Limites

  • Ray sur Apache Spark est pris en charge pour le mode d’accès mono-utilisateur (affecté), aucun mode d’accès partagé d’isolation et les clusters de travaux uniquement. Un cluster Ray ne peut pas être lancé sur des clusters à l’aide de runtimes serverless.
  • Évitez d’exécuter %pip pour installer des packages sur un cluster Ray en cours d’exécution, car il arrêtera le cluster. Au lieu de cela, installez des bibliothèques avant d’initialiser le cluster.
  • L'utilisation d'intégrations qui remplacent la configuration de ray.util.spark.setup_ray_cluster peut rendre le cluster Ray instable. Évitez de sur-abonner les ressources de cluster Ray dans les applications tierces.
  • Si vous consultez des erreurs telles que ncclInternalError: Internal check failed, cela indique un problème de communication réseau entre les GPU de votre cluster. Pour résoudre cette erreur, ajoutez l’extrait de code suivant dans votre code d’entraînement pour utiliser l’interface réseau principale.
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"

Consultez les autres articles de cette section.