Condividi tramite


Bundle di asset di Databricks per stack MLOps

È possibile usare i bundle di asset di Databricks, l'interfaccia della riga di comando di Databricks e il repository MlOps Stack di Databricks in GitHub per creare stack MLOps. MlOps Stack è un progetto MLOps in Azure Databricks che segue le procedure consigliate di produzione predefinite. Consultare Che cosa sono i Databricks Asset Bundle?.

Per creare, distribuire ed eseguire un progetto MLOps Stacks, completare la procedura seguente:

Requisiti

  • Assicurarsi che nell'area di lavoro remota di destinazione siano abilitati i file dell'area di lavoro. Si veda Che cosa sono i file di area di lavoro?.
  • Nel computer di sviluppo verificare che sia installata l'interfaccia della riga di comando di Databricks versione 0.212.2 o successiva. Per controllare la versione dell'interfaccia della riga di comando di Databricks installata, eseguire il comando databricks -v. Per aggiornare la versione dell'interfaccia della riga di comando di Databricks, vedere Installare o aggiornare l'interfaccia della riga di comando di Databricks. I bundle non funzionano con l'interfaccia della riga di comando di Databricks 0.18 e versioni successive.

Passaggio 1: Configurare l'autenticazione

Configurare l'interfaccia della riga di comando di Databricks per l'autenticazione.

Questo articolo presuppone che si voglia usare l'autenticazione OAuth da utente a computer (U2M) e un profilo di configurazione di Azure Databricks corrispondente denominato DEFAULT per l'autenticazione.

Nota

L'autenticazione U2M è appropriata per provare questi passaggi in tempo reale. Per i flussi di lavoro completamente automatizzati, Databricks consiglia di usare invece l'autenticazione OAuth da computer a computer (M2M). Vedere le istruzioni di configurazione dell'autenticazione M2M.

  1. Usare il Databricks CLI per avviare la gestione dei token OAuth in locale eseguendo il seguente comando per ogni area di lavoro di destinazione.

    Nel seguente comando, sostituire <workspace-url> con l’URL per l'area di lavoro di Azure Databricks, per esempio https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Il Databricks CLI richiede di salvare le informazioni immesse come profilo di configurazione di Azure Databricks. Premere Enter per accettare il nome del profilo suggerito oppure immettere il nome di un profilo nuovo o esistente. Qualsiasi profilo esistente con lo stesso nome viene sovrascritto con le informazioni immesse. È possibile usare i profili per cambiare rapidamente il contesto di autenticazione tra più aree di lavoro.

    Per ottenere un elenco di tutti i profili esistenti, in un terminale o un prompt dei comandi separato, usare il Databricks CLI per eseguire il comando databricks auth profiles. Per visualizzare le impostazioni esistenti di un profilo specifico, eseguire il comando databricks auth env --profile <profile-name>.

  3. Nel Web browser completare le istruzioni visualizzate per accedere all'area di lavoro di Azure Databricks.

  4. Per visualizzare il valore corrente del token OAuth di un profilo e il timestamp di scadenza imminente del token, eseguire uno dei comandi seguenti:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Se si dispone di più profili con lo stesso valore --host, potrebbe essere necessario specificare insieme le opzioni --host e -p per consentire al Databricks CLI di trovare le informazioni corrette corrispondenti sul token OAuth.

