Kurz: Komplexní řešení s využitím služby Azure Machine Learning a IoT Edge

Platí pro:ano ikona IoT Edge 1.1

Důležité

IoT Edge 1.1 datum ukončení podpory bylo 13. prosince 2022. Informace o způsobu podpory tohoto produktu, služby, technologie nebo rozhraní API najdete v tématu věnovaném životnímu cyklu produktů Microsoftu. Další informace o aktualizaci na nejnovější verzi IoT Edge najdete v tématu Aktualizace IoT Edge.

Aplikace IoT často chtějí využívat výhod inteligentního cloudu a inteligentních hraničních zařízení. V tomto kurzu vás provedeme trénováním modelu strojového učení s daty shromážděnými ze zařízení IoT v cloudu, nasazením tohoto modelu do IoT Edge a pravidelnou údržbou a vylepšováním modelu.

Poznámka

Koncepty v této sadě kurzů platí pro všechny verze IoT Edge, ale ukázkové zařízení, které vytvoříte pro vyzkoušení scénáře, běží IoT Edge verze 1.1.

Primárním cílem tohoto kurzu je představit zpracování dat IoT pomocí strojového učení, konkrétně na hraničních zařízeních. I když se dotkneme mnoha aspektů obecného pracovního postupu strojového učení, tento kurz není zamýšlen jako podrobný úvod do strojového učení. V tomto případě se nepokoušáme vytvořit vysoce optimalizovaný model pro případ použití – stačí, abychom ilustrovali proces vytvoření a použití životaschopného modelu pro zpracování dat IoT.

Tato část kurzu popisuje:

  • Předpoklady pro dokončení následujících částí kurzu
  • Cílová skupina kurzu.
  • Případ použití, který kurz simuluje.
  • Celkový proces, který kurz sleduje, aby se splnil případ použití.

Pokud nemáte předplatné Azure, vytvořte si před zahájením bezplatného účtu .

Požadavky

K dokončení kurzu potřebujete přístup k předplatnému Azure, ve kterém máte práva k vytváření prostředků. Za několik služeb použitých v tomto kurzu se budou účtovat poplatky za Azure. Pokud ještě nemáte předplatné Azure, možná budete moct začít používat bezplatný účet Azure.

Potřebujete také počítač s nainstalovaným Prostředím PowerShell, kde můžete spouštět skripty pro nastavení virtuálního počítače Azure jako vývojového počítače.

V tomto dokumentu používáme následující sadu nástrojů:

  • Azure IoT Hub pro zachytávání dat

  • Azure Notebooks jako hlavní front-end pro přípravu dat a experimentování se strojovým učením. Spuštění kódu Pythonu v poznámkovém bloku na podmnožině ukázkových dat je skvělý způsob, jak během přípravy dat rychle iterativní a interaktivní otočení provést. Poznámkové bloky Jupyter je také možné použít k přípravě skriptů pro spouštění ve velkém měřítku ve výpočetním back-endu.

  • Azure Machine Learning jako back-end pro strojové učení ve velkém měřítku a pro generování imagí strojového učení Back-end služby Azure Machine Learning řídíme pomocí skriptů připravených a otestovaných v poznámkových blocích Jupyter.

  • Azure IoT Edge pro mimo cloudovou aplikaci image strojového učení

Samozřejmě jsou k dispozici i další možnosti. V určitých scénářích je například možné ioT Central použít jako alternativu bez kódu k zachycení počátečních trénovacích dat ze zařízení IoT.

Cílová skupina a role

Tato sada článků je určená pro vývojáře bez předchozích zkušeností s vývojem IoT nebo strojovém učením. Nasazení strojového učení na hraničních zařízeních vyžaduje znalost připojení široké škály technologií. Tento kurz se proto zabývá kompletním scénářem, který ukazuje jeden ze způsobů, jak tyto technologie spojit pro řešení IoT. V reálném prostředí můžou být tyto úkoly rozdělené mezi několik lidí s různými specializacemi. Vývojáři by se například zaměřili na kód zařízení nebo cloudu, zatímco datoví vědci navrhli analytické modely. Abychom jednotlivým vývojářům umožnili úspěšně dokončit tento kurz, poskytli jsme doplňkové pokyny s přehledy a odkazy na další informace, které, jak doufáme, budou stačit k pochopení toho, co se dělá a proč.

Případně se můžete spojit se spolupracovníky různých rolí, abyste mohli tento kurz společně sledovat, abyste mohli využít své znalosti a jako tým se naučit, jak věci do sebe zapadají.

V obou případech každý článek v tomto kurzu označuje roli uživatele, aby se čtenáři mohli zorientovat. Mezi tyto role patří:

  • Cloudový vývoj (včetně cloudového vývojáře pracujícího v kapacitě DevOps)
  • Analýza dat

Případ použití: Prediktivní údržba

Tento scénář vychází z případu použití, který byl prezentován na konferenci o prognostice a managementu stavu (PHM08) v roce 2008. Cílem je předpovědět zbývající životnost (RUL) sady motorů pro letadla s turbodmychadlovými motory. Tato data byla generována pomocí C-MAPSS, komerční verze softwaru MAPSS (Modular Aero-Propulsion System Simulation). Tento software poskytuje flexibilní turbofanové prostředí simulace motoru pohodlně simulovat stav, řízení a parametry motoru.

