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.
Exemplen på Ray hello world 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.
CLI-exempel
| Example | Description |
|---|---|
| Ray-exempel för Hej världen | Minimala exempel med en och flera noder för Ray Core, Ray Train, Ray Data och Ray Tune, inklusive kluster-bootstrap-mönstret. |
| Distribuerad träning med Ray Train | Finjustera en stor språkmodell över 8 H100-GPU:er på en enda nod med hjälp av Ray Train och PyTorch. |
| Batch-slutsatsdragning med Ray Data och vLLM | Kör storskalig batchinferens med Ray Data för distribuerad dataladdning och vLLM för effektiv modellservering. |
| Hyperparametersökning med Ray Tune | Sök hyperparametrar för LoRA-finjustering av Qwen2.5 med Ray Tune, där ett experiment körs per GPU och svagt presterande experiment stoppas tidigt med ASHA-schemaläggaren. |
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.