Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Important
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Anmärkning
Om du använder Ray på Databricks klassiska beräkning med Databricks Runtime ML, se Ray på Databricks.
Ray är ett open-source-ramverk för att skala Python-arbetsbelastningar. Du kan köra Ray på AI Runtime utan att provisionera eller hantera den underliggande GPU-infrastrukturen.
Varför använda Ray på AI Runtime
Ray används ofta för att distribuera Python-arbetsbelastningar såsom modellträning, batchinferens, databehandling och hyperparameteroptimering. På AI Runtime kan Ray komma åt data i Unity-katalogvolymer, spåra experiment med MLflow och köra som en del av produktionsarbetsflöden.
Du kan använda vanliga Ray-bibliotek som Ray Core, Ray Data, Ray Train och Ray Tune på AI Runtime. Befintliga Ray-arbetsbelastningar kan fortsätta använda bibliotekens standard-API:er.
Hur Ray fungerar med AI Runtime
Varje Ray-applikation körs på ett Ray-kluster, som kan innehålla en eller flera noder. AI Runtime tillhandahåller noderna, och Ray schemalägger uppgifter och aktörer över deras tillgängliga CPU- och GPU-resurser. Hur du startar Ray beror på exekveringsgränssnittet:
| Interface | Nodes | Starta Ray |
|---|---|---|
| Notebook | Den enda noden som är ansluten till anteckningsboken | Ring ray_init() från paketet serverless_gpu |
| Databricks kommandoradsgränssnitt (CLI) | En fast mängd av en eller flera noder | Starta huvudnoden på nod 0 och anslut de återstående noderna som arbetsnoder med ett återanvändbart bootstrap-skript |
Använd Ray i anteckningsböcker
När din notebook är ansluten till AI Runtime GPU-beräkning, använd ray_init() från paketet serverless_gpu för att starta Ray på den anslutna noden:
from serverless_gpu import ray_init
ray_init()
ray_init() anropar standard-ray.init()-API:t, konfigurerar Ray-dashboarden för åtkomst via Databricks-drivrutinsproxyn och skriver ut URL:en till dashboarden i notebookens utdata. Använd instrumentpanelen för att inspektera Ray-jobb, uppgifter, aktörer, loggar och resursanvändning medan din kod körs.
Anmärkning
ray_init() Kräver miljöversion 5 och uppåt. Databricks AI v6 inkluderar Ray. Om du använder Standard v6, installera Ray innan du anropar ray_init(). Se Konfigurera din miljö.
Notebook-exempel
| Example | Description |
|---|---|
| Ray Core Hej världen | Skicka in asynkrona GPU-uppgifter på ansluten beräkning, inspektera schemaläggningen i Ray-dashboarden och hämta resultaten. |
| CIFAR-10 hyperparameterinställning med Ray Tune | Kör samtidiga fraktionella GPU-tester för en PyTorch-bildklassificerare och använd den asynkrona successiva halveringsalgoritmen (ASHA) för att stoppa underpresterande konfigurationer tidigt. |
| Qwen2.5-32B batchinferens med Ray Data och vLLM | Kör flerspråkig batchinferens med åtta persistenta vLLM-repliker på 8 H100-GPU:er och spara resultaten som Parquet i en Unity Catalog-volym. |
Använd Ray med Databricks CLI
Databricks CLI-kommandon för AI Runtime stödjer Ray-arbetsbelastningar med både en nod och en flernod. I konfigurationen för arbetsbelastningen anger du ett fast accelerator_type och det totala num_accelerators.
Ray Core-receptet för att komma igång inkluderar ett återanvändbart bootstrap-skript. I arbetsbelastningens command, ställ RAY_ENTRYPOINT in sökvägen för din Python-fil och kör bootstrap-skriptet. Bootstrap-skriptet gör följande:
- På nod 0 startar den Ray-huvudet och kör den konfigurerade ingångspunkten.
- På varannan nod startar den en Ray-arbetare och håller den ansluten medan ingångspunkten körs.
- När ingångspunkten är klar stoppar den Ray-processerna.
I applikationen, koppla till klustret med ray.init(address="auto").
Med Standard-miljön, lägg till ray eller det nödvändiga tillägget, såsom ray[data], ray[train], eller ray[tune], till arbetsbelastningsberoendena. Databricks AI v6 inkluderar Ray.
Kom igång med Ray
Följande minimala exempel introducerar de huvudsakliga Ray-biblioteken och delar samma kluster-bootstrap-mönster.
| Example | Description |
|---|---|
| Ray Core | Starta ett Ray-kluster på två A10-GPU:er och schemalägg en Ray Core-uppgift per GPU. |
| Ray Train | Träna en liten flerskiktsperceptron på syntetisk data med en Ray Train-arbetare per GPU. |
| Ray Data | Kör en syntetisk databehandlingspipeline över ett Ray-kluster. |
| Ray Tune | Justera ett litet flerskiktsperceptron på syntetisk data med en körning per GPU. |
Ytterligare exempel på CLI
| Example | Description |
|---|---|
| Finjustering av ResNet-50 med Ray Train | Finjustera ResNet-50 med en distribuerad dataparallell process per A10-GPU över två noder. |
| Qwen2.5-3B finjustering med Ray Train | Finjustera Qwen2.5-3B med en DDP-worker per GPU på en 8x H100-nod. |
| Batch-slutsatsdragning med Ray Data och vLLM | Generera svar med Qwen2.5-7B-Instruct och skriv resultaten till en Unity Catalog-volym som Parquet. |
| Sökning efter LoRA-hyperparametrar med Ray Tune | Sök efter LoRA-konfigurationer för Qwen2.5-0.5B över fyra A10-GPU:er och stoppa underpresterande försök med ASHA-schemaläggaren. |
| Sökning efter hyperparametrar med Ray Tune | Sök igenom XGBoost-hyperparametrar över fyra A10-GPU:er, logga den bästa konfigurationen i MLflow och registrera modellen i Unity Catalog. |
Arbeta med data- och Databricks-funktioner
Ray-arbetslaster kan få åtkomst till data i Unity Catalog-volymer, registrera körningar med MLflow och köras som uppgifter i Lakeflow Jobs som definieras med deklarativa automatiseringspaket.
Åtkomstdata i Unity-katalogen
För tabelldata i en tabell i Unity Catalog använder du ray.data.read_databricks_tables() för att läsa en tabell eller köra en SQL-fråga via ett Databricks SQL Warehouse. Ange lager-ID, katalog och schema eftersom AI Runtime inte tillhandahåller en lokal Spark-session. Du kan använda SQL för att utföra joins, aggregeringar och filter innan Ray bearbetar resultaten.
För filbaserad och ostrukturerad data, använd en Unity Catalog-volym. Ray-arbetare kan komma åt filer via sina /Volumes/<catalog>/<schema>/<volume>/... vägar. Till exempel kan Ray Data läsa Parquet-filer med ray.data.read_parquet() och skriva resultat med Dataset.write_parquet().
Spåra och orkestrera arbetsbelastningar
Använd MLflow för att registrera parametrar, mätvärden och artefakter från en Ray-arbetsbelastning. Se Experimentspårning och observerbarhet.
För att schemalägga arbetsbelastningen eller kombinera den med CPU-baserade dataförberedelseuppgifter använder du Lakeflow Jobs och deklarativa automatiseringspaket. Se Schemalägg GPU-arbetsbelastningar och skapa uppgifter.
Migrera en befintlig Ray-arbetsbelastning
Att migrera en självhanterad Ray-arbetsbelastning innebär att ersätta dess infrastrukturkonfiguration och tjänsteintegrationer med körningsmodellen AI Runtime.
Utvärdera din arbetsbelastning
Innan du migrerar, gå igenom begränsningarna. Bekräfta att arbetsbelastningen kan köras på ett kluster av fast storlek med en acceleratortyp.
Migrera arbetsbelastningen
För att migrera en självhanterad Ray-arbetsbelastning:
- Välj en anteckningsbok för interaktiv utveckling med en nod eller Databricks CLI för jobb med en eller flera noder.
- Mappa de befintliga klusterresurserna till en AI Runtime-acceleratortyp och acceleratorantal. Se hårdvarualternativ.
- Byt ut den befintliga klusterstarten mot
ray_init()i en anteckningsbok eller den dokumenterade head- och worker-bootstrapen i en Databricks CLI-arbetsbelastning. - Deklarera arbetsbelastningens Python-beroenden och uppdatera dess data-, kontrollpunkt-, modell- och utdatavägar.
- Validera arbetsbelastningen på den minsta tillämpliga konfigurationen. Bekräfta dess dataåtkomst, resursförfrågningar och utdata innan du testar den avsedda fasta topologin.
Limitations
Ray på AI Runtime har följande begränsningar:
- Ray-klustret har ett fast antal noder under arbetsbelastningens varaktighet. Autoskalning av Ray-kluster stöds inte.
- Alla noder i en arbetsbelastning använder samma
accelerator_type. Ett Ray-kluster kan inte innehålla separata CPU- och GPU-arbetsgrupper eller skala CPU- och GPU-kapacitet oberoende av varandra. - En notebook startar Ray på den anslutna enskilda noden. Använd Databricks CLI för ett multinod-raykluster.
- Åtkomst till Ray-dashboarden via Databricks drivrutinsproxy är för närvarande endast tillgänglig för arbetsbelastningar i notebookar.
Tip
Om CPU-förberedelse och GPU-bearbetning kan köras som separata steg, använd ett multitask-Lakeflow-jobb och skicka data mellan uppgifterna genom en Unity Catalog-volym.