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.
- Informazioni su Azure Machine Learning SDK per Python
- Installare/aggiornare l'SDK
- Configurare un ambiente di sviluppo per Azure Machine Learning
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.
- Informazioni sulla configurazione di esecuzione
- Esercitazione: Eseguire il training del primo modello di Machine Learning
- Esempi: Esempi di modelli di training con Jupyter Notebook e Python
- Procedura: Configurare un'esecuzione di training
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.
- Informazioni su Machine Learning automatizzato
- Esercitazione: Creare il primo modello di classificazione con Machine Learning automatizzato
- Esempi: Esempi di Jupyter Notebook con Machine Learning automatizzato
- Procedura: Configurare esperimenti di ML automatizzato in Python
- Procedura: Eseguire il training automatico di un modello di previsione di serie temporali
- Procedura: Creare, esplorare e distribuire esperimenti di Machine Learning automatizzato con lo studio di Azure Machine Learning
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.
- Informazioni sulle pipeline di ML in Azure Machine Learning
- Creare ed eseguire le pipeline di Machine Learning con Azure Machine Learning SDK
- Esercitazione: Usare le pipeline di Azure Machine Learning per l'assegnazione dei punteggi batch
- Esempi: Esempi di Jupyter Notebook per le pipeline di Machine Learning
- Esempi: Pipeline con Machine Learning automatizzato
Comprendere cosa accade quando si invia un processo di training
Il ciclo di vita del training di Azure è costituito da:
- Comprimere i file nella cartella del progetto, ignorando quelli specificati in .amlignore o .gitignore
- Aumento delle prestazioni del cluster di elaborazione
- Compilare o scaricare il Dockerfile nel nodo di calcolo
- Il sistema calcola un hash di:
- Immagine di base
- Procedura Docker personalizzata (vedere Distribuire un modello usando un'immagine di base Docker personalizzata)
- La definizione di conda YAML (vedere Creare e usare ambienti software in Azure Machine Learning)
- Il sistema usa questo hash come chiave in una ricerca del Registro Azure Container (ACR) dell’area di lavoro
- Se non viene trovato, cerca una corrispondenza nel Registro Azure Container globale
- 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)
- Il sistema calcola un hash di:
- Scaricare il file di progetto compresso nell'archiviazione temporanea nel nodo di calcolo
- Decomprimere il file di progetto
- Il nodo di calcolo esegue
python <entry script> <arguments>
- Salvare i log, i file di modello e altri file scritti in
./outputs
nell'account di archiviazione associato all'area di lavoro - 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.