Passaggio 2: Creare il progetto bundle

  1. Usare i modelli di aggregazione di asset di Databricks per creare i file iniziali del progetto MLOps Stacks. A tale scopo, iniziare eseguendo il comando seguente:

    databricks bundle init mlops-stacks
    
  2. Rispondere ai prompt sullo schermo. Per indicazioni su come rispondere a queste richieste, vedere Avviare un nuovo progetto nel repository Databricks MLOps Stacks in GitHub.

    Il primo prompt offre la possibilità di configurare i componenti del codice ml, i componenti CI/CD o entrambi. Questa opzione semplifica la configurazione iniziale in quanto è possibile scegliere di creare solo i componenti immediatamente pertinenti. Per configurare gli altri componenti, eseguire di nuovo il comando di inizializzazione. Selezionare una delle opzioni seguenti:

    • CICD_and_Project (impostazione predefinita) - Configurare sia il codice ml che i componenti CI/CD.
    • Project_Only - Configurare solo i componenti del codice ml. Questa opzione è destinata ai data scientist per iniziare.
    • CICD_Only - Configurare solo componenti CI/CD. Questa opzione consente ai tecnici di ML di configurare l'infrastruttura.

    Dopo aver risposto a tutte le richieste visualizzate, il modello crea i file iniziali del progetto MLOps Stacks e li aggiunge alla directory di lavoro corrente.

  3. Personalizzare i file iniziali del progetto MLOps Stacks in base alle esigenze. A tale scopo, seguire le indicazioni nei file seguenti all'interno del nuovo progetto:

    Ruolo Obiettivo Documenti
    Utenti per la prima volta di questo repository Informazioni sulla pipeline di Machine Learning e sulla struttura del codice in questo repository README.md
    Data scientist Introduzione alla scrittura di codice ML per un nuovo progetto <project-name>/README.md
    Data scientist Aggiornare il codice ml di produzione (ad esempio, la logica di training del modello) per un progetto esistente docs/ml-pull-request.md
    Data scientist Modificare le risorse ml del modello di produzione (ad esempio, processi di training o inferenza del modello) <project-name>/resources/README.md
    MLOps/DevOps Configurare CI/CD per il progetto di Machine Learning corrente docs/mlops-setup.md
    • Per personalizzare gli esperimenti, i mapping all'interno di una dichiarazione dell'esperimento corrispondono al payload della richiesta dell'operazione di creazione dell'esperimento, come definito in POST /api/2.0/mlflow/experiments/create nel riferimento all'API REST, espresso in formato YAML.

    • Per la personalizzazione dei processi, i mapping all'interno di una dichiarazione di processo corrispondono al payload della richiesta dell'operazione di creazione del processo, come definito in POST /api/2.1/jobs/create nel riferimento all'API REST, espresso in formato YAML.

      Suggerimento

      È possibile definire, combinare ed eseguire l'override delle impostazioni per i nuovi cluster di processi nei bundle usando le tecniche descritte in Eseguire l’override delle impostazioni dei cluster nei bundle di asset di Databricks.

    • Per la personalizzazione dei modelli, i mapping all'interno di una dichiarazione di modello corrispondono al payload della richiesta di creazione del modello del catalogo Unity, come definito in POST /api/2.1/unity-catalog/models nel riferimento all'API REST, espresso in formato YAML.

    • Per la personalizzazione delle pipeline, i mapping all’interno di una dichiarazione di pipeline corrispondono al payload della richiesta, , dell'operazione di creazione della pipeline, come definito in POST /api/2.0/pipelines nel riferimento all'API REST espresso in formato YAML.

Passaggio 3: Convalidare il progetto bundle

Controllare se la configurazione del bundle è valida. A tale scopo, eseguire l'interfaccia della riga di comando di Databricks dalla radice del progetto, dove databricks.yml si trova , come indicato di seguito:

databricks bundle validate

Se viene restituito un riepilogo della configurazione del bundle, la convalida ha avuto esito positivo. Se vengono restituiti errori, correggerli e ripetere questo passaggio.

Passaggio 4: Implementare il bundle

Distribuire le risorse e gli artefatti del progetto nell'area di lavoro remota desiderata. A tale scopo, eseguire l'interfaccia della riga di comando di Databricks dalla radice del progetto, dove databricks.yml si trova , come indicato di seguito:

databricks bundle deploy -t <target-name>

Sostituire <target-name> con il nome della destinazione desiderata all'interno del databricks.yml file, ad esempio dev, test, stagingo prod.

Passaggio 5: Eseguire il bundle distribuito

I processi di Azure Databricks distribuiti del progetto vengono eseguiti automaticamente in base alle pianificazioni predefinite. Per eseguire immediatamente un processo distribuito, eseguire l'interfaccia della riga di comando di Databricks dalla radice del progetto, dove databricks.yml si trova , come indicato di seguito:

databricks bundle run -t <target-name> <job-name>
  • Sostituire <target-name> con il nome della destinazione desiderata all'interno del databricks.yml file in cui è stato distribuito il processo, ad esempio dev, teststaging, o prod.
  • Sostituire <job-name> con il nome del processo in uno dei .yml file all'interno <project-name>/databricks-resourcesdi , ad esempio batch_inference_job, write_feature_table_jobo model_training_job.

Viene visualizzato un collegamento al processo di Azure Databricks, che è possibile copiare nel Web browser per aprire il processo nell'interfaccia utente di Azure Databricks.

Passaggio 6: Eliminare il bundle distribuito (facoltativo)

Per eliminare le risorse e gli artefatti di un progetto distribuito, se non sono più necessari, eseguire l'interfaccia della riga di comando di Databricks dalla radice del progetto, dove databricks.yml si trova , come indicato di seguito:

databricks bundle destroy -t <target-name>

Sostituire <target-name> con il nome della destinazione desiderata all'interno del databricks.yml file, ad esempio dev, test, stagingo prod.

Rispondere alle richieste visualizzate per confermare l'eliminazione delle risorse e degli artefatti distribuiti in precedenza.