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

Si applica a:yes icon IoT Edge 1.1

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 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

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

Nota

Dopo aver configurato il servizio, è possibile accedere Machine Learning da qualsiasi computer. Durante l'installazione, è consigliabile 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 essere installata questa estensione. Se si esegue in un'istanza diversa, reinstallare l'estensione come descritto in Configurare l'estensione 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 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

I file del notebook di esempio verranno caricati in una nuova area di lavoro Machine Learning.

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

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

    Screenshot that shows selecting your Azure Machine Learning workspace.

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

  4. Selezionare la scheda File personali.

  5. Selezionare Upload (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 Upload per iniziare il caricamento. Selezionare quindi Fine al termine del processo.

File di notebook di Jupyter

Esaminare i file caricati nell'area di lavoro 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 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 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 viene convalidato 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 i file readme.txt e la propagazion Modeling.pdf e 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 that shows selecting the first notebook to run.

  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 troverà l'espediente per eseguire più celle. È possibile ignorare gli avvisi relativi ad aggiornamenti e deprecazioni.

    Quando una cella è in esecuzione, viene visualizzato un asterisco tra 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 Impostare le proprietà globali immettere i valori per la sottoscrizione, le impostazioni e le risorse di Azure. Eseguire quindi la cella.

    Screenshot that shows setting global properties in the 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 that shows the sign-in prompt for device authentication.

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

    Screenshot that shows authenticating application on device confirmation.

  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 that shows copying the run ID between cells.

  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 Machine Learning notebook 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 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 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 finché 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 dai 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.