Oktatóanyag: Egy végpontok közötti megoldás az Azure Machine Learning és a IoT Edge használatával

A következőre vonatkozik: igenikon IoT Edge 1.1

Fontos

IoT Edge támogatás megszűnésének dátuma 2022. december 13. volt. A termék, szolgáltatás, technológia vagy API támogatásáról a Microsoft-termékek életciklusa című leírásból tájékozódhat. A IoT Edge legújabb verziójára való frissítésről további információt a IoT Edge frissítése című témakörben talál.

Az IoT-alkalmazások gyakran szeretnék kihasználni az intelligens felhő és az intelligens peremhálózat előnyeit. Ebben az oktatóanyagban végigvezetjük egy gépi tanulási modell betanításán a felhőben található IoT-eszközökről gyűjtött adatokkal, a modell IoT Edge való üzembe helyezésével, valamint a modell rendszeres karbantartásával és finomításával.

Megjegyzés

Az oktatóanyagok ezen készletének alapelvei a IoT Edge összes verziójára vonatkoznak, de a forgatókönyv kipróbálásához létrehozott mintaeszköz IoT Edge 1.1-es verziót futtatja.

Az oktatóanyag elsődleges célja, hogy bemutassa az IoT-adatok feldolgozását a gépi tanulással, különösen a peremhálózaton. Bár egy általános gépi tanulási munkafolyamat számos aspektusát érintjük, ez az oktatóanyag nem a gépi tanulás részletes bemutatásaként szolgál. Ebben az esetben nem kísérelünk meg nagymértékben optimalizált modellt létrehozni a használati esethez – csak annyit teszünk, hogy szemléltetjük egy működőképes modell létrehozásának és használatának folyamatát az IoT-adatfeldolgozáshoz.

Az oktatóanyagnak ez a szakasza a következőket ismerteti:

  • Az oktatóanyag további részeinek teljesítéséhez szükséges előfeltételek.
  • Az oktatóanyag célközönsége.
  • Az oktatóanyag által szimulált használati eset.
  • Az oktatóanyag által követett teljes folyamat a használati eset teljesítéséhez.

Ha nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egy ingyenes fiókot .

Előfeltételek

Az oktatóanyag elvégzéséhez hozzá kell férnie egy Olyan Azure-előfizetéshez, amelyben jogosultságokkal rendelkezik az erőforrások létrehozásához. Az oktatóanyagban használt számos szolgáltatás Azure-díjakat von maga után. Ha még nem rendelkezik Azure-előfizetéssel, előfordulhat, hogy elkezdheti használni az ingyenes Azure-fiókot.

Olyan gépre is szüksége van, amelyen telepítve van a PowerShell, ahol szkripteket futtatva beállíthat egy Azure-beli virtuális gépet fejlesztési gépként.

Ebben a dokumentumban a következő eszközöket használjuk:

  • Azure IoT Hub adatrögzítéshez

  • Az Azure Notebooks az adatelőkészítés és a gépi tanulási kísérletezés fő kezelőfelülete. Ha Python-kódot futtat egy jegyzetfüzetben a mintaadatok egy részhalmazán, nagyszerű módja annak, hogy gyors iteratív és interaktív fordulatot kapjon az adatelőkészítés során. A Jupyter-notebookok szkriptek előkészítésére is használhatók, hogy nagy méretekben fussanak egy számítási háttérrendszerben.

  • Az Azure Machine Learning háttérrendszere a nagy léptékű gépi tanuláshoz és a gépi tanulási rendszerképek létrehozásához. Az Azure Machine Learning háttérrendszerét Jupyter-notebookokban előkészített és tesztelt szkriptekkel vezetjük.

  • Azure IoT Edge a gépi tanulási rendszerképek felhőn kívüli alkalmazásához

Természetesen más lehetőségek is rendelkezésre állnak. Bizonyos esetekben például az IoT Central kód nélküli alternatívaként használható az IoT-eszközök kezdeti betanítási adatainak rögzítéséhez.

Célközönség és szerepkörök megcélzása

