Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
IoT Edge 1.1
Importante
La data di fine del supporto di IoT Edge 1.1 è stata il 13 dicembre 2022. Controllare il ciclo di vita del prodotto Microsoft per informazioni su come è supportato questo prodotto, servizio, tecnologia o API. Per altre informazioni sull'aggiornamento alla versione più recente di IoT Edge, vedere Aggiornare IoT Edge.
Spesso, le applicazioni IoT vogliono sfruttare il cloud intelligente e l'edge intelligente. In questa esercitazione viene illustrato come eseguire il training di un modello di Machine Learning con i dati raccolti dai dispositivi IoT nel cloud, distribuirlo in IoT Edge e mantenere e perfezionare periodicamente il modello.
Annotazioni
I concetti di questo set di esercitazioni si applicano a tutte le versioni di IoT Edge, ma il dispositivo di esempio creato per provare lo scenario esegue IoT Edge versione 1.1.
L'obiettivo principale di questo tutorial è introdurre l'elaborazione dei dati IoT con l'apprendimento automatico, in particolare sull'edge. Anche se si toccano molti aspetti di un flusso di lavoro di Machine Learning generale, questa esercitazione non è destinata a un'introduzione approfondita all'apprendimento automatico. Come caso, non si tenta di creare un modello altamente ottimizzato per il caso d'uso, ma è sufficiente per illustrare il processo di creazione e l'uso di un modello praticabile per l'elaborazione dei dati IoT.
Questa sezione dell'esercitazione illustra:
- Prerequisiti per completare le parti successive dell'esercitazione.
- Il pubblico target del tutorial.
- Il caso d'uso che il tutorial simula.
- Il processo complessivo seguito dal tutorial per realizzare il caso d'uso.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Prerequisiti
Per completare l'esercitazione, è necessario accedere a una sottoscrizione di Azure in cui si dispone dei diritti per creare le risorse. Diversi dei servizi usati in questa esercitazione comportano addebiti per Azure. Se non si ha già una sottoscrizione di Azure, è possibile iniziare a usare un account Gratuito di Azure.
È anche necessario un computer con PowerShell installato in cui è possibile eseguire script per configurare una macchina virtuale di Azure come computer di sviluppo.
In questo documento viene usato il set di strumenti seguente:
Un hub IoT di Azure per l'acquisizione dei dati
Azure Notebooks è il front-end principale per la preparazione dei dati e la sperimentazione di Machine Learning. L'esecuzione di codice Python in un notebook in un subset dei dati di esempio è un ottimo modo per ottenere un turnaround iterativo e interattivo rapido durante la preparazione dei dati. I notebook di Jupyter possono essere usati anche per preparare gli script da eseguire su larga scala in un back-end di calcolo.
Azure Machine Learning come back-end per Machine Learning su larga scala e per la generazione di immagini di Machine Learning. Viene eseguito il back-end di Azure Machine Learning usando script preparati e testati nei notebook di Jupyter.
Azure IoT Edge per un'applicazione off-cloud di un'immagine di Machine Learning
Ovviamente, ci sono altre opzioni disponibili. In alcuni scenari, ad esempio, IoT Central può essere usato come alternativa senza codice per acquisire i dati di training iniziali dai dispositivi IoT.
Destinatari e ruoli
Questo set di articoli è destinato agli sviluppatori senza esperienza precedente nello sviluppo IoT o nell'apprendimento automatico. La distribuzione di Machine Learning nei dispositivi perimetrali richiede una conoscenza di come connettere un'ampia gamma di tecnologie. Di conseguenza, questa esercitazione illustra un intero scenario end-to-end per illustrare un modo per unire queste tecnologie insieme per una soluzione IoT. In un ambiente reale, queste attività potrebbero essere distribuite tra diverse persone con specializzazioni diverse. Ad esempio, gli sviluppatori si concentrerebbero sul codice del dispositivo o sul cloud, mentre i data scientist hanno progettato i modelli di analisi. Per consentire a un singolo sviluppatore di completare correttamente questa esercitazione, abbiamo fornito indicazioni supplementari con informazioni dettagliate e collegamenti ad altre informazioni che speriamo sia sufficiente per comprendere cosa si sta facendo, nonché perché.
In alternativa, è possibile collaborare con colleghi di ruoli diversi per seguire il tutorial, mettendo a frutto tutte le vostre competenze e imparando insieme come tutto si incastra.
In entrambi i casi, per orientare i lettori, ogni articolo di questa esercitazione indica il ruolo dell'utente. Questi ruoli includono:
- Sviluppo cloud (incluso uno sviluppatore cloud che lavora in una capacità DevOps)
- Analisi dei dati
Caso d'uso: manutenzione predittiva
Questo scenario è basato su un caso d'uso presentato alla Conferenza su Prognostics and Health Management (PHM08) nel 2008. L'obiettivo è prevedere la vita utile rimanente (URL) di un set di motori di aeroplani turbofan. Questi dati sono stati generati usando C-MAPSS, la versione commerciale del software MAPSS (Modular Aero-Propulsion System Simulation). Questo software fornisce un ambiente flessibile di simulazione motore turbofan per simulare facilmente i parametri di integrità, controllo e motore.
I dati usati in questa esercitazione provengono dal set di dati di simulazione della riduzione delle prestazioni del motore Turbofan.
Dal file leggimi:
Scenario sperimentale
I set di dati sono costituiti da più serie temporali multivariate. Ogni set di dati è suddiviso ulteriormente in subset di training e test. Ogni serie temporale proviene da un motore diverso, ovvero i dati possono essere considerati da una flotta di motori dello stesso tipo. Ogni motore inizia con diversi gradi di usura iniziale e variazione di produzione che è sconosciuto all'utente. Questa usura e variazione è considerata normale, ovvero non è considerata una condizione di errore. Esistono tre impostazioni operative che hanno un effetto sostanziale sulle prestazioni del motore. Queste impostazioni sono incluse anche nei dati. I dati sono contaminati dal rumore del sensore.
Il motore funziona normalmente all'inizio di ogni serie temporale e sviluppa un errore a un certo punto durante la serie. Nel set di training l'errore aumenta di grandezza fino a quando non si verifica un errore di sistema. Nel set di test la serie temporale termina un po' di tempo prima dell'errore di sistema. L'obiettivo della concorrenza è prevedere il numero di cicli operativi rimanenti prima dell'errore nel set di test, ovvero il numero di cicli operativi dopo l'ultimo ciclo che il motore continuerà a funzionare. È stato inoltre fornito un vettore di valori veri di Vita Utile Rimanente (RUL) per i dati di test.
Poiché i dati sono stati pubblicati per una competizione, sono stati pubblicati in modo indipendente diversi approcci per derivare i modelli di Machine Learning. È stato rilevato che lo studio degli esempi è utile per comprendere il processo e il ragionamento coinvolti nella creazione di un modello di Machine Learning specifico. Vedere ad esempio:
Modello di previsione dei guasti dei motori di aerei da parte dell'utente di GitHub jancervenka.
Riduzione delle prestazioni del motore Turbofan da parte dell'utente di GitHub hankroark.
Processo
L'immagine seguente illustra i passaggi approssimativi seguiti in questa esercitazione:
Raccogliere dati di training: il processo inizia raccogliendo dati di training. In alcuni casi, i dati sono già stati raccolti e sono disponibili in un database o sotto forma di file di dati. In altri casi, in particolare per gli scenari IoT, i dati devono essere raccolti da dispositivi e sensori IoT e archiviati nel cloud.
Si supponga di non avere una raccolta di motori turbofan, quindi i file di progetto includono un semplice simulatore di dispositivi che invia i dati del dispositivo NASA al cloud.
Preparare i dati. Nella maggior parte dei casi, i dati non elaborati raccolti dai dispositivi e dai sensori richiederanno la preparazione per l'apprendimento automatico. Questo passaggio può comportare la pulizia dei dati, la riformattazione dei dati o la pre-elaborazione per inserire informazioni aggiuntive da cui l'apprendimento automatico può trarre spunto.
Per i dati delle macchine del motore dell'aereo, la preparazione dei dati prevede il calcolo esplicito dei tempi di time-to-failure per ogni punto dati nel campione in base alle osservazioni effettive sui dati. Queste informazioni consentono all'algoritmo di Machine Learning di trovare correlazioni tra i modelli di dati dei sensori effettivi e il tempo di vita rimanente previsto del motore. Questo passaggio è estremamente specifico del dominio.
Creare un modello di Machine Learning. In base ai dati preparati, è ora possibile sperimentare diversi algoritmi di Machine Learning e parametrizzazione per eseguire il training dei modelli e confrontarli tra loro.
In questo caso, per i test viene confrontato il risultato stimato calcolato dal modello con il risultato reale osservato in un set di motori. In Azure Machine Learning è possibile gestire le diverse iterazioni dei modelli creati in un registro dei modelli.
Distribuire il modello. Dopo aver ottenuto un modello che soddisfa i criteri di successo, è possibile passare alla distribuzione. Ciò comporta l'incapsulamento del modello in un'applicazione di servizio web, che può essere fornita di dati tramite chiamate REST e a restituire i risultati dell'analisi. L'app del servizio Web viene quindi inserita in un contenitore Docker, che a sua volta può essere distribuita nel cloud o come modulo IoT Edge. In questo esempio ci concentriamo sulla distribuzione in IoT Edge.
Gestire e perfezionare il modello. Il nostro lavoro non finisce una volta che il modello è distribuito. In molti casi, si vuole continuare a raccogliere dati e caricare periodicamente i dati nel cloud. È quindi possibile usare questi dati per ripetere il training e perfezionare il modello, che sarà quindi possibile ridistribuire in IoT Edge.
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
Questa esercitazione è suddivisa nelle sezioni seguenti:
- Configurare il computer di sviluppo e i servizi di Azure.
- Generare i dati di training per il modulo di Machine Learning.
- Addestrare e distribuire il modulo di apprendimento automatico.
- Configurare un dispositivo IoT Edge per fungere da gateway trasparente.
- Creare e distribuire moduli IoT Edge.
- Inviare dati al dispositivo IoT Edge.
Continuare con l'articolo successivo per configurare un computer di sviluppo ed effettuare il provisioning delle risorse di Azure.