Delen via


Wat is Ray in Azure Databricks?

Ray is een opensource-framework voor het schalen van Python-toepassingen. Het omvat bibliotheken die specifiek zijn voor AI-workloads, waardoor deze met name geschikt zijn voor het ontwikkelen van AI-toepassingen. Met Ray op Azure Databricks kunt u Ray-toepassingen uitvoeren terwijl u alle platformvoordelen en -functies van Azure Databricks krijgt.

Met Ray 2.3.0 en hoger kunt u Ray-clusters maken en Ray-toepassingen uitvoeren op Apache Spark-clusters met Azure Databricks.

Zie de Ray-documentatie voor informatie over hoe u aan de slag gaat met machine learning op Ray, inclusief zelfstudies en voorbeelden. Zie de documentatie van Ray on Spark API voor meer informatie over de Integratie van Ray en Apache Spark.

Zie de andere artikelen in deze sectie.

Wat is Ray?

Ray vereenvoudigt gedistribueerde systemen door eenvoudige Python-primitieven te bieden om volledig nieuwe gedistribueerde toepassingen te maken. Voor Python-ontwikkelaars die nog geen deel hebben van gedistribueerde systemen, biedt het hetzelfde gebruiksgemak als standaard Python tijdens het beheren van indeling, planning en fouttolerantie.

Ray en Apache Spark zijn complementaire frameworks. Ray excelt bij logisch parallellisme, het verwerken van dynamische, rekenintensieve taken, zoals machine learning en versterkingsleer. Apache Spark is gespecialiseerd in gegevensparallellisme, waarbij grote gegevenssets efficiënt worden verwerkt voor taken zoals ETL en gegevensanalyse. Samen bieden ze een krachtige combinatie voor zowel gegevensverwerking als complexe berekeningen.

Waarom Ray uitvoeren op Azure Databricks?

Als u Ray uitvoert op Azure Databricks, kunt u gebruikmaken van de breedte van het Azure Databricks-ecosysteem, waardoor gegevensverwerking en machine learning-werkstromen worden verbeterd met services en integraties die niet beschikbaar zijn in open source Ray. De voordelen van het uitvoeren van Ray in Azure Databricks zijn onder andere:

  • Geïntegreerd platform: Azure Databricks biedt een geïntegreerd platform waar u Ray-toepassingen naast Apache Spark kunt uitvoeren. Deze integratie ondersteunt naadloze ETL-bewerkingen voor gegevens, efficiënte gegevensoverdracht en krachtige parallelle computing binnen dezelfde rekenomgeving.
  • Beheer en beheer: profiteer van de voordelen van het bijhouden van herkomst, het versiebeheer van gegevens en toegangsbeheer met Unity Catalog voor al uw gegevensassets, bestanden, modellen en meer, en zorgen voor naleving en beveiliging.
  • Infrastructuurbeheer: gebruik infrastructuurhulpprogramma's zoals de Azure Databricks Terraform Provider en Azure Databricks Asset Bundles om uw clusters en taken te beheren, zodat gestroomlijnde bewerkingen en schaalbaarheid worden gegarandeerd.
  • Beheerde Ray-clusters: Ray-clusters worden beheerd in dezelfde uitvoeringsomgeving als een actief Apache Spark-cluster. Dit zorgt voor schaalbaarheid, betrouwbaarheid en gebruiksgemak zonder dat u complexe infrastructuur hoeft in te stellen.
  • Model leveren en bewaken: Verbind modellen die zijn getraind met Ray Train met Mosaic AI Model Serving voor implementaties met hoge beschikbaarheid en lage latentie. Daarnaast gebruikt u Lakehouse Monitoring om de kwaliteit en afwijking van modelvoorspelling bij te houden, waardoor consistente prestaties worden gegarandeerd.
  • Verbeterde ML-ontwikkeling: integreer met de volledig beheerde Azure Databricks MLflow-service om uw modelontwikkeling bij te houden, experimentbeheer en reproduceerbaarheid in uw Ray-toepassingen te vergemakkelijken.
  • Geautomatiseerde werkstromen: Gebruik Azure Databricks-werkstromen om uw processen te automatiseren, pijplijnen te maken die gereed zijn voor productie waarmee uw bewerkingen worden gestroomlijnd en handmatige interventie worden verminderd.
  • Codebeheer en samenwerking: Beheer uw code efficiënt met Azure Databricks Git-mappen, waardoor naadloze Git-integratie mogelijk is voor versiebeheer en gezamenlijke ontwikkeling voor uw Ray-toepassingscode.
  • Efficiënte gegevenstoegang: Verbind Ray-toepassingen met Delta Lake, waarbij gebruik wordt gemaakt van het brede ecosysteem van gegevensintegraties van Azure Databricks om de mogelijkheden van Ray uit te breiden naar een breder scala aan toepassingen en uitvoer.

