Condividi tramite


Registrazione automatica di Databricks.

Questa pagina illustra come personalizzare Databricks Autologging, che acquisisce automaticamente il modello parameters, metriche, file e informazioni di derivazione quando addestri i modelli tra le librerie di machine learning più diffuse. Le sessioni di training vengono registrate come esecuzioni di rilevamento MLflow. I file di modello vengono inoltre rilevati in modo da poterli registrare facilmente nel Registro modelli MLflow.

Nota

Per abilitare la registrazione di traccia per carichi di lavoro generativi di intelligenza artificiale, MLflow supporta l'assegnazione automatica OpenAI.

Il video seguente mostra l'assegnazione automatica di Databricks con una sessione di training del modello scikit-learn in un notebook Python interattivo. Le informazioni di rilevamento vengono acquisite e visualizzate automaticamente nella barra laterale Esecuzioni esperimento e nell'interfaccia utente di MLflow.

Esempio di registrazione automatica

Requisiti

  • La registrazione automatica di Databricks è disponibile a livello generale in tutte le aree con Databricks Runtime 10.4 LTS ML o versioni successive.
  • Databricks Autologging è disponibile nelle regioni di anteprima select con Databricks Runtime 9.1 LTS ML o versione successiva.

Funzionamento

Quando si collega un notebook Python interattivo a un cluster Di Azure Databricks, Databricks Autologging chiama mlflow.autolog() per set il rilevamento delle sessioni di training del modello. Quando si esegue il training dei modelli nel notebook, le informazioni di training del modello vengono rilevate automaticamente con MLflow Tracking. Per informazioni su come queste informazioni di training del modello sono protette e gestite, vedere Sicurezza e gestione dei dati.

La configurazione predefinita per la chiamata mlflow.autolog() è:

mlflow.autolog(
    log_input_examples=False,
    log_model_signatures=True,
    log_models=True,
    disable=False,
    exclusive=False,
    disable_for_unsupported_versions=True,
    silent=False
)

È possibile personalizzare la configurazione di registrazione automatica.

Utilizzo

Per usare l'assegnazione automatica di Databricks, eseguire il training di un modello di Machine Learning in un framework supportato usando un notebook Python interattivo di Azure Databricks. Databricks Autologging registra automaticamente le informazioni sulla derivazione del modello, parameterse le metriche per MLflow Tracking. È anche possibile personalizzare il comportamento di Databricks Autologging.

Nota

Databricks Autologging non viene applicato alle esecuzioni create usando l'API fluent MLflow con mlflow.start_run(). In questi casi, è necessario chiamare mlflow.autolog() per salvare il contenuto registrato automaticamente nell'esecuzione di MLflow. Vedere Tenere traccia di contenuto aggiuntivo.

Personalizzare il comportamento di registrazione

Per personalizzare la registrazione, usare mlflow.autolog(). Questa funzione fornisce la configurazione parameters per abilitare la registrazione dei modelli (log_models), registrare i set di dati (log_datasets), raccogliere esempi di input (log_input_examples), registrare le firme del modello (log_model_signatures), configurare avvisi (silent) e altro.

Tracciare contenuti aggiuntivi

Per tenere traccia di metriche aggiuntive, parametersfile e metadati nelle esecuzioni di MLflow create da Databricks Autologging, seguire questa procedura in un notebook Python interattivo di Azure Databricks:

  1. Chiamare mlflow.autolog() con exclusive=False.
  2. Avviare un'esecuzione MLflow usando mlflow.start_run(). È possibile eseguire il wrapping di questa chiamata in with mlflow.start_run(); quando si esegue questa operazione, l'esecuzione viene terminata automaticamente dopo il completamento.
  3. Usare i metodi MLflow Tracking, ad esempio mlflow.log_param(), per tenere traccia del contenuto di pre-training.
  4. Eseguire il training di uno o più modelli di Machine Learning in un framework supportato da Databricks Autologging.
  5. Usare i metodi MLflow Tracking, ad esempio mlflow.log_metric(), per tenere traccia del contenuto post-training.
  6. Se non è stato usato with mlflow.start_run() nel passaggio 2, terminare l'esecuzione di MLflow usando mlflow.end_run().

