Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Se utilizzi Ray su Databricks Classic Compute con Databricks Runtime ML, consulta Ray su Databricks.
Ray è un framework open source per la scalabilità di carichi di lavoro Python. Puoi eseguire Ray su AI Runtime senza fare provisioning o gestire l'infrastruttura GPU sottostante.
Perché usare Ray su Runtime AI
Ray è comunemente utilizzato per distribuire carichi di lavoro Python come l'addestramento dei modelli, l'inferenza batch, l'elaborazione dati e la sintonia degli iperparametri. Su AI Runtime, Ray può accedere ai dati nei volumi del catalogo Unity, monitorare esperimenti con MLflow ed eseguire come parte dei flussi di lavoro di produzione.
Puoi usare librerie Ray comuni come Ray Core, Ray Data, Ray Train e Ray Tune su AI Runtime. I carichi di lavoro Ray esistenti possono continuare a utilizzare le API standard delle librerie.
Come funziona Ray con AI Runtime
Ogni applicazione Ray gira su un cluster Ray, che può contenere uno o più nodi. AI Runtime fornisce i nodi e Ray programma compiti e attori sulle risorse disponibili di CPU e GPU. Come inizi Ray dipende dall'interfaccia di esecuzione:
| Interfaccia | Nodes | Inizio di Ray |
|---|---|---|
| Notebook | Il singolo nodo collegato al quaderno | Chiama ray_init() dall'SDK di esecuzione AI (databricks.air) |
| Interfaccia a riga di comando di Databricks | Un insieme fisso di uno o più nodi | Avvia la testa sul nodo 0 e unisci i nodi rimanenti come worker usando uno script bootstrap riutilizzabile |
Usa Ray nei quaderni
Quando il tuo notebook è collegato al calcolo della GPU AI Runtime, usa ray_init() dall'SDK Databricks AI Runtime per avviare Ray sul nodo collegato:
from databricks.air import ray_init
ray_init()
ray_init() chiama l'API standard ray.init(), configura il dashboard Ray in modo che sia accessibile tramite il proxy del driver Databricks e stampa l'URL del dashboard nell'output del notebook. Usa la dashboard per ispezionare i lavori, le attività, gli attori, i log e l'utilizzo delle risorse Ray mentre il tuo codice viene eseguito.
Annotazioni
ray_init() Richiede la versione 5 e superiore dell'ambiente. Nella versione 5, importalo da serverless_gpu invece di databricks.air. Databricks AI v6 include Ray. Se usi Standard v6, installa Ray prima di chiamare ray_init(). Vedi Configurare l'ambiente.
Esempi di notebook
| Example | Description |
|---|---|
| Ray Core hello world | Invia compiti asincroni della GPU su un calcolo collegato, ispeziona la pianificazione nella dashboard Ray e recupera i risultati. |
| Ottimizzazione degli iperparametri di CIFAR-10 con Ray Tune | Esegui esperimenti simultanei con frazioni di GPU per un classificatore di immagini con PyTorch e utilizza l'algoritmo asincrono di successive halving (ASHA) per interrompere anticipatamente le configurazioni meno performanti. |
| Inferenza in batch con Qwen2.5-32B, Ray Data e vLLM | Esegui inferenza batch multilingue con otto repliche vLLM persistenti su 8 GPU H100 e salva i risultati in formato Parquet in un volume Unity Catalog. |
Usa Ray con la CLI di Databricks
I comandi CLI Databricks per AI Runtime supportano carichi di lavoro Ray a nodo singolo e multi-nodo. Nella configurazione del carico di lavoro, specificare un fisso accelerator_type e il totale num_accelerators. La ricetta per iniziare con Ray Core include uno script bootstrap riutilizzabile. Nel carico di lavoro command, imposta RAY_ENTRYPOINT sul percorso del file Python e quindi esegui lo script di bootstrap. Lo script bootstrap fa quanto segue:
- Al nodo 0, avvia la testa Ray ed esegue il punto di ingresso configurato.
- Su ogni altro nodo, avvia un worker Ray e lo mantiene connesso mentre il punto di ingresso è attivo.
- Dopo che il punto di ingresso è terminato, si fermano i processi Ray.
Nell'applicazione, collegarsi al cluster con ray.init(address="auto").
Con l'ambiente Standard, aggiungi ray o l'elemento aggiuntivo richiesto, come ray[data], ray[train] o ray[tune], alle dipendenze del workload. Databricks AI v6 include Ray.
Inizia con Ray
I seguenti esempi minimi introducono le librerie principali Ray e condividono lo stesso pattern bootstrap del cluster.
| Example | Description |
|---|---|
| Ray Core | Avvia un cluster Ray su due GPU A10 e programma un compito Ray Core per ogni GPU. |
| Ray Train | Addestra un piccolo perceptrone multilayer su dati sintetici con un worker Ray Train per GPU. |
| Dati dei raggi | Esegui una pipeline di elaborazione dati sintetica su un cluster Ray. |
| Ray Tune | Regolare un piccolo perceptrone multistrato su dati sintetici con una prova per GPU. |
Esempi aggiuntivi di CLI
| Example | Description |
|---|---|
| Fine-tuning di ResNet-50 con Ray Train | Esegui il fine-tuning di ResNet-50 con un worker di parallelismo dati distribuito per GPU A10 su due nodi. |
| Qwen2.5-3B fine-tuning con Ray Train | Ottimizzare Qwen2.5-3B con un worker Distributed Data Parallel per GPU su un nodo H100 8x. |
| Inferenza batch con Ray Data e vLLM | Genera risposte con Qwen2.5-7B-Instruct e scrivi i risultati in un volume del Catalogo Unity come Parquet. |
| Ricerca iperparametrica LoRA con Ray Tune | Cerca configurazioni LoRA per Qwen2.5-0.5B su quattro GPU A10 e interrompi le prove con prestazioni insufficienti con lo scheduler ASHA. |
| Ricerca iperparametrica XGBoost con Ray Tune | Cerca iperparametri XGBoost su quattro GPU A10, registra la configurazione migliore su MLflow e registra il modello nel Catalogo Unity. |
Lavoro con dati e funzionalità di Databricks
I carichi di lavoro Ray possono accedere ai dati nei volumi del Catalogo Unity, registrare le esecuzioni con MLflow ed eseguire come compiti Lakeflow Jobs definiti con Declarative Automation Bundles.
Accesso ai dati nel Catalogo Unity
Per i dati tabellari in una tabella Unity Catalog, usare ray.data.read_databricks_tables() per leggere una tabella o eseguire una query SQL tramite un Databricks SQL warehouse. Specifica l'ID del warehouse, il catalogo e lo schema perché AI Runtime non fornisce una sessione Spark locale. Puoi usare SQL per eseguire join, aggregazioni e filtri prima che Ray elabori i risultati.
Per dati basati su file e non strutturati, usa un volume Unity Catalog. I worker di Ray possono accedere ai file tramite i rispettivi percorsi /Volumes/<catalog>/<schema>/<volume>/.... Ad esempio, Ray Data può leggere file Parquet con ray.data.read_parquet() e scrivere risultati con Dataset.write_parquet().
Tracciare e orchestrare i carichi di lavoro
Usa MLflow per registrare parametri, metriche e artefatti da un carico di lavoro Ray. Vedi Tracciamento e osservabilità degli esperimenti.
Per programmare il carico di lavoro o comporlo con compiti di preparazione dati CPU, usa Lakeflow Jobs e Declarative Automation Bundles. Consulta la pagina Pianificare i carichi di lavoro GPU e creare attività.
Esegui la migrazione di un carico di lavoro Ray esistente
La migrazione di un carico di lavoro Ray autogestito comporta la sostituzione della configurazione dell'infrastruttura e delle integrazioni dei servizi con il modello di esecuzione AI Runtime.
Valutare il carico di lavoro
Prima di migrare, esamina i limiti. Conferma che il carico di lavoro possa funzionare su un cluster di dimensioni fisse con un solo tipo di acceleratore.
Eseguire la migrazione del carico di lavoro
Per migrare un carico di lavoro Ray autogestito:
- Scegli un notebook per lo sviluppo interattivo a nodo singolo oppure la CLI Databricks per lavori a nodo singolo o multinodo.
- Mappate le risorse del cluster esistenti al tipo di acceleratore e al numero di acceleratori di AI Runtime. Vedi Hardware.
- Sostituisci l'avvio del cluster esistente con
ray_init()in un notebook o con il bootstrap documentato per head e worker in un workload della CLI di Databricks. - Specifica le dipendenze Python del carico di lavoro e aggiorna i percorsi di dati, punti di controllo, modello e output.
- Valida il carico di lavoro sulla configurazione più piccola applicabile. Confermare l'accesso ai dati, le richieste di risorse e gli output prima di testare la topologia fissa prevista.
Limitations
Ray on AI Runtime presenta le seguenti limitazioni:
- Il cluster Ray ha un numero fisso di nodi per tutta la durata di un carico di lavoro. La scalabilità automatica del cluster Ray non è supportata.
- Tutti i nodi in un carico di lavoro usano lo stesso
accelerator_type. Un cluster Ray non può contenere gruppi separati solo per CPU e GPU né scalare autonomamente la capacità CPU e GPU. - Un notebook avvia Ray sull'unico nodo associato. Usa la CLI di Databricks per un cluster Ray multinodo.
- L'accesso al dashboard Ray tramite il proxy driver Databricks è attualmente disponibile solo per i carichi di lavoro dei notebook.
Tip
Se la preparazione della CPU e l'elaborazione della GPU possono essere eseguite come fasi separate, usa un Lakeflow Job multitask e trasferisci i dati tra le attività attraverso un volume di Unity Catalog.