Ez a cikkkészlet az IoT-fejlesztésben vagy gépi tanulásban szerzett korábbi tapasztalattal nem rendelkező fejlesztőknek készült. A gépi tanulás peremhálózati üzembe helyezéséhez ismerni kell a technológiák széles körének összekapcsolását. Ezért ez az oktatóanyag egy teljes körű forgatókönyvet mutat be, amely bemutatja, hogyan lehet összekapcsolni ezeket a technológiákat egy IoT-megoldáshoz. Valós környezetben ezek a feladatok több különböző specializációval rendelkező személy között is eloszthatók. A fejlesztők például az eszközre vagy a felhőkódra összpontosítanának, míg az adatelemzők az elemzési modelleket tervezték. Annak érdekében, hogy az egyes fejlesztők sikeresen elvégezhessék ezt az oktatóanyagot, kiegészítő útmutatást és további információkra mutató hivatkozásokat biztosítunk, amelyek reményeink szerint elegendőek ahhoz, hogy megértsék, mi történik, és hogy miért.

Azt is megteheti, hogy összeáll a különböző szerepkörökkel rendelkező munkatársakkal, hogy együtt követhesse az oktatóanyagot, így teljes szakértelmét el tudja viselni, és csapatként megtanulhatja, hogyan illeszkednek egymáshoz a dolgok.

Az olvasó(k) tájékozódásának elősegítése érdekében az oktatóanyag minden cikke a felhasználó szerepét jelzi. Ezek a szerepkörök a következők:

  • Felhőfejlesztés (beleértve egy DevOps-kapacitásban dolgozó felhőfejlesztőt)
  • Adatelemzés

Használati eset: Prediktív karbantartás

Ezt a forgatókönyvet a prognosztikákról és egészségkezelésről szóló konferencián (PHM08) bemutatott használati eset alapján 2008-ban mutattuk be. A cél a fennmaradó hasznos élettartam (RUL) előrejelzése egy sor turbórepülőgépből. Ezeket az adatokat a MAPSS (Modular Aero-Propulsion System Simulation) szoftver kereskedelmi verziójával, a C-MAPSS-sel hozták létre. Ez a szoftver egy rugalmas turbómotor-szimulációs környezetet biztosít, amely kényelmesen szimulálja az állapotot, a vezérlést és a motor paramétereit.

Az ebben az oktatóanyagban használt adatok a Turbofan motor degradációs szimulációs adatkészletéből származnak.

Az olvasófájlból:

Kísérleti forgatókönyv

Az adathalmazok több többváltozós idősorból állnak. Az egyes adatkészletek tovább vannak osztva betanítási és tesztelési részhalmazokra. Minden idősor egy másik motorból származik, azaz az adatok azonos típusú motorflotta-flottából származnak. Minden motor különböző mértékű kezdeti kopással és gyártási eltéréssel kezdődik, amely ismeretlen a felhasználó számára. Ez a kopás és a variáció normálisnak tekinthető, azaz nem minősül hibaállapotnak. Három működési beállítás van, amelyek jelentős hatással vannak a motor teljesítményére. Ezeket a beállításokat az adatok is tartalmazzák. Az adatok érzékelőzajjal szennyezettek.

A motor az egyes idősorok elején normál módon működik, és a sorozat egy bizonyos pontján hibát okoz. A betanítási készletben a hiba nagyságrendekkel növekszik a rendszer meghibásodásáig. A tesztkészletben az idősor a rendszerhiba előtt egy bizonyos idővel véget ér. A verseny célja a fennmaradó működési ciklusok számának előrejelzése a vizsgálati készlet meghibásodása előtt, azaz a motor utolsó ciklusa utáni működési ciklusok száma. A tesztadatokhoz egy valódi fennmaradó hasznos élettartam (RUL) értékeket is megadott.

Mivel az adatokat egy verseny számára tették közzé, a gépi tanulási modellek származtatásának számos módszerét egymástól függetlenül tették közzé. Megállapítottuk, hogy a példák tanulmányozása hasznos egy adott gépi tanulási modell létrehozásának folyamatának és érvelésének megértésében. Lásd például:

Repülőgépmotor hiba-előrejelzési modellje a GitHub-felhasználó, jancervenka szerint.