Door Ray uit te voeren op Azure Databricks krijgt u toegang tot een geïntegreerd ecosysteem dat uw gegevensverwerking, machine learning en operationele werkstromen verbetert.

Use cases - machine learning en meer

Ray is een veelzijdig hulpprogramma dat de mogelijkheden van Python uitbreidt buiten de beperkingen van DataFrame-bewerkingen, waardoor het ideaal is voor zeer aangepaste en gespecialiseerde gedistribueerde algoritmen.

Machine learning en deep learning

Maak gebruik van machine learning-bibliotheken van Ray om uw ML-werkstromen te verbeteren:

  • Hyperparameterafstemming: modelprestaties optimaliseren met Ray Tune voor krachtige en schaalbare hyperparameterzoekopdrachten.
  • Gedistribueerde deep learning-training: Schaal deep learning-modellen op meerdere knooppunten met ondersteuning voor populaire frameworks zoals PyTorch, TensorFlow, HuggingFace en Keras. Ideaal voor het trainen van modellen voor computer vision of grote taalmodellen (LLM's).
  • Traditionele machine learning: Gebruik Ray om training, evaluatie en batchdeductie te distribueren voor traditionele ML-modellen die zijn gebouwd met populaire bibliotheken zoals scikit-learn of XGBoost.

High Performance Computing (HPC)

Ray excelt in het distribueren van HPC-workloads, waardoor deze geschikt is voor:

  • Wiskundige berekeningen: complexe berekeningen uitvoeren in velden zoals natuurkunde, genomics of financiën met behulp van Ray Core voor efficiënte parallelle verwerking.
  • Tijdreeksprognose: schaal uw prognosemodellen en voer schattingen gelijktijdig uit met prognosespakketten zoals Prophet of ARIMA.

Gegevensverwerking en functie-engineering

Ray kan ook verschillende gegevensverwerkingstaken verwerken:

  • Berekende functies: complexe engineeringtaken voor rekenintensieve functies kunnen profiteren van de gedistribueerde berekeningsarchitectuur van Ray.
  • Audio-, afbeeldings- en videoverwerking: distribueer en versnel de verwerking van multimediagegevens, waardoor het ideaal is voor toepassingen in spraakherkenning, afbeeldingsclassificatie en videoanalyse.

Beperkingen

  • Ray op Apache Spark wordt ondersteund voor de toegangsmodus voor één gebruiker (toegewezen), geen isolatiemodus voor gedeelde toegang en alleen voor taakclusters. Een Ray-cluster kan niet worden gestart op clusters met behulp van serverloze runtimes.
  • Voorkom dat pakketten worden geïnstalleerd %pip op een actief Ray-cluster, omdat het cluster wordt afgesloten. Installeer in plaats daarvan bibliotheken voordat u het cluster initialiseert.
  • Als u integraties gebruikt waarmee de configuratie ray.util.spark.setup_ray_cluster wordt overschreven, kan dit ertoe leiden dat het Ray-cluster instabiel wordt. Vermijd te veel abonneren op Ray-clusterbronnen in toepassingen van derden.
  • Als er fouten optreden zoals ncclInternalError: Internal check failed, geeft dit een probleem aan met netwerkcommunicatie tussen GPU's in uw cluster. Als u deze fout wilt oplossen, voegt u het volgende codefragment toe aan uw trainingscode om de primaire netwerkinterface te gebruiken.
import os
os.environ["NCCL_SOCKET_IFNAME"] = "eth0"