Oktatóanyag: Egy végpontok közötti megoldás az Azure Machine Learning és az IoT Edge használatával
A következőkre vonatkozik: IoT Edge 1.1
Fontos
Az IoT Edge 1.1 támogatási 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. Az IoT Edge legújabb verziójára való frissítésről további információt az IoT Edge frissítése 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 bemutatunk egy gépi tanulási modell betanítását a felhőbeli IoT-eszközökről gyűjtött adatokkal, a modell IoT Edge-ben való üzembe helyezésével, valamint a modell rendszeres karbantartásával és finomításával.
Feljegyzés
Az oktatóanyagok ebben a készletben az IoT Edge minden verziójára vonatkoznak, de a forgatókönyv kipróbálásához létrehozott mintaeszköz az IoT Edge 1.1-es verzióját futtatja.
Az oktatóanyag elsődleges célja az IoT-adatok gépi tanulással történő feldolgozásának bemutatása, különösen a peremhálózaton. Bár az á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 egy nagymértékben optimalizált modellt létrehozni a használati esethez – csak annyit teszünk, hogy szemléltetjük az IoT-adatfeldolgozáshoz használható életképes modell létrehozásának és használatának folyamatát.
Az oktatóanyag ezen szakasza a következőket ismerteti:
- Az oktatóanyag késő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 általános 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á kell férnie egy Azure-előfizetéshez, amelyben jogosultságokkal rendelkezik az erőforrások létrehozásához. Az oktatóanyagban használt szolgáltatások közül több is Azure-díjakat von maga után. Ha még nem rendelkezik Azure-előfizetéssel, előfordulhat, hogy megkezdheti az ingyenes Azure-fiók használatát.
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 adatelőkészítés és a gépi tanulási kísérletezés fő előtere. 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 nagy méretekben való futtatására is használhatók 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 notebookokban előkészített és tesztelt szkriptekkel vezetjük.
Azure IoT Edge gépi tanulási rendszerkép 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
Ez a cikkkészlet az IoT-fejlesztésben vagy gépi tanulásban szerzett korábbi tapasztalat nélküli 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 csatlakozhat ezekhez a technológiákhoz 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ítanak, míg az adattudósok az elemzési modelleket tervezték. Annak érdekében, hogy egy egyéni fejlesztő sikeresen elvégezhesse ezt az oktatóanyagot, kiegészítő útmutatást adtunk a további információkra mutató megállapításokkal és hivatkozásokkal, amelyek reményeink szerint elegendőek ahhoz, hogy megértsék, mi történik, és miért.
Másik lehetőségként összeállhat különböző szerepkörök munkatársaival, hogy együtt kövessék az oktatóanyagot, teljes szakértelemmel rendelkezzenek, és csapatként tanulják meg, 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 a DevOps-kapacitásban dolgozó felhőfejlesztőt is)
- Adatelemzés
Használati eset: Prediktív karbantartás
Ezt a forgatókönyvet a Prognosztikáról és egészségkezelésről szóló konferencián (PHM08) 2008-ban bemutatott használati eset alapján hoztuk létre. A cél az, hogy megjósolja a fennmaradó hasznos élettartam (RUL) egy sor turbofan repülőgép motorok. 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 rugalmas turbómotor-szimulációs környezetet biztosít az állapot, a vezérlés és a motorparaméterek kényelmes szimulálásához.
Az oktatóanyagban használt adatok a Turbofan motorcsökkenési 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. Minden adatkészletet tovább osztunk betanítási és tesztelési részhalmazokra. Minden idősor egy másik motorból származik, vagyis 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 variációval indul, amely ismeretlen a felhasználó számára. Ezt a kopást és variációt normálnak tekintik, azaz nem tekinthető 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 csoportban 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. A tesztadatok valódi fennmaradó hasznos élettartam (RUL) értékeinek vektorát is megadta.
Mivel az adatokat versenyben 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 gitHub-felhasználó, Jancervenka repülőgépmotor-meghibásodás-előrejelzési modellje .
A GitHub felhasználója, Hankroark turbómotor-lebomlása .
Feldolgozás
Az alábbi kép az oktatóanyagban követendő durva lépéseket mutatja be:
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 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.
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 foglalhat adattisztítást, adatreformálást vagy előfeldolgozást további információgép-tanulás injektálásához.
A repülőgépmotor-gép adatai 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őadat-minták és a motor várható hátralévő élettartama között. Ez a lépés erősen tartományspecifikus.
Gépi tanulási modell létrehozása. Az előkészített adatok alapján most már kísérletezhetünk különböző gépi tanulási algoritmusokkal és paraméterezésekkel 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.
A modell üzembe helyezése. Ha már rendelkezünk egy olyan modellel, amely megfelel a sikerességi feltételeknek, áttérhetünk az üzembe helyezésre. Ez magában foglalja a modell egy webszolgáltatás-alkalmazásba való befuttatását, amely REST-hívások és visszatérési elemzési eredmények használatával táplálható adatokkal. A webszolgáltatás-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 az IoT Edge-ben való üzembe helyezésre összpontosítunk.
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 az IoT Edge-ben.
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árjon, amíg el nem végzi a végleges oktatóanyagot, várja meg az erőforrások törlését.
Következő lépések
Ez az oktatóanyag a következő szakaszokra oszlik:
- Állítsa be a fejlesztőgépet és az Azure-szolgáltatásokat.
- Hozza létre a gépi tanulási modul betanítási adatait.
- A gépi tanulási modul betanítása és üzembe helyezése.
- Konfiguráljon egy IoT Edge-eszközt úgy, hogy transzparens átjáróként működjön.
- IoT Edge-modulok létrehozása és üzembe helyezése.
- Adatok küldése az IoT Edge-eszközre.
Folytassa a következő cikkben egy fejlesztőgép beállításával és Azure-erőforrások kiépítésével.