Ray pro běhové prostředí AI

Important

Tato funkce je ve verzi Public Preview.

Poznámka:

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() z 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ěží.

Poznámka:

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í jednouzlové i víceuzlové úlohy Ray. V konfiguraci zátěže zadejte pevné accelerator_type a celkový počet num_accelerators. Úvodní návod k Ray Core obsahuje znovupoužitelný bootstrap 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í:

  • Na uzlu 0 spustí Ray hlavu a spustí konfigurovaný vstupní bod.
  • Na všech ostatních uzlech spustí pracovní proces Ray a udržuje ho připojený po dobu běhu vstupního procesu.
  • 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.

Začněte s Rayem

Následující minimální příklady představují hlavní knihovny Ray a sdílejí stejný postup inicializace clusteru.

Example Description
Ray Core Spusť Ray cluster na dvou A10 GPU a naplánuj jednu Ray Core úlohu na každé GPU.
Ray Train Trénujte malý vícevrstvý perceptron na syntetických datech s jedním workerem Ray Train na každé GPU.
Ray Data Spusť pipeline pro zpracování syntetických dat v clusteru Ray.
Ray Tune Ladit malý vícevrstvý perceptron na syntetických datech s jednou zkouškou na GPU.

Další příklady CLI

Example Description
Jemné ladění ResNet-50 s Ray Train Dolaďte ResNet-50 s jedním distribuovaným paralelním datovým procesem na každé GPU A10 na dvou uzlech.
Qwen2.5-3B jemné ladění s Ray Train Jemně doladit Qwen2.5-3B s jedním procesem Distributed Data Parallel na každé 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.
Vyhledávání hyperparametrů LoRA pomocí Ray Tune Vyhledejte konfigurace LoRA pro Qwen2.5-0.5B na čtyřech GPU A10 a zastavte podprůměrné pokusy pomocí ASHA plánovače.
XGBoost vyhledávání hyperparametrů pomocí Ray Tune Proveďte ladění hyperparametrů XGBoost na čtyřech GPU A10, zaznamenejte nejlepší konfiguraci do MLflow a zaregistrujte model v Unity Catalog.

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. Viz Plánujte úlohy GPU a sestavujte úlohy.

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 na jednom uzlu nebo Databricks CLI pro úlohy s jedním uzlem nebo více uzly.
  2. Mapujte stávající clusterové zdroje na typ a počet akcelerátorů AI Runtime. Viz Hardwarové možnosti.
  3. Nahraďte stávající spouštění clusteru pomocí ray_init() v notebooku nebo zdokumentovaným zaváděcím postupem pro řídicí a pracovní uzel 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.

Omezení

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.
  • Notebook spustí Ray na svém připojeném jediném uzlu. Použijte Databricks CLI pro víceuzlový Ray cluster.
  • Přístup k Ray dashboardu přes proxy ovladače Databricks je v současnosti dostupný pouze pro pracovní zátěže notebooků.

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.