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.
Il runtime di intelligenza artificiale si integra in modo nativo con MLflow per il rilevamento degli esperimenti e include un riquadro delle risorse GPU predefinito per il monitoraggio dell'utilizzo, della memoria e della temperatura. Usa MLflow per registrare metriche e run, visualizzare l'output dell'addestramento nel notebook e nell'interfaccia utente di MLflow, salvare i checkpoint del modello nei volumi di Unity Catalog e monitorare lo stato della GPU durante l'esecuzione del codice.
Integrazione di MLflow
Il runtime di intelligenza artificiale si integra in modo nativo con MLflow per il rilevamento dell'esperimento, la registrazione dei modelli e la visualizzazione delle metriche.
Consigli per la configurazione:
Aggiornare MLflow alla versione 3.7 o successiva e seguire i modelli del flusso di lavoro di Deep Learning.
Abilitare la registrazione automatica per PyTorch Lightning.
import mlflow mlflow.pytorch.autolog()Personalizzate il nome dell'esecuzione in MLflow incapsulando il vostro codice di addestramento del modello nel contesto API
mlflow.start_run(). In questo modo è possibile controllare il nome dell'esecuzione e consentire il riavvio da un'esecuzione precedente. È possibile personalizzare il nome dell'esecuzione usando ilrun_nameparametro in o nellemlflow.start_run(run_name="your-custom-name")librerie di terze parti che supportano MLflow (ad esempio Hugging Face Transformers). In caso contrario, il nome di esecuzione predefinito èjobTaskRun-xxxxx.from transformers import TrainingArguments args = TrainingArguments( report_to="mlflow", run_name="llama7b-sft-lr3e5", # <-- MLflow run name logging_steps=50, )Quando si usa l'API GPU serverless, ogni chiamata a
.distributed()crea automaticamente un esperimento MLflow. Se viene chiamato all'interno di un'esecuzione MLflow attiva, viene invece creata un'esecuzione figlia annidata sotto l'esecuzione padre attiva.import mlflow with mlflow.start_run() as outer_run: ... run_train.distributed() # creates a nested child run under outer_runPer personalizzare l'esperimento utilizzato da
.distributed(), chiamaremlflow.set_experiment()prima di richiamare.distributed(), oppure impostare la variabile di ambienteMLFLOW_EXPERIMENT_NAME. Il nome predefinito dell'esperimento è/Users/{WORKSPACE_USER}/{notebook-name}. Usare sempre percorsi assoluti.import mlflow mlflow.set_experiment("/Users/<username>/my-experiment") run_train.distributed()Alternatively:
import os os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"Per riprendere un'esecuzione precedente di MLflow, usare
mlflow.start_run(run_id="<previous-run-id>").Per riprendere un'esecuzione precedente di MLflow con
.distributed(), impostareMLFLOW_RUN_IDprima di chiamarla:os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>" run_train.distributed()Impostare il parametro
stepinMLFlowLoggera valori ragionevoli di batch. MLflow ha un limite di 10 milioni di passaggi delle metriche, quindi la registrazione di ogni singolo batch in esecuzioni di training di grandi dimensioni può raggiungere questo limite. Vedere Limiti delle risorse.
Visualizzazione dei log
- Output del notebook: l'output standard e gli errori del codice di training vengono visualizzati nell'output della cella del notebook.
- Log di MLflow: l'interfaccia utente dell'esperimento MLflow visualizza metriche, parametri e artefatti di training.
Il checkpoint del modello
Per l'addestramento distribuito, salva lo stato del modello e dell'ottimizzatore su volumi del Catalogo Unity usando l'API Torch Distributed Checkpoint (DCP) con i serverless_gpu.data.UCVolumeWriter backend di archiviazione e serverless_gpu.data.UCVolumeReader . Salva in modo asincrono così l'addestramento continua mentre il checkpoint viene caricato, e il checkpoint abbastanza spesso da limitare il lavoro perso dopo un'interruzione. Poiché un checkpoint modello non cattura la posizione della pipeline dati, controlla anche la pipeline dati così che una ripresa continui sui dati corretti.
Per il modello completo di checkpointing vedi Migliorare le prestazioni e la resilienza dell'addestramento su tempo di esecuzione AI.
Monitorare le risorse GPU
Usare il riquadro Risorse GPU per monitorare l'integrità e l'utilizzo della GPU mentre il codice viene eseguito in Runtime di intelligenza artificiale. Il riquadro supporta sia carichi di lavoro a nodo singolo che a più nodi.
Per aprire il riquadro, connettere il notebook al runtime di intelligenza artificiale e quindi fare clic Risorse GPU nel riquadro a destra.
Nel riquadro vengono visualizzate le metriche seguenti per ogni GPU:
- Percentuale di utilizzo GPU
- Utilizzo della memoria GPU
- Temperatura
Il riquadro interroga le metriche ogni 10 secondi e conserva fino a 2 ore di cronologia. Fare clic Aggiornare per recuperare immediatamente i valori più recenti. Dopo 5 minuti di inattività, il riquadro viene sospeso; riaprirlo per riprendere il monitoraggio.
Collaborazione multiutente
- Per garantire che tutti gli utenti possano accedere al codice condiviso (ad esempio, moduli helper o file YAML dell'ambiente), archivialo in
/Workspace/Sharedinvece che in cartelle specifiche dell'utente come/Workspace/Users/<your_email>/. - Per il codice in fase di sviluppo attivo, usare le cartelle Git nelle cartelle
/Workspace/Users/<your_email>/specifiche dell'utente e eseguire il push nei repository Git remoti. Ciò consente a più utenti di avere un clone e un ramo specifici dell'utente, pur usando un repository Git remoto per il controllo della versione. Vedere le procedure consigliate per l'uso di Git in Databricks. - I collaboratori possono condividere e commentare i notebook.
Limiti globali in Azure Databricks
Vedere Limiti delle risorse.