Eseguire il training di modelli con Azure Machine Learning

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

Azure Machine Learning offre diversi modi per eseguire il training dei modelli, dalle soluzioni code-first che usano l'SDK a soluzioni a basso codice, ad esempio Machine Learning automatizzato e 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 costituiscono un metodo di training diverso, bensì un modo per definire un flusso di lavoro attraverso passaggi modulari e 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:
    * Vuoi pianificare processi non presidiati come processi di addestramento di lunga durata o di preparazione dei dati.
    * Si usino più passaggi coordinati nelle varie risorse di calcolo e posizioni di archiviazione.
    * Usare la pipeline come template riutilizzabile per scenari specifici, come il riaddestramento o l'assegnazione di punteggi in batch.
    * Tieni traccia delle origini dati, degli input e degli output e gestiscine le versioni per il tuo 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.
  • Designer: Azure Finestra di progettazione di Machine Learning offre un punto di accesso semplice al machine learning per creare prove di concetto o per utenti con poca esperienza di programmazione. Consente di addestrare i modelli tramite un'interfaccia utente web drag-and-drop. È 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 l'addestramento dei modelli, fornisce comandi che inviano processi di addestramento. Consente di inviare job tramite 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 Python interattiva, jupyter notebook, Visual Studio Code o un altro IDE.

Inviare un comando

È possibile definire un processo di training generico con Azure Machine Learning usando la funzione command(). L'oggetto Command viene quindi utilizzato, insieme agli script di addestramento, per addestrare un modello sulla destinazione di calcolo specificata.

È possibile iniziare con un oggetto Command 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 nell'oggetto Command usato. Un'esecuzione registra anche informazioni sul processo di addestramento, ad esempio gli input, gli output e i log.

Machine Learning automatizzato

Definisci le iterazioni, le impostazioni degli iperparametri, la generazione delle caratteristiche e altre impostazioni. Durante il training, Azure Machine Learning effettua tentativi in parallelo con diversi algoritmi e parametri. L'addestramento si interrompe una volta raggiunti i criteri di uscita che hai definito.

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.

Scopri cosa succede quando invii un processo di addestramento

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. Aggiungi i file e le directory da escludere a questo file. 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 utilizza questo hash come chiave in una ricerca nell'Registro Azure Container (ACR) dell'area di lavoro
    3. Se non lo trova, il sistema cerca una corrispondenza nell’ACR globale
    4. Se non viene trovata, il sistema genera una nuova immagine, che verrà archiviata nella cache e registrata nell'ACR dell'area di lavoro.
  4. Download del file ZIP del progetto nell'archivio temporaneo sul 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

Progettazione di Azure Machine Learning

Designer consente di addestrare modelli usando un'interfaccia drag-and-drop nel browser web.

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. Fornisce comandi CLI 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.

Visual Studio Code

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

Scopri come Tutorial: creare pipeline ML di produzione con l'SDK Python v2 in un notebook Jupyter.