Freigeben über


Was ist Ray in Azure Databricks?

Ray ist ein Open-Source-Framework zum Skalieren von Python-Anwendungen. Dank der enthaltenen spezifischen Bibliotheken für KI-Workloads eignet sich Ray besonders für die Entwicklung von KI-Anwendungen. Mit Ray in Azure Databricks können Sie Ray-Anwendungen ausführen und gleichzeitig von allen Vorteilen und Features der Azure Databricks-Plattform profitieren.

Mit Ray 2.3.0 und höher können Sie Ray-Cluster erstellen und Ray-Anwendungen auf Apache Spark-Clustern mit Azure Databricks ausführen.

Informationen zu den ersten Schritten mit maschinellem Lernen auf Ray, einschließlich Lernprogrammen und Beispielen, finden Sie in der Ray-Dokumentation. Weitere Informationen zur Ray- und Apache Spark-Integration finden Sie in der Ray on Spark API-Dokumentation.

Sehen Sie sich auch die anderen Artikel in diesem Abschnitt an.

Was ist Ray?

Ray stellt grundlegende Python-Primitive für die Erstellung verteilter Anwendungen ohne Vorlage bereit und trägt so zur Vereinfachung verteilter Systeme bei. Ray kümmert sich um die Verwaltung, Orchestrierung, Zeitplanung und Fehlertoleranz, wodurch Python-Entwickler, die noch nicht mit verteilten Systemen vertraut sind, die gleiche Benutzerfreundlichkeit erhalten wie bei Standard-Python.

Das Ray-Framework und das Apache Spark-Framework ergänzen sich gegenseitig. Ray bietet eine überragende Leistung bei logischer Parallelität und eignet sich für dynamische, rechenintensive Aufgaben wie maschinelles Lernen und vertiefendes Lernen. Apache Spark ist spezialisiert auf Datenparallelität und zeichnet sich durch eine effiziente Verarbeitung großer Datasets für Aufgaben wie ETL und Datenanalyse aus. Zusammen bieten sie eine leistungsstarke Kombination für Datenverarbeitung und komplexe Berechnungen.

Vorteile von Ray in Azure Databricks

Mit Ray in Azure Databricks können Sie sich die Vielfalt des Azure Databricks-Ökosystems zunutze machen sowie Datenverarbeitungs- und Machine Learning-Workflows mit Diensten und Integrationen verbessern, die in der Open-Source-Variante von Ray nicht zur Verfügung stehen. Die Vorteile von Ray in Azure Databricks umfassen unter anderem Folgendes:

  • Einheitliche Plattform: Azure Databricks bietet eine einheitliche Plattform, auf der Sie Ray-Anwendungen zusammen mit Apache Spark ausführen können. Diese Integration unterstützt nahtlose ETL-Datenvorgänge und eine effiziente Datenübertragung sowie leistungsstarkes paralleles Computing innerhalb der gleichen Computeumgebung.
  • Governance und Steuerung: Nutzen Sie die Vorteile der Nachverfolgung der Datenherkunft sowie die Datenversionsverwaltung und die Zugriffssteuerung mit Unity Catalog für alle Ihre Datenressourcen, Dateien, Modelle und vieles mehr, um Compliance und Sicherheit zu gewährleisten.
  • Infrastrukturverwaltung: Nutzen Sie Infrastrukturtools wie den Terraform-Anbieter und Ressourcenpakete von Azure Databricks, um Ihre Cluster und Aufträge zu verwalten und einen optimalen Betrieb sowie optimale Skalierbarkeit sicherzustellen.
  • Verwaltete Ray-Cluster: Ray-Cluster werden in der gleichen Ausführungsumgebung verwaltet wie ein ausgeführter Apache Spark-Cluster. Dadurch werden Skalierbarkeit, Zuverlässigkeit und Benutzerfreundlichkeit sichergestellt, ohne eine komplexe Infrastruktur einrichten zu müssen.
  • Modellbereitstellung und -überwachung: Verbinden Sie Modelle, die mit Ray Train trainiert wurden, mit Mosaic AI Model Serving, um von Bereitstellungen mit Hochverfügbarkeit und geringer Wartezeit zu profitieren. Verwenden Sie außerdem Lakehouse Monitoring, um Vorhersagequalität und Drift von Modellen nachzuverfolgen und eine konsistente Leistung sicherzustellen.
  • Verbesserte ML-Entwicklung: Profitieren Sie von der Integration in den vollständig verwalteten MLflow-Dienst von Azure Databricks, um Ihre Modellentwicklung nachzuverfolgen und die Experimentverwaltung sowie die Reproduzierbarkeit in allen Ihren Ray-Anwendungen zu vereinfachen.
  • Automatisierte Workflows: Verwenden Sie Azure Databricks-Workflows, um Ihre Prozesse zu automatisieren und dadurch für die Produktion geeignete Pipelines zu erstellen, die Ihre Abläufe optimieren und manuelle Eingriffe reduzieren.
  • Codeverwaltung und Zusammenarbeit: Verwalten Sie Ihren Code effizient mit Azure Databricks-Git-Ordnern. Dies ermöglicht eine nahtlose Git-Integration für die Versionskontrolle sowie eine zusammenarbeitsorientierte Entwicklung für Ihren Ray-Anwendungscode.
  • Effizienter Datenzugriff: Verbinden Sie Ray-Anwendungen mit Delta Lake, und nutzen Sie das umfangreiche Azure Databricks-Ökosystem von Datenintegrationen, um Ray-Funktionen auf ein breiteres Spektrum von Anwendungen und Ausgaben erweitern.

