Esercitazione: Eseguire il training e distribuire un modello di Azure Machine Learning

Si applicaall'icona:sì IoT Edge 1.1

Importante

IoT Edge 1,1 data di fine del supporto è stata il 13 dicembre 2022. Controlla il ciclo di vita dei prodotti Microsoft per ottenere informazioni sul modo in cui viene supportato questo prodotto, servizio, tecnologia o API. Per altre informazioni sull'aggiornamento alla versione più recente di IoT Edge, vedere Aggiornare IoT Edge.

In questo articolo si apprenderà come eseguire le attività seguenti:

  • Usare lo studio di Azure Machine Learning per eseguire il training di un modello di Machine Learning.
  • Assemblare il modello sottoposto a training in un'immagine del contenitore.
  • Distribuire l'immagine del contenitore come modulo Azure IoT Edge.

Machine Learning Studio è un blocco di base usato per sperimentare, eseguire il training e distribuire modelli di Machine Learning.

I passaggi di questo articolo vengono in genere eseguiti da data scientist.

In questa sezione dell'esercitazione si apprenderà come:

  • Creare notebook di Jupyter in un'area di lavoro di Azure Machine Learning per eseguire il training di un modello di Machine Learning.
  • Distribuire in un contenitore il modello di Machine Learning addestrato.
  • Creare un modulo IoT Edge dal modello di Machine Learning in contenitori.

Prerequisiti

Questo articolo fa parte di una serie di esercitazioni sull'uso di Machine Learning in IoT Edge. Ogni articolo della serie si basa sulle attività di quello precedente. Se si è arrivati direttamente a questo articolo, vedere il primo articolo della serie.

Configurare Azure Machine Learning

Si usa Machine Learning Studio per ospitare i due notebook jupyter e i file di supporto. In questo articolo viene creato e configurato un progetto di Machine Learning. Se non è stato usato Jupyter o Machine Learning Studio, ecco due documenti introduttivi:

Nota

Dopo aver configurato il servizio, Machine Learning può essere accessibile da qualsiasi computer. Durante l'installazione, è necessario usare la macchina virtuale di sviluppo, che include tutti i file necessari.

Installare l'estensione Azure Machine Learning per Visual Studio Code

Visual Studio Code nella macchina virtuale di sviluppo deve avere questa estensione installata. Se si esegue in un'istanza diversa, reinstallare l'estensione come descritto in Configurare l'estensione di Visual Studio Code.

Creare un account di Azure Machine Learning

Per effettuare il provisioning delle risorse ed eseguire carichi di lavoro in Azure, accedere con le credenziali dell'account Azure.

  1. In Visual Studio Code aprire il riquadro comandi selezionando Visualizza>Riquadro comandi sulla barra dei menu.

  2. Immettere il comando nel riquadro comandi Azure: Sign In per avviare il processo di accesso. Seguire le istruzioni per completare l'accesso.

  3. Creare un'istanza di calcolo di Machine Learning per eseguire il carico di lavoro. Nel riquadro comandi immettere il comando Azure ML: Create Compute.

  4. Selezionare la sottoscrizione di Azure.

  5. Selezionare + Crea nuova area di lavoro di Azure ML e immettere il nome turbofandemo.

  6. Selezionare il gruppo di risorse usato per questa demo.

  7. Verrà visualizzato lo stato di avanzamento della creazione dell'area di lavoro nell'angolo inferiore destro della finestra di Visual Studio Code: Creazione dell'area di lavoro: turobofandemo. Questo passaggio può richiedere un minuto o due.

  8. Attendere che l'area di lavoro venga creata correttamente. Si dovrebbe vedere un messaggio analogo a Area di lavoro di Azure ML turbofandemo creata.

Caricare i file del notebook di Jupyter

