Eseguire il training di modelli con Azure Machine Learning

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

Azure Machine Learning offre diversi metodi per eseguire il training dei modelli, dalle soluzioni Code First che usano l'SDK a soluzioni con basso uso di codice come il Machine Learning automatizzato e la finestra di progettazione visiva. Usare l'elenco seguente per determinare il metodo di training più adatto:

  • Azure Machine Learning SDK per Python: l’SDK Python offre diversi metodi per eseguire il training dei modelli, ognuno con diverse capacità.

    Metodo di training Descrizione
    command() Un modo tipico per eseguire il training dei modelli consiste nell'inviare una funzione command() che include uno script di training, un ambiente e informazioni di calcolo.
    Machine Learning automatizzato Il Machine Learning automatizzato consente di eseguire il training dei modelli senza conoscenze estese di data science o programmazione. Per gli utenti con esperienza in data science e programmazione, fornisce un metodo per risparmiare tempo e risorse automatizzando la selezione dell'algoritmo e l'ottimizzazione degli iperparametri. Non è necessario preoccuparsi di definire una configurazione del processo quando si usa Machine Learning automatizzato.
    Pipeline di Machine Learning Le pipeline non sono un metodo di training diverso, ma un modo per definire un flusso di lavoro usando passaggi modulari riutilizzabili che possono includere il training come parte del flusso di lavoro. Le pipeline di Machine Learning supportano l'uso del Machine Learning automatizzato e della configurazione di esecuzione per il training dei modelli. Poiché le pipeline non sono incentrate in modo specifico sul training, i motivi per l'uso di una pipeline sono più vari rispetto agli altri metodi di training. In genere è possibile usare una pipeline nel caso in cui:
    * Si desideri pianificare processi automatici come processi di training con esecuzione prolungata o preparazione dei dati.
    * Si usino più passaggi coordinati nelle varie risorse di calcolo e posizioni di archiviazione.
    * Si usi la pipeline come modello riutilizzabile per scenari specifici, come la riesecuzione del training o il punteggio batch.
    * Tracciamento e versione di origini dati, input e output per il flusso di lavoro.
    * Il flusso di lavoro è implementato da diversi team che lavorano su specifici passaggi in modo indipendente. I passaggi possono quindi essere uniti in una pipeline per implementare il flusso di lavoro.
  • Finestra di progettazione: la finestra di progettazione di Azure Machine Learning offre un punto di ingresso semplice per l'apprendimento automatico per la creazione di modello di verifica o per gli utenti con poca esperienza di scrittura del codice. Consente di eseguire il training dei modelli sfruttando un'interfaccia utente basata sul Web con trascinamento della selezione. È possibile usare il codice Python come parte della progettazione o eseguire il training dei modelli senza scrivere alcun codice.

  • Interfaccia della riga di comando di Azure: l'interfaccia della riga di comando di Machine Learning fornisce i comandi per le attività comuni con Azure Machine Learning e viene spesso usata per attività di script e automatizzazione. Ad esempio, dopo aver creato uno script di training o una pipeline, è possibile usare l'interfaccia della riga di comando di Azure per avviare un processo di training in base a una pianificazione o quando i file di dati usati per il training vengono aggiornati. Per i modelli di training, fornisce i comandi che inviano processi di training. Consente di inviare processi usando le configurazioni di esecuzione o le pipeline.

Ognuno di questi metodi consente l'uso di diversi tipi di risorse di calcolo per il training. Complessivamente, queste risorse vengono definite destinazioni di calcolo. Una destinazione di calcolo può essere un computer locale o una risorsa cloud, come un ambiente di calcolo di Azure Machine Learning, Azure HDInsight o una macchina virtuale remota.

Python SDK

Azure Machine Learning SDK per Python consente di creare ed eseguire flussi di lavoro di Machine Learning con Azure Machine Learning. È possibile interagire con il servizio da una sessione interattiva di Python, notebook Jupyter, Visual Studio Code o altro IDE.