Data použitá v tomto kurzu jsou převzata ze sady dat simulace degradace motoru Turbofan.

Ze souboru readme:

Experimentální scénář

Datové sady se skládají z několika vícerozměrných časových řad. Každá datová sada je dále rozdělena na trénovací a testovací podmnožiny. Každá časová řada pochází z jiného motoru – to je možné považovat za data z flotily motorů stejného typu. Každý motor začíná s různými stupni počátečního opotřebení a výrobní odchylky, které uživatel nezná. Toto opotřebení a variace se považují za normální, tj. nejsou považovány za poruchový stav. Existují tři provozní nastavení, která mají podstatný vliv na výkon motoru. Tato nastavení jsou také zahrnuta v datech. Data jsou kontaminována šumem senzoru.

Motor funguje normálně na začátku každé časové řady a v určitém okamžiku řady dojde k chybě. V trénovací sadě se chyba zvětšuje až do selhání systému. V testovací sadě končí časová řada před selháním systému. Cílem soutěže je předpovědět počet zbývajících provozních cyklů před selháním v testovací sadě, tj. počet provozních cyklů po posledním cyklu, který bude motor nadále fungovat. Poskytli jsme také vektor hodnot true Remaining Useful Life (RUL) pro testovací data.

Vzhledem k tomu, že data byla publikována pro soutěž, bylo nezávisle publikováno několik přístupů k odvození modelů strojového učení. Zjistili jsme, že studium příkladů je užitečné při pochopení procesu a odůvodnění při vytváření konkrétního modelu strojového učení. Viz příklad:

Model predikce selhání leteckého motoru podle uživatele GitHubu jancervenka.

Snížení výkonu turbofanového modulu uživatelem GitHubu hankroark.

Proces

Následující obrázek znázorňuje hrubé kroky, které v tomto kurzu provádíme:

Diagram architektury pro kroky procesu

  1. Shromažďování trénovacích dat: Proces začíná shromažďováním trénovacích dat. V některých případech již byla data shromážděna a jsou k dispozici v databázi nebo ve formě datových souborů. V jiných případech, zejména ve scénářích IoT, musí být data shromažďována ze zařízení a senzorů IoT a uložena v cloudu.

    Předpokládáme, že nemáte kolekci turbofanových motorů, takže soubory projektu obsahují jednoduchý simulátor zařízení, který odesílá data zařízení NASA do cloudu.

  2. Příprava dat Nezpracovaná data shromážděná ze zařízení a senzorů budou ve většině případů vyžadovat přípravu na strojové učení. Tento krok může zahrnovat vyčištění dat, přeformátování dat nebo předběžné zpracování za účelem vložení dalších informací, které strojové učení může vypnout.

    Příprava dat našich strojů pro letecké stroje zahrnuje výpočet explicitní doby selhání pro každý datový bod ve vzorku na základě skutečných pozorování dat. Tyto informace umožňují algoritmu strojového učení najít korelace mezi skutečnými vzory dat snímačů a očekávanou zbývající dobou životnosti modulu. Tento krok je vysoce specifický pro doménu.

  3. Vytvoření modelu strojového učení Na základě připravených dat teď můžeme experimentovat s různými algoritmy a parametrizacemi strojového učení a trénovat modely a vzájemně porovnávat výsledky.

    V tomto případě pro testování porovnáme predikovaný výsledek vypočítaný modelem se skutečným výsledkem pozorovaným na sadě modulů. Ve službě Azure Machine Learning můžeme spravovat různé iterace modelů, které vytváříme v registru modelů.

  4. Nasaďte model. Jakmile máme model, který splňuje naše kritéria úspěchu, můžeme přejít na nasazení. To zahrnuje zabalení modelu do aplikace webové služby, která může být napájena daty pomocí volání REST a vrácení výsledků analýzy. Aplikace webové služby se pak zabalí do kontejneru Dockeru, který se pak dá nasadit buď v cloudu, nebo jako modul IoT Edge. V tomto příkladu se zaměříme na nasazení do IoT Edge.

  5. Udržujte a upřesněte model. Jakmile je model nasazený, naše práce není hotová. V mnoha případech chceme pokračovat ve shromažďování dat a pravidelně je nahrávat do cloudu. Tato data pak můžeme použít k opětovnému trénování a upřesnění modelu, který pak můžeme znovu nasadit do IoT Edge.

Vyčištění prostředků

Tento kurz je součástí sady, kde každý článek vychází z práce provedené v předchozích článcích. Počkejte prosím s vyčištěním všech prostředků, dokud nebudete hotový kurz.

Další kroky

Tento kurz je rozdělený do následujících částí:

  1. Nastavte vývojový počítač a služby Azure.
  2. Vygenerujte trénovací data pro modul strojového učení.
  3. Trénujte a nasaďte modul strojového učení.
  4. Nakonfigurujte IoT Edge zařízení tak, aby fungovalo jako transparentní brána.
  5. Vytváření a nasazování modulů IoT Edge
  6. Odešlete data do IoT Edge zařízení.

Pokračujte k dalšímu článku a nastavte vývojový počítač a zřiďte prostředky Azure.