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 2022. december 13-án véget ért a támogatás 1.1-e. 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 Frissítés IoT Edge című témakörben talál.

Az IoT-alkalmazások gyakran szeretnék kihasználni az intelligens felhőt és az intelligens peremhálózatot. 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 üzembe helyezésével, valamint a modell rendszeres karbantartásával és finomításával.

Megjegyzés

Az ebben az oktatóanyag-készletben szereplő fogalmak a IoT Edge minden 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ása. 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 az IoT-adatfeldolgozás életképes modelljének létrehozásának és használatának folyamatát.

Az oktatóanyag ezen szakasza a következőket ismerteti:

  • Az oktatóanyag további részeinek elvégzé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, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Előfeltételek

Az oktatóanyag elvégzéséhez hozzáférésre van szüksége 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 futtathat egy Azure-beli virtuális gép fejlesztési gépként való beállításához.

Ebben a dokumentumban a következő eszközkészletet használjuk:

  • Azure IoT Hub adatrögzítéshez

  • Az Azure Notebooks az adat-elő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 adatok előkészítése során. A Jupyter-notebookok szkriptek előkészítésére is használhatók, hogy nagy léptékben fussanak egy számítási háttérrendszerben.

  • Az Azure Machine Learning háttérrendszerként szolgál 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-jegyzetfüzetekben előkészített és tesztelt szkriptekkel vezetjük.

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

Nyilvánvaló, hogy 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 a gépi tanulásban korábbi tapasztalatokkal nem rendelkező fejlesztőknek készült. A gépi tanulás peremhálózaton történő ü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 adtunk a megállapításokhoz és a további információkra mutató hivatkozásokhoz, amelyek reményeink szerint elegendőek ahhoz, hogy megértsék, mi történik, valamint hogy miért.

Másik lehetőségként különböző szerepkörökkel rendelkező munkatársakkal is összeállhat, hogy együtt követhesse az oktatóanyagot, teljes szakértelemmel rendelkezzen, és csapatként tanulhassa meg, hogyan illeszkednek egymáshoz a dolgok.

Az olvasó(k) tájékozódásához mindkét esetben az oktatóanyagban szereplő minden cikk a felhasználó szerepét jelzi. Ezek a szerepkörök a következők:

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

Használati eset: Prediktív karbantartás

Ezt a forgatókönyvet a Prognostics and Health Management (PHM08) konferencián 2008-ban bemutatott használati esetre alapoztuk. A cél a turbómotorok hátralévő hasznos élettartamának (RUL) előrejelzése. 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 oktatóanyagban használt adatok a Turbofan motorcsökkenési szimulációs adatkészletéből származnak.

A readme fájlból:

Kísérleti forgatókönyv

Az adathalmazok többváltozós idősorból állnak. Az egyes adathalmazok 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 egy azonos típusú motorflottából származnak. Minden motor különböző mértékű kezdeti kopással és gyártási változattal kezdődik, amely ismeretlen a felhasználó számára. Ezt a kopást és eltérést normálisnak tekintik, 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álisan működik, és a sorozat egy bizonyos pontján hibát fejleszt ki. 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 rendszer meghibásodása előtt egy ideig véget ér. A verseny célja a fennmaradó működési ciklusok számának előrejelzése a tesztkészlet meghibásodása előtt, azaz a motor utolsó ciklusa utáni működési ciklusok száma. Emellett a tesztadatok valódi Hasznos élettartam (RUL) értékeinek vektorát is biztosította.

Mivel az adatokat egy verseny keretében tették közzé, a gépi tanulási modellek származtatásának számos megközelítése egymástól függetlenül lett közzétéve. 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:

A repülőgépmotor meghibásodás-előrejelzési modellje a GitHub felhasználója, jancervenka.

A Turbómotor lebomlását a GitHub felhasználója, hankroark végzi.

Folyamat

Az alábbi képen az oktatóanyagban követendő durva lépések láthatóak:

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 már összegyűjtöttük az adatokat, é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 nem rendelkezik turbómotorok gyűjteményével, így a projektfájlok egy egyszerű eszközszimulátort tartalmaznak, amely elküldi a NASA eszközadatait 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 adatok előkészítése szükséges a gépi tanuláshoz. 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 időszá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 sikerfeltételeinknek, áttérhetünk az üzembe helyezésre. Ez magában foglalja a modell egy webszolgáltatás-alkalmazásba való becsomagolását, amely REST-hívásokkal és visszaadott elemzési eredményekkel táplálható adatokkal. A webszolgáltatás-alkalmazás ezután egy docker-tárolóba van csomagolva, amely ü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 rendszeresen 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ás é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.