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.
Importante
Questa funzionalità è in Anteprima Pubblica.
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() dal pacchetto serverless_gpu |
| 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 è connesso alle risorse di calcolo GPU di AI Runtime, usa ray_init() del pacchetto serverless_gpu per avviare Ray sul nodo collegato:
from serverless_gpu 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. Databricks AI v6 include Ray. Se usi Standard v6, installa Ray prima di chiamare ray_init(). Vedi Configurare l'ambiente.
Esempi di notebook
| Example | Descrzione |
|---|---|
| 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. Gli esempi di Ray hello world includono 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.
Esempi dell'interfaccia della riga di comando
| Example | Descrzione |
|---|---|
| Esempi di Ray Hello World | Esempi minimi per nodo singolo e multinodo per Ray Core, Ray Train, Ray Data e Ray Tune, compreso il modello di avvio del cluster. |
| Training distribuito con Ray Train | Ottimizza un grande modello linguistico su 8 GPU H100 su un singolo nodo usando Ray Train e PyTorch. |
| Inferenza batch con Ray Data e vLLM | Esegui inferenza batch su larga scala utilizzando Ray Data per il caricamento distribuito dei dati e vLLM per una funzione efficiente del modello. |
| Ricerca iperparametrica con Ray Tune | Cerca gli iperparametri per il fine-tuning LoRA di Qwen2.5 con Ray Tune, eseguendo un trial per GPU e interrompendo anticipatamente i trial con prestazioni inferiori con lo scheduler ASHA. |
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. Vedi "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 Opzioni 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.