Turbofan motor teljesítménycsökkenés GitHub felhasználó hankroark.

Folyamat

Az alábbi kép az oktatóanyagban követendő durva lépéseket mutatja be:

Architektúradiagram a folyamat lépéseihez

  1. Betanítási adatok gyűjtése: A folyamat a betanítási adatok gyűjtésével kezdődik. Bizonyos esetekben az adatok már összegyűjtöttek és elérhetők egy adatbázisban vagy adatfájlok formájában. Más esetekben, különösen az IoT-forgatókönyvek esetében, az adatokat IoT-eszközökről és érzékelőkről kell gyűjteni, és a felhőben kell tárolni.

    Feltételezzük, hogy ön nem rendelkezik turbómotorok gyűjteményével, így a projektfájlok tartalmaznak egy egyszerű eszközszimulátort, amely elküldi a NASA-eszközadatokat a felhőbe.

  2. Adatok előkészítése. A legtöbb esetben az eszközökről és érzékelőkről gyűjtött nyers adatoknak elő kell készülniük a gépi tanulásra. Ez a lépés magában foglalhatja az adatok törlését, az adatok újraformázását vagy az előfeldolgozást, hogy további információgép-tanulást injektáljon.

    A repülőgépmotor gépadatai esetében az adatelőkészítés magában foglalja a minta minden adatpontjának explicit meghibásodási idejének kiszámítását az adatok tényleges megfigyelései alapján. Ezek az információk lehetővé teszik, hogy a gépi tanulási algoritmus korrelációkat keressen a tényleges érzékelőadatok mintái és a motor várható hátralévő élettartama között. Ez a lépés erősen tartományspecifikus.

  3. Gépi tanulási modell létrehozása. Az előkészített adatok alapján most már különböző gépi tanulási algoritmusokkal és paraméterezésekkel kísérletezhetünk a modellek betanításához és az eredmények összehasonlításához.

    Ebben az esetben a teszteléshez összehasonlítjuk a modell által kiszámított előrejelzett eredményt a motorkészleten megfigyelt valós eredménnyel. Az Azure Machine Learningben kezelheti a modellregisztrációs adatbázisban létrehozott modellek különböző iterációit.

  4. A modell üzembe helyezése. Ha már rendelkezünk egy olyan modellel, amely megfelel a sikerességi feltételnek, áttérhetünk az üzembe helyezésre. Ez magában foglalja a modell egy webszolgáltatás-alkalmazásba való burkolásával, amely REST-hívásokkal és visszatérési elemzési eredményekkel táplálható adatokkal. A webszolgáltatási alkalmazás ezután egy Docker-tárolóba van csomagolva, amely viszont üzembe helyezhető a felhőben vagy IoT Edge modulként. Ebben a példában a IoT Edge üzembe helyezésére összpontosítunk.

  5. A modell karbantartása és finomítása. A mi munkánk nem történik meg a modell üzembe helyezése után. Sok esetben szeretnénk folytatni az adatgyűjtést, és rendszeres időközönként feltölteni az adatokat a felhőbe. Ezután ezeket az adatokat felhasználhatjuk a modell újratanítására és finomítására, amelyet aztán újra üzembe helyezhetünk a IoT Edge.

Az erőforrások eltávolítása

Ez az oktatóanyag egy olyan készlet része, amelyben minden cikk az előzőekben elvégzett munkára épül. Várja meg az erőforrások törlését, amíg be nem fejezi az utolsó oktatóanyagot.

Következő lépések

Ez az oktatóanyag a következő szakaszokra oszlik:

  1. Állítsa be a fejlesztői gépet és az Azure-szolgáltatásokat.
  2. Hozza létre a gépi tanulási modul betanítási adatait.
  3. A gépi tanulási modul betanítása és üzembe helyezése.
  4. Konfiguráljon egy IoT Edge eszközt transzparens átjáróként való működéshez.
  5. IoT Edge modulok létrehozása és üzembe helyezése.
  6. Adatok küldése IoT Edge eszközre.

Folytassa a következő cikkel, amely egy fejlesztői gép beállítását és Azure-erőforrások kiépítését ismerteti.