Durch die Ausführung von Ray in Azure Databricks erhalten Sie Zugang zu einem integrierten Ökosystem, das Ihre Datenverarbeitung, Ihr maschinelles Lernen und Ihre betrieblichen Workflows verbessert.

Anwendungsfälle: Maschinelles Lernen und mehr

Ray ist ein vielseitiges Tool, das die Funktionen von Python über die Grenzen von DataFrame-Vorgängen hinaus erweitert. Dadurch eignet sich Ray perfekt für stark angepasste und spezialisierte verteilte Algorithmen.

Machine Learning und Deep Learning

Nutzen Sie die Machine Learning-Bibliotheken von Ray, um Ihre ML-Workflows zu verbessern:

  • Hyperparameteroptimierung: Optimieren Sie die Modellleistung mit Ray Tune für eine leistungsfähige und skalierbare Hyperparametersuche.
  • Verteiltes Trainieren von Deep Learning-Modellen: Skalieren Sie Deep Learning-Modelle über mehrere Knoten hinweg – mit Unterstützung beliebter Frameworks wie PyTorch, TensorFlow, HuggingFace und Keras. Ideal zum Trainieren von Modellen für maschinelles Sehen oder für große Sprachmodelle (Large Language Models, LLMs).
  • Herkömmliches maschinelles Lernen: Verwenden Sie Ray, um Training, Auswertung und Batchrückschlüsse für herkömmliche ML-Modelle zu verteilen, die mit beliebten Bibliotheken wie Scikit-learn oder XGBoost erstellt wurden.

High Performance Computing (HPC)

Ray bietet eine überragende Leistung bei der Verteilung von HPC-Workloads und eignet sich somit für Folgendes:

  • Mathematische Berechnungen: Führen Sie mithilfe von Ray Core komplexe Berechnungen in Bereichen wie Physik, Genomik oder Finanzwesen durch, um von der effizienten parallelen Verarbeitung zu profitieren.
  • Zeitreihenvorhersage: Skalieren Sie Ihre Vorhersagemodelle, und führen Sie Schätzungen parallel zu Vorhersagepaketen wie Prophet oder ARIMA aus.

Datenverarbeitung und Feature Engineering

Ray eignet sich auch für diverse Datenverarbeitungsaufgaben:

  • Berechnete Features: Komplexe rechenintensive Feature Engineering-Aufgaben können von der verteilten Berechnungsarchitektur von Ray profitieren.
  • Audio-, Bild- und Videoverarbeitung: Verteilen und beschleunigen Sie die Verarbeitung von Multimediadaten. Ideal für Anwendungen in den Bereichen Spracherkennung, Bildklassifizierung und Videoanalyse.

Begrenzungen

  • Ray on Apache Spark wird für die Zugriffsmodi „Einzelbenutzer (zugewiesen)“ und „Keine Isolation, freigegeben“ sowie nur für Auftragscluster unterstützt. Ein Ray-Cluster kann nicht in Clustern initiiert werden, die serverlose Runtimes verwenden.
  • Vermeiden Sie die Verwendung von %pip, um Pakete in einem ausgeführten Ray-Cluster zu installieren, da der Cluster dadurch heruntergefahren wird. Installieren Sie Bibliotheken stattdessen vor der Clusterinitialisierung.
  • Die Verwendung von Integrationen, die die Konfiguration aus ray.util.spark.setup_ray_cluster überschreiben, kann dazu führen, dass der Ray-Cluster instabil wird. Vermeiden Sie die Verwendung zu vieler Abonnements für Ray-Clusterressourcen in Drittanbieteranwendungen.
  • Wenn Fehler wie ncclInternalError: Internal check failed auftreten, deutet dies auf ein Problem mit der Netzwerkkommunikation zwischen GPUs in Ihrem Cluster hin. Um diesen Fehler zu beheben, fügen Sie den folgenden Codeausschnitt in Ihrem Schulungscode hinzu, um die primäre Netzwerkschnittstelle zu verwenden.
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"