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

Si applica a: Icona Sì IoT Edge 1.1

Importante

La data di fine del supporto di IoT Edge 1.1 è 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 fondamentale 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, è possibile accedere a Machine Learning 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 Azure: Sign In nel riquadro comandi 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. Seleziona la tua 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 in basso a destra 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

I file di notebook di esempio verranno caricati 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\AzureNotebooks. Selezionare tutti i file nell'elenco e selezionare Apri.

  7. Selezionare la casella di controllo Considera attendibile il contenuto di questi file .

  8. Selezionare Carica per iniziare il caricamento. Selezionare quindi Fine al termine 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 di 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 di Machine Learning.
  • 02-turbofan_deploy_model.ipynb: questo notebook accetta il modello creato nel notebook precedente e lo usa per creare un'immagine del 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 di 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 durante la convalida del 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 Modeling.pdf, vedere i file readme.txt e 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 leggimi 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 Non attendibile nell'angolo in alto a destra 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, si scoprirà che è opportuno eseguire più celle. È possibile ignorare gli avvisi relativi ad aggiornamenti e deprecazioni.

    Quando una cella è in esecuzione, viene visualizzato un asterisco tra le parentesi quadre ([*]). Al termine dell'operazione della cella, l'asterisco viene sostituito con un numero e potrebbe essere visualizzato l'output pertinente. Le celle di un notebook vengono compilate in sequenza 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 premere 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 Imposta 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 a Dettagli 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 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 i file seguenti siano stati creati.

    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
    Azure Machine Learning workspace (Area di lavoro di Azure Machine Learning) turborfanDemo
    Registro Azure Container turbofandemoxxxxxxxx
    Application Insights turbofaninsightxxxxxxxx
    Azure Key Vault 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 prima dichiarate o create istanze.

Potrebbe essere necessario eliminare i file creati in precedenza e le risorse di Azure se è necessario ripetere i notebook.

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 quando non si completa 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.