Ad esempio:

import mlflow
mlflow.autolog(exclusive=False)

with mlflow.start_run():
  mlflow.log_param("example_param", "example_value")
  # <your model training code here>
  mlflow.log_metric("example_metric", 5)

Disabilitare la registrazione automatica di Databricks

Per disabilitare la registrazione automatica di Databricks in un notebook Python interattivo di Azure Databricks, chiamare mlflow.autolog() con disable=True:

import mlflow
mlflow.autolog(disable=True)

Gli amministratori possono anche disabilitare l'assegnazione automatica di Databricks per tutti i cluster in un'area di lavoro dalla scheda Avanzate della pagina delle impostazioni di amministrazione. Per rendere effettive le modifiche, è necessario riavviare i cluster.

Ambienti e framework supportati

Databricks Autologging è supportato nei notebook Python interattivi ed è disponibile per i framework ML seguenti:

  • scikit-learn
  • Apache Spark MLlib
  • TensorFlow
  • Keras
  • PyTorch Lightning
  • XGBoost
  • LightGBM
  • Gluon
  • Fast.ai
  • statsmodels
  • PaddlePaddle
  • OpenAI
  • LangChain

Per altre informazioni su ognuno dei framework supportati, vedere Registrazione automatica di MLflow.

Abilitazione della traccia MLflow

MLflow Tracing usa la autolog funzionalità all'interno delle rispettive integrazioni del framework del modello per controllare l'abilitazione o la disabilitazione del supporto della traccia per le integrazioni che supportano la traccia.

Ad esempio, per abilitare la traccia quando si usa un modello LlamaIndex, usare mlflow.llama_index.autolog() con log_traces=True:

import mlflow
mlflow.llama_index.autolog(log_traces=True)

Le integrazioni supportate con abilitazione della traccia all'interno delle implementazioni del log automatico sono:

Gestione e sicurezza dei dati

Tutte le informazioni di training del modello rilevate con l'assegnazione automatica di Databricks vengono archiviate in MLflow Tracking ed è protetto dalle autorizzazioni dell'esperimento MLflow. È possibile condividere, modificare o eliminare informazioni sul training del modello usando l'API o l’interfaccia utente MLflow Tracking.

Amministrazione

Gli amministratori possono abilitare o disabilitare l'assegnazione automatica di Databricks per tutte le sessioni interattive dei notebook nell'area di lavoro nella scheda Avanzate della pagina delle impostazioni di amministrazione. Le modifiche verranno applicate solo dopo il riavvio del cluster.

Limiti

  • Databricks Autologging non è supportato nei processi di Azure Databricks. Per usare l'assegnazione automatica di tag dai processi, è possibile chiamare in modo esplicito mlflow.autolog().
  • L'assegnazione automatica di Databricks è abilitata solo nel nodo driver del cluster Azure Databricks. Per usare l'assegnazione automatica dei tag dai nodi di lavoro, è necessario chiamare in modo esplicito mlflow.autolog() dall'interno del codice in esecuzione in ogni ruolo di lavoro.
  • L'integrazione scikit-learn di XGBoost non è supportata.

Apache Spark MLlib, Hyperopt e rilevamento automatizzato di MLflow

Databricks Autologging non modifica il comportamento delle integrazioni di rilevamento automatizzate di MLflow esistenti per Apache Spark MLlib e Hyperopt.

Nota

In Databricks Runtime 10.1 ML, disabilitando l'integrazione automatica del rilevamento MLflow per i modelli CrossValidator e TrainValidationSplit MLlib di Apache Spark si disabilita anche la funzionalità di assegnazione automatica di Databricks per tutti i modelli MLlib di Apache Spark.