Verranno caricati i file del notebook di esempio in una nuova area di lavoro di Machine Learning.

  1. Passare a ml.azure.com e accedere.

  2. Selezionare la directory Microsoft, la sottoscrizione di Azure e l'area di lavoro di Machine Learning appena creata.

    Screenshot che mostra la selezione dell'area di lavoro di Azure Machine Learning.

  3. Dopo aver eseguito l'accesso all'area di lavoro di Machine Learning, passare alla sezione Notebook usando il menu a sinistra.

  4. Selezionare la scheda File personali.

  5. Selezionare Carica (icona freccia su).

  6. Passare a C:\source\IoTEdgeAndMlSample\AzureNotebook. Selezionare tutti i file nell'elenco e selezionare Apri.

  7. Selezionare la casella di controllo Attendibilità del contenuto di questi file .

  8. Selezionare Carica per iniziare a caricare. Selezionare Quindi Fine dopo il completamento del processo.

File di notebook di Jupyter

Esaminare i file caricati nell'area di lavoro di Machine Learning. Le attività in questa parte dell'esercitazione si estendono su due file di notebook, che usano alcuni file di supporto.

  • 01-turbofan_regression.ipynb: questo notebook usa l'area di lavoro Machine Learning per creare ed eseguire un esperimento di Machine Learning. In generale, il notebook esegue queste operazioni:

    1. Scarica i dati dall'account di archiviazione di Azure generato dall'harness del dispositivo.
    2. Esplora e prepara i dati e quindi usa i dati per eseguire il training del modello di classificatore.
    3. Valuta il modello dall'esperimento usando un set di dati di test (Test_FD003.txt).
    4. Pubblica il modello di classificatore migliore nell'area di lavoro Machine Learning.
  • 02-turbofan_deploy_model.ipynb: questo notebook accetta il modello creato nel notebook precedente e lo usa per creare un'immagine contenitore pronta per essere distribuita in un dispositivo IoT Edge. Il notebook esegue i passaggi seguenti:

    1. Crea uno script di assegnazione di punteggi per il modello.
    2. Produce un'immagine del contenitore usando il modello di classificatore salvato nell'area di lavoro Machine Learning.
    3. Distribuisce l'immagine come servizio Web in Istanze di Azure Container.
    4. Usa il servizio Web per verificare se il modello e l'immagine funzionano come previsto. L'immagine convalidata verrà distribuita nel dispositivo IoT Edge nella sezione Creare e distribuire moduli IoT Edge personalizzati di questa esercitazione.
  • Test_FD003.txt: questo file contiene i dati che verranno usati come set di test quando si convalida il classificatore sottoposto a training. Per semplicità, vengono usati i dati di test come set di test così come vengono forniti per il contesto originale.

  • RUL_FD003.txt: questo file contiene la durata utile rimanente (URL) per l'ultimo ciclo di ogni dispositivo nel file Test_FD003.txt. Per una spiegazione dettagliata dei dati, vedere la Modeling.pdf readme.txt e i file di propagazione dei danni in C:\source\IoTEdgeAndMlSample\data\Turbofan.

  • Utils.py: questo file contiene un set di funzioni di utilità Python per l'uso dei dati. Il primo notebook contiene una spiegazione dettagliata delle funzioni.

  • README.md: questo file readme descrive l'uso dei notebook.

Eseguire i notebook di Jupyter

