Condividi tramite


Eseguire il training di modelli con Azure Machine Learning (v1).

SI APPLICA A: Python SDK azureml v1

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
    Configurazione di esecuzione Un modo tipico per eseguire il training dei modelli consiste nell'usare uno script di training e una configurazione del processo. La configurazione del processo offre le informazioni necessarie per configurare l'ambiente di training usato per il training del modello. È possibile specificare lo script di training, la destinazione di calcolo e l'ambiente Azure Machine Learning nella configurazione del processo ed eseguire un processo di training.
    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 di 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 specificatamente sul training, i motivi per l'uso di una pipeline sono più vasti 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.

Configurazione di esecuzione

È possibile definire un processo di training generico con Azure Machine Learning usando ScriptRunConfig. La configurazione di esecuzione viene quindi usata insieme agli script di training per eseguire il training di un modello su una destinazione di calcolo.

È possibile iniziare con una configurazione di esecuzione per il computer locale e quindi passare a una configurazione per una destinazione di calcolo basata sul cloud in base alle proprie esigenze. Modificando la destinazione di calcolo, si modifica solo la configurazione di esecuzione in uso. 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. In una pipeline è possibile eseguire il training di un modello usando il Machine Learning automatizzato o le configurazione di esecuzione.

Comprendere cosa accade quando si invia un processo di training

Il ciclo di vita del training di Azure è costituito da:

  1. Comprimere i file nella cartella del progetto, ignorando quelli specificati in .amlignore o .gitignore
  2. Aumento delle prestazioni del cluster di elaborazione
  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 in una ricerca del Registro Azure Container (ACR) dell’area di lavoro
    3. Se non viene trovato, cerca una corrispondenza nel Registro Azure Container 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

Se si sceglie di eseguire il training nel computer locale ("configurare come esecuzione locale"), non è necessario usare Docker. È possibile usare Docker in locale, se si vuole. Vedere la sezione Configurare la pipeline di Machine Learning per un esempio.

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.

Passaggi successivi

Informazioni su come Configurare un'esecuzione di training.