Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Als je Ray gebruikt op Databricks classic compute met Databricks Runtime ML, raadpleeg dan Ray on Databricks.
Ray is een open source framework voor het opschalen van Python-workloads. Je kunt Ray draaien op AI Runtime zonder de onderliggende GPU-infrastructuur te provisioneren of beheren.
Waarom Ray gebruiken op AI Runtime
Ray wordt vaak gebruikt om Python-workloads te verdelen, zoals modeltraining, batchinferentie, dataverwerking en hyperparameter-tuning. Op AI Runtime kan Ray data in Unity Catalog-volumes benaderen, experimenten met MLflow volgen en uitvoeren als onderdeel van productieworkflows.
Je kunt gebruikmaken van gangbare Ray-bibliotheken zoals Ray Core, Ray Data, Ray Train en Ray Tune op AI Runtime. Bestaande Ray-workloads kunnen de standaard API's van de bibliotheken blijven gebruiken.
Hoe Ray werkt met AI Runtime
Elke Ray-applicatie draait op een Ray-cluster, die één of meer knooppunten kan bevatten. AI Runtime richt de nodes in en Ray plant taken en actoren in over de beschikbare CPU- en GPU-resources van de nodes. Hoe je Ray start hangt af van de uitvoeringsinterface:
| Interface | Nodes | Ray starten |
|---|---|---|
| Notebook | De enkele node die aan het notitieboekje is gekoppeld | Roep ray_init() aan vanuit de AI Runtime SDK (databricks.air) |
| Databricks-CLI | Een vaste verzameling met één of meer knooppunten | Start het hoofd op node 0 en sluit de overgebleven nodes aan als workers met een herbruikbaar bootstrap-script |
Gebruik Ray in notitieboeken
Wanneer je notebook verbonden is met AI Runtime GPU-rekenkracht, gebruik dan ray_init() uit de Databricks AI Runtime SDK om Ray op de aangesloten node te starten:
from databricks.air import ray_init
ray_init()
ray_init() roept de standaard-API ray.init() aan, configureert het Ray-dashboard voor toegang via de Databricks-driverproxy, en print de dashboard-URL in de notebook-uitvoer. Gebruik het dashboard om Ray-jobs, taken, actoren, logs en resourcegebruik te bekijken terwijl je code wordt uitgevoerd.
Opmerking
ray_init() vereist omgevingsversie 5 en hoger. In versie 5 importeer je het uit serverless_gpu in plaats van databricks.air. Databricks AI v6 bevat Ray. Als je Standard v6 gebruikt, installeer dan Ray voordat je aanroept ray_init(). Zie Uw omgeving instellen.
Notebook-voorbeelden
| Example | Description |
|---|---|
| Ray Core hello world | Dien asynchrone GPU-taken in op gekoppelde compute, inspecteer de planning in het Ray-dashboard en haal de resultaten op. |
| CIFAR-10 hyperparameterafstemming met Ray Tune | Voer gelijktijdige trials met fractionele GPU's uit voor een PyTorch-beeldclassifier en gebruik het asynchrone successieve halveringsalgoritme (ASHA) om onderpresterende configuraties vroegtijdig te voorkomen. |
| Qwen2.5-32B batchinferentie met Ray Data en vLLM | Voer meertalige batchinferentie uit met acht persistente vLLM-replica's op 8 H100 GPU's en sla de resultaten op als Parquet in een Unity Catalog-volume. |
Gebruik Ray met de Databricks CLI
De Databricks CLI-commando's voor AI Runtime ondersteunen Ray-workloads voor zowel één knoop als meerdere knooppunten. In de workloadconfiguratie specificeer je een vaste accelerator_type en het totaal num_accelerators. De Ray Core-handleiding om aan de slag te gaan bevat een herbruikbaar bootstrap-script. Stel in de RAY_ENTRYPOINT van de workload command in op het pad van je Python-bestand en voer het bootstrap-script uit. Het bootstrap-script doet het volgende:
- Op node 0 start het de Ray-kop en draait het geconfigureerde entry-point.
- Op elke andere node start het een Ray-worker en houdt die verbonden terwijl het entrypoint draait.
- Nadat het ingangspunt klaar is, stopt het de Ray-processen.
In de applicatie maak je via ray.init(address="auto") verbinding met het cluster.
Voeg in de Standard-omgeving ray of de vereiste extra, zoals ray[data], ray[train] of ray[tune], toe aan de workloadafhankelijkheden. Databricks AI v6 bevat Ray.
Begin met Ray
De volgende minimale voorbeelden introduceren de hoofdbibliotheken van Ray en delen hetzelfde cluster bootstrap-patroon.
| Example | Description |
|---|---|
| Ray Core | Start een Ray-cluster op twee A10 GPU's en plan één Ray Core-taak per GPU in. |
| Ray Train | Train een kleine multilayer perceptron op synthetische data met één Ray Train-worker per GPU. |
| Ray Data | Voer een synthetische dataverwerkingspijplijn uit over een Ray-cluster. |
| Ray Tune | Stem een kleine multilayer perceptron af op synthetische data met één proef per GPU. |
Aanvullende CLI-voorbeelden
| Example | Description |
|---|---|
| ResNet-50 fine-tuning met Ray Train | Fijn afstellen van ResNet-50 met één gedistribueerde data-parallelle worker per A10 GPU over twee nodes. |
| Qwen2.5-3B fine-tuning met Ray Train | Fijn afstellen van Qwen2.5-3B met één distributed data parallel worker per GPU op een 8x H100-node. |
| Batchinferentie met Ray Data en vLLM | Genereer antwoorden met Qwen2.5-7B-Instruct en schrijf de resultaten weg naar een Unity Catalog-volume als Parquet. |
| LoRA-hyperparameterzoektocht met Ray Tune | Zoek in LoRA-configuraties voor Qwen2.5-0.5B over vier A10 GPU's en stop slecht presterende proeven met de ASHA-planner. |
| XGBoost hyperparameterzoektocht met Ray Tune | Zoek XGBoost-hyperparameters over vier A10 GPU's, log de beste configuratie in MLflow en registreer het model in de Unity Catalog. |
Werk met gegevens en Databricks-functies
Ray-workloads kunnen toegang krijgen tot gegevens in Unity Catalog-volumes, runs registreren met MLflow en worden uitgevoerd als Lakeflow Jobs-taken die zijn gedefinieerd met Declarative Automation Bundles.
Toegangsgegevens in de Unity-catalogus
Voor tabelvormige gegevens in een Unity Catalog-tabel kun je ray.data.read_databricks_tables() een tabel inlezen of een SQL-query uitvoeren via een Databricks SQL-warehouse. Specificeer de warehouse-ID, catalogus en schema, want AI Runtime levert geen lokale Spark-sessie. Je kunt SQL gebruiken om joins, aggregaties en filters uit te voeren voordat Ray de resultaten verwerkt.
Voor bestandsgebaseerde en ongestructureerde data gebruik je een Unity Catalog-volume. Ray workers kunnen toegang krijgen tot bestanden via hun /Volumes/<catalog>/<schema>/<volume>/...-paden. Ray Data kan bijvoorbeeld Parquet-bestanden lezen met ray.data.read_parquet() en resultaten schrijven met Dataset.write_parquet().
Volg en orkestreer workloads
Gebruik MLflow om parameters, metrics en artefacten van een Ray-workload vast te leggen. Zie het bijhouden van experimenten en observabiliteit.
Om de werklast te plannen of samen te stellen met CPU-datavoorbereidingstaken, gebruik je Lakeflow Jobs en Declarative Automation Bundles. Zie GPU-workloads plannen en taken samenstellen.
Migreer een bestaande Ray-werklast
Het migreren van een zelfbeheerde Ray-werklast houdt in dat de infrastructuurconfiguratie en service-integraties worden vervangen door het AI Runtime-uitvoeringsmodel.
Uw workload evalueren
Voordat je migreert, bekijk de beperkingen. Bevestig dat de workload kan draaien op een cluster van vaste grootte met één type accelerator.
Migreer de werklast
Om een zelf beheerde Ray-werklast te migreren:
- Kies een notebook voor interactieve, single-node ontwikkeling of de Databricks CLI voor single- of multi-node taken.
- Koppel de bestaande clusterbronnen aan een AI Runtime-versnellertype en versnelleraantal. Zie Hardware-opties.
- Vervang de bestaande cluster-opstart door
ray_init()in een notebook of de gedocumenteerde head- en worker-bootstrap in een Databricks CLI-workload. - Verklaar de Python-afhankelijkheden van de werklast en werk de data-, checkpoint-, model- en outputpaden bij.
- Valideer de werklast op de kleinste toepasbare configuratie. Bevestig de gegevenstoegang, resourceverzoeken en uitvoer voordat je de beoogde vaste topologie test.
Limitations
Ray on AI Runtime heeft de volgende beperkingen:
- Het Ray-cluster heeft een vast aantal nodes gedurende de uitvoering van een workload. Ray cluster autoscaling wordt niet ondersteund.
- Alle nodes in een workload gebruiken hetzelfde
accelerator_type. Een Ray-cluster kan geen aparte CPU- en GPU-workergroepen bevatten of CPU- en GPU-capaciteit onafhankelijk opschalen. - Een notebook start Ray op zijn aangesloten enkele node. Gebruik de Databricks CLI voor een multi-node Ray cluster.
- Ray-dashboardtoegang via de Databricks driver proxy is momenteel alleen beschikbaar voor notebook-workloads.
Tip
Als CPU-voorbereiding en GPU-verwerking als aparte fasen kunnen draaien, gebruik dan een multitask-Lakeflow-taak en geef gegevens tussen de taken door via een Unity Catalog-volume.