Inviare un comando

È possibile definire un processo di training generico con Azure Machine Learning usando la funzione command(). Il comando viene quindi usato, insieme agli script di training per eseguire il training di un modello nella destinazione di calcolo specificata.

È possibile iniziare con un comando per il computer locale e quindi passare a uno per una destinazione di calcolo basata sul cloud in base alle esigenze. Quando si modifica la destinazione di calcolo, si modifica solo il parametro di calcolo nel comando usato. Un'esecuzione registra inoltre le informazioni sul processo di training, ad esempio input, output e log.

Machine Learning automatizzato

Definire le iterazioni, le impostazioni degli iperparametri, l'ingegneria delle funzionalità e altre impostazioni. Durante il training, Azure Machine Learning effettua tentativi in parallelo con diversi algoritmi e parametri. Il training si interrompe dopo aver raggiunto i criteri uscita definiti.

Suggerimento

Oltre a Python SDK, è possibile usare il Machine Learning automatizzato anche tramite Azure Machine Learning Studio.

Pipeline di Machine Learning

Le pipeline di Machine Learning possono usare i metodi di training indicati in precedenza. Le pipeline consentono perlopiù di creare un flusso di lavoro, pertanto comprendono più funzioni del semplice training dei modelli.

Comprendere cosa accade quando si invia un processo di training

Il ciclo di vita del training di Azure è costituito dalle operazioni seguenti:

  1. Comprimere i file nella cartella del progetto e caricarli nel cloud.

    Suggerimento

    Per evitare che i file non necessari vengano inclusi nello snapshot, impostare un file ignore (.gitignore o .amlignore) nella directory. Aggiungere i file e le directory da escludere. Per altre informazioni sulla sintassi da utilizzare in questo file, vedere sintassi e criteri per .gitignore. Il file .amlignore utilizza la stessa sintassi. Se sono presenti entrambi i file, viene usato il file .amlignore, mentre quello .gitignore non viene usato.

  2. Aumentare le prestazioni del cluster di elaborazione (o elaborazione serverless)

  3. Compilare o scaricare il dockerfile nel nodo di calcolo

    1. Il sistema calcola un hash di:
    2. Il sistema usa questo hash come chiave per una ricerca dell'area di lavoro Registro Azure Container (ACR)
    3. Se non lo trova, il sistema cerca una corrispondenza nell’ACR globale
    4. Se non viene trovato, il sistema compila una nuova immagine (che verrà memorizzata nella cache e registrata con il Registro Azure Container dell'area di lavoro)
  4. Scaricare il file di progetto compresso nell'archiviazione temporanea nel nodo di calcolo

  5. Decomprimere il file di progetto

  6. Il nodo di calcolo esegue python <entry script> <arguments>

  7. Salvare i log, i file di modello e altri file scritti in ./outputs nell'account di archiviazione associato all'area di lavoro

  8. Ridurre le prestazioni dell'ambiente di calcolo, inclusa la rimozione dell'archiviazione temporanea

Finestra di progettazione di Azure Machine Learning

La finestra di progettazione consente di eseguire il training dei modelli usando un'interfaccia di trascinamento della selezione nel Web browser.

Interfaccia della riga di comando di Azure

L'interfaccia della riga di comando di Machine Learning è un'estensione per l'interfaccia della riga di comando di Azure. Offre i comandi dell'interfaccia della riga di comando multipiattaforma per lavorare con Azure Machine Learning. In genere si usa l'interfaccia della riga di comando per automatizzare attività come ad esempio il training di un modello di Machine Learning.

VS Code

È possibile usare l'estensione VS Code per eseguire e gestire i processi di training. Per altre informazioni, vedere la guida pratica per la gestione delle risorse di VS Code.

Passaggi successivi

Esercitazione: Creare pipeline di Machine Learning di produzione con Python SDK v2 in un notebook Jupyter.