Ray pro běhové prostředí AI

Note

Pokud používáte Ray v prostředí Databricks classic compute s Databricks Runtime ML, viz Ray on Databricks.

Ray je open source framework pro škálování Python zátěží. Ray můžete spustit na AI runtime bez nastavení nebo správy základní GPU infrastruktury.

Proč používat Ray na AI Runtime

Ray se běžně používá k distribuci Python pracovních zátěží, jako je trénování modelů, dávková inference, zpracování dat a ladění hyperparametrů. Na AI Runtime může Ray přistupovat k datům v svazcích Unity Catalog, sledovat experimenty s MLflow a spouštět je jako součást produkčních workflow.

Můžete použít běžné Ray knihovny jako Ray Core, Ray Data, Ray Train a Ray Tune v AI Runtime. Stávající Ray workloady mohou nadále využívat standardní API knihoven.

Jak Ray pracuje s AI Runtime

Každá aplikace Ray běží na Ray clusteru, který může obsahovat jeden nebo více uzlů. AI Runtime zajišťuje uzly a Ray plánuje úkoly a aktéry napříč dostupnými CPU a GPU zdroji. Jak spustíte Ray, závisí na rozhraní pro vykonávání operací:

Rozhraní Nodes Spustit Ray
Notebook Jediný uzel připojený k notebooku Zavolejte ray_init() z AI Runtime SDK (databricks.air)
Příkazové rozhraní Databricks Pevná množina jednoho nebo více uzlů Spusťte hlavní uzel na uzlu 0 a připojte zbývající uzly jako pracovní uzly pomocí opakovaně použitelného bootstrap skriptu

Používejte Ray v poznámkových blocích

Když je váš notebook připojen k výpočetním prostředkům GPU AI Runtime, použijte ray_init() ze sady Databricks AI Runtime SDK k zahájení Ray na připojeném uzlu:

from databricks.air import ray_init

ray_init()

ray_init() volá standardní rozhraní API ray.init(), konfiguruje dashboard Ray pro přístup prostřednictvím proxy serveru ovladače Databricks a vypíše adresu URL dashboardu do výstupu notebooku. Použijte dashboard k prohlídce Ray úloh, úloh, aktérů, logů a využití zdrojů, zatímco váš kód běží.

Note

ray_init() vyžaduje verzi prostředí 5 a novější. Ve verzi 5 jej importujte z serverless_gpu namísto databricks.air. Databricks AI v6 obsahuje Ray. Pokud používáte standardní verzi 6, nainstalujte Ray před voláním ray_init(). Viz Nastavení prostředí.

Příklady poznámkových bloků

Example Description
Ray Core, ahoj světe Odesílejte asynchronní úlohy GPU na připojené výpočetní prostředky, sledujte plánování v dashboardu Ray a získejte výsledky.
Ladění hyperparametrů CIFAR-10 pomocí Ray Tune Spusť souběžné testy s dílčím přidělením GPU pro obrazový klasifikátor v PyTorchi a použij algoritmus asynchronního postupného půlení (ASHA) k včasnému ukončení málo výkonných konfigurací.
Dávková inference modelu Qwen2.5-32B pomocí Ray Data a vLLM Spusť vícejazyčné dávkové odvozování s osmi trvalými replikami vLLM na osmi GPU H100 a ulož výsledky ve formátu Parquet do svazku v Unity Catalog.

Použijte Ray s Databricks CLI

Příkazy Databricks CLI pro AI Runtime podporují Ray zátěže na jednom uzlu. V konfiguraci zátěže zadejte pevné accelerator_type a num_accelerators. Recept Qwen2.5-3B Ray Train obsahuje znovupoužitelný bootstrapový skript. V části command workloadu nastavte RAY_ENTRYPOINT na cestu k vašemu souboru Pythonu a spusťte spouštěcí skript. Bootstrap skript provádí následující:

  • Spustí hlavní uzel Ray na uzlu a spustí konfigurovaný vstupní bod.
  • Po dokončení vstupního bodu se procesy Ray zastaví.

V aplikaci se připojte ke clusteru s ray.init(address="auto").

Ve Standardním prostředí přidejte ray nebo požadované doplňky, například ray[data], ray[train], nebo ray[tune], k závislostem pracovní zátěže. Databricks AI v6 obsahuje Ray.

Příklady CLI

Example Description
Qwen2.5-3B jemné ladění s Ray Train Dolaďte Qwen2.5-3B s jedním distribuovaným paralelním procesem na GPU na uzlu s 8× H100 GPU.
Dávkové odvozování s Ray Data a vLLM Generujte odpovědi pomocí Qwen2.5-7B-Instruct a výsledky zapisujte do volume Unity Catalog jako Parquet.

Práce s daty a funkcemi Databricku

Úlohy Ray mohou přistupovat k datům ve svazcích Unity Catalog, zaznamenávat běhy pomocí MLflow a běžet jako úlohy služby Lakeflow Jobs definované pomocí Declarative Automation Bundles.

Přístup k datům v Unity Catalog

Pro tabulková data v tabulce Unity Catalog použijte ray.data.read_databricks_tables() k přečtení tabulky nebo spusť SQL dotaz přes Databricks SQL warehouse. Zadejte ID skladu, katalog a schéma, protože AI Runtime neposkytuje lokální Spark relaci. SQL můžete použít k provádění spojů, agregací a filtrů ještě před zpracováním výsledků Rayem.

Pro souborová a nestrukturovaná data použijte svazek Unity Catalog. Ray workeri mohou přistupovat k souborům pomocí svých /Volumes/<catalog>/<schema>/<volume>/... cest. Například Ray Data může číst soubory Parquet pomocí ray.data.read_parquet() a zapisovat výsledky pomocí Dataset.write_parquet().

Sledujte a orchestrujte pracovní zátěže

Použijte MLflow k zaznamenávání parametrů, metrik a artefaktů z Ray workloadu. Viz Sledování experimentu a pozorovatelnost.

K naplánování pracovní zátěže nebo jejímu zkombinování s úlohami přípravy dat na CPU použijte Lakeflow Jobs a Declarative Automation Bundles. Podívejte se na Plánování úloh GPU a vytváření úloh.

Migrace existujícího Ray workloadu

Migrace samostatně spravované pracovní zátěže Ray zahrnuje nahrazení její konfigurace infrastruktury a integrací služeb modelem spouštění AI Runtime.

Posuďte své pracovní vytížení

Před migrací si projděte omezení. Ověřte, že workload může běžet na clusteru s pevnou velikostí s jedním typem akcelerátoru.

Migrace pracovní zátěže

Migrace úlohy Ray spravované vlastními silami:

  1. Vyberte si notebook pro interaktivní vývoj nebo Databricks CLI pro odeslané úlohy.
  2. Mapujte stávající clusterové zdroje na typ a počet akcelerátorů AI Runtime. Vizte Hardware.
  3. Nahraďte stávající spouštění clusteru prvkem ray_init() v notebooku nebo zdokumentovaným bootstrap skriptem v úloze Databricks CLI.
  4. Deklarujte závislosti úlohy na Pythonu a aktualizujte cesty k datům, kontrolním bodům, modelu a výstupům.
  5. Ověřte pracovní zátěž na nejmenší použitelné konfiguraci. Potvrďte přístup k datům, požadavky na zdroje a výstupy před testováním zamýšlené pevné topologie.

Limitations

Ray na AI Runtime má následující omezení:

  • Ray cluster má pevný počet uzlů po dobu trvání pracovní zátěže. Automatické škálování shluků z rayů není podporováno.
  • Všechny uzly v zátěži používají stejný accelerator_type. Ray cluster nemůže obsahovat oddělené pracovní skupiny pouze CPU a GPU ani škálovat kapacitu CPU a GPU nezávisle.
  • Přístup k řídicímu panelu Ray prostřednictvím proxy ovladače Azure Databricks je dostupný pouze pro úlohy notebooků.
  • Ray běží na jednom uzlu, jak v notebocích, tak v Databricks CLI zátěžích.

Tip

Pokud příprava CPU a zpracování GPU mohou běžet jako samostatné fáze, použijte multitaskový Lakeflow Job a předávajte data mezi úkoly přes svazek Unity Catalog.