Una volta creata l'area di lavoro, è possibile eseguire i notebook.

  1. Nella pagina File personali selezionare 01-turbofan_regression.ipynb.

    Screenshot che mostra la selezione del primo notebook da eseguire.

  2. Se il notebook è elencato come Non attendibile, selezionare il widget Not Trusted nell'angolo superiore destro del notebook. Quando viene visualizzata la finestra di dialogo, selezionare Attendibilità.

  3. Per ottenere risultati ottimali, leggere la documentazione relativa a ogni cella ed eseguirla singolarmente. Selezionare Run (Esegui) sulla barra degli strumenti. Più avanti, sarà necessario eseguire più celle. È possibile ignorare gli avvisi relativi ad aggiornamenti e deprecazioni.

    Quando una cella è in esecuzione, visualizza un asterisco tra le parentesi quadre ([*]). Al termine dell'operazione della cella, l'asterisco viene sostituito con un numero e l'output pertinente potrebbe essere visualizzato. Le celle in una compilazione sequenziale di un notebook e una sola cella può essere eseguita alla volta.

    È anche possibile usare le opzioni di esecuzione dal menu Cella . Selezionare CTRL+INVIO per eseguire una cella e selezionare MAIUSC+INVIO per eseguire una cella e passare alla cella successiva.

    Suggerimento

    Per operazioni coerenti sulle celle, evitare di eseguire lo stesso notebook da più schede del browser.

  4. Nella cella che segue le istruzioni Impostare le proprietà globali immettere i valori per la sottoscrizione, le impostazioni e le risorse di Azure. Eseguire quindi la cella.

    Screenshot che mostra l'impostazione delle proprietà globali nel notebook.

  5. Nella cella precedente ai dettagli dell'area di lavoro, dopo l'esecuzione, cercare il collegamento che indica di accedere per l'autenticazione.

    Screenshot che mostra la richiesta di accesso per l'autenticazione del dispositivo.

    Aprire il collegamento e immettere il codice specificato. Questa procedura di accesso autentica il notebook di Jupyter per accedere alle risorse di Azure usando l'interfaccia della riga di comando multipiattaforma di Microsoft Azure.

    Screenshot che mostra l'autenticazione dell'applicazione nella conferma del dispositivo.

  6. Nella cella che precede Explore the results (Esplora i risultati), copiare il valore dall'ID esecuzione e incollarlo per l'ID esecuzione nella cella che segue Reconstitute a run (Ricostituisci un'esecuzione).

    Screenshot che mostra la copia dell'ID di esecuzione tra le celle.

  7. Eseguire le celle rimanenti nel notebook.

  8. Salvare il notebook e tornare alla pagina del progetto.

  9. Aprire 02-turbofan_deploy_model.ipynb ed eseguire ogni cella. Sarà necessario accedere per eseguire l'autenticazione nella cella che segue Configura area di lavoro.

  10. Salvare il notebook e tornare alla pagina del progetto.

Verificare l'esito positivo

Per verificare se i notebook sono stati completati correttamente, controllare che siano stati creati alcuni elementi.

  1. Nella scheda File personali dei notebook di Machine Learning selezionare Aggiorna.

  2. Verificare che siano stati creati i file seguenti.

    File Descrizione
    ./aml_config/.azureml/config.json File di configurazione usato per creare l'area di lavoro di Machine Learning.
    ./aml_config/model_config.json File di configurazione che sarà necessario distribuire il modello nell'area di lavoro turbofanDemo Machine Learning in Azure.
    myenv.yml Fornisce informazioni sulle dipendenze per il modello di Machine Learning distribuito.
  3. Verificare che siano state create le risorse di Azure seguenti. Alcuni nomi di risorse vengono aggiunti con caratteri casuali.

    Risorsa di Azure Nome
    Area di lavoro di Azure Machine Learning turborfanDemo
    Registro Azure Container turbofandemoxxxxxxxx
    Application Insights turbofaninsightxxxxxxxx
    Insieme di credenziali chiave di Azure turbofankeyvaultbxxxxxxxx
    Archiviazione di Azure turbofanstoragexxxxxxxxx

Debug

È possibile inserire istruzioni Python nel notebook ai fini del debug, ad esempio il comando print() per mostrare i valori. Se vengono visualizzate variabili o oggetti non definiti, eseguire le celle in cui vengono dichiarate o create per la prima volta.

Se è necessario ripetere i notebook, potrebbe essere necessario eliminare i file creati in precedenza e le risorse di Azure.

Pulire le risorse

Questa esercitazione fa parte di un set in cui ogni articolo si basa sul lavoro svolto nei precedenti. Attendere di pulire tutte le risorse fino a completare l'esercitazione finale.

Passaggi successivi

In questo articolo sono stati usati due notebook jupyter in esecuzione in Machine Learning Studio per usare i dati dei dispositivi turbofan per:

  • Eseguire il training di un classificatore URL.
  • Salvare il classificatore come modello.
  • Creare un'immagine del contenitore.
  • Distribuire e testare l'immagine come servizio Web.

Continuare con l'articolo successivo per creare un dispositivo IoT Edge.