Udostępnij za pośrednictwem


Samouczek: kompleksowe rozwiązanie korzystające z usług Azure Machine Learning i IoT Edge

Dotyczy: Ikona tak IoT Edge 1.1

Ważne

Data zakończenia wsparcia usługi IoT Edge 1.1 wynosiła 13 grudnia 2022 r. Zapoznaj się z cyklem życia produktów firmy Microsoft, aby uzyskać informacje na temat sposobu obsługi tego produktu lub interfejsu API albo tej usługi lub technologii. Aby uzyskać więcej informacji na temat aktualizowania do najnowszej wersji usługi IoT Edge, zobacz Aktualizowanie usługi IoT Edge.

Często aplikacje IoT chcą korzystać z inteligentnej chmury i inteligentnej krawędzi. W tym samouczku przeprowadzimy Cię przez proces trenowania modelu uczenia maszynowego przy użyciu danych zebranych z urządzeń IoT w chmurze, wdrażania tego modelu w usłudze IoT Edge oraz okresowego utrzymywania i udoskonalania modelu.

Uwaga

Koncepcje w tym zestawie samouczków dotyczą wszystkich wersji usługi IoT Edge, ale przykładowe urządzenie utworzone w celu wypróbowania scenariusza uruchamia usługę IoT Edge w wersji 1.1.

Głównym celem tego samouczka jest wprowadzenie przetwarzania danych IoT przy użyciu uczenia maszynowego, w szczególności na urządzeniach brzegowych. Chociaż dotykamy wielu aspektów ogólnego przepływu pracy uczenia maszynowego, ten samouczek nie jest przeznaczony jako szczegółowe wprowadzenie do uczenia maszynowego. W pewnym przypadku nie próbujemy utworzyć wysoce zoptymalizowanego modelu dla przypadku użycia — wystarczy zilustrować proces tworzenia i używania opłacalnego modelu przetwarzania danych IoT.

W tej sekcji samouczka omówiono następujące zagadnienia:

  • Wymagania wstępne dotyczące ukończenia kolejnych części samouczka.
  • Docelowi odbiorcy samouczka.
  • Przypadek użycia, który symuluje samouczek.
  • Ogólny proces tego samouczka jest zgodny z przypadkiem użycia.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

Aby ukończyć samouczek, musisz mieć dostęp do subskrypcji platformy Azure, w której masz uprawnienia do tworzenia zasobów. Kilka usług używanych w tym samouczku spowoduje naliczanie opłat za platformę Azure. Jeśli nie masz jeszcze subskrypcji platformy Azure, możesz rozpocząć pracę z bezpłatnym kontem platformy Azure.

Potrzebna jest również maszyna z zainstalowanym programem PowerShell, na którym można uruchamiać skrypty, aby skonfigurować maszynę wirtualną platformy Azure jako maszynę dewelopera.

W tym dokumencie używamy następującego zestawu narzędzi:

  • Usługa Azure IoT Hub do przechwytywania danych

  • Usługa Azure Notebooks jako główny fronton na potrzeby przygotowywania danych i eksperymentowania z uczeniem maszynowym. Uruchamianie kodu w języku Python w notesie w podzestawie przykładowych danych to doskonały sposób na szybkie iteracyjne i interaktywne przygotowanie danych. Notesy Jupyter mogą być również używane do przygotowywania skryptów do uruchamiania na dużą skalę w zapleczu obliczeniowym.

  • Usługa Azure Machine Learning jako zaplecze do uczenia maszynowego na dużą skalę i generowania obrazów uczenia maszynowego. Prowadzimy zaplecze usługi Azure Machine Learning przy użyciu skryptów przygotowanych i przetestowanych w notesach Jupyter.

  • Usługa Azure IoT Edge dla aplikacji poza chmurą obrazu uczenia maszynowego

Oczywiście dostępne są inne opcje. Na przykład w niektórych scenariuszach usługa IoT Central może służyć jako alternatywa bez kodu do przechwytywania początkowych danych treningowych z urządzeń IoT.

Docelowi odbiorcy i role

Ten zestaw artykułów jest przeznaczony dla deweloperów bez wcześniejszego doświadczenia w tworzeniu aplikacji IoT lub uczeniu maszynowym. Wdrażanie uczenia maszynowego na urządzeniach brzegowych wymaga znajomości sposobu łączenia szerokiej gamy technologii. W związku z tym w tym samouczku omówiono cały całościowy scenariusz przedstawiający jeden ze sposobów łączenia tych technologii w celu uzyskania rozwiązania IoT. W rzeczywistym środowisku te zadania mogą być dystrybuowane między kilka osób z różnymi specjalizacjami. Na przykład deweloperzy skupiliby się na kodzie urządzenia lub w chmurze, podczas gdy analitycy danych zaprojektowali modele analityczne. Aby umożliwić indywidualnemu deweloperowi pomyślne ukończenie tego samouczka, udostępniliśmy dodatkowe wskazówki ze szczegółowymi informacjami i linkami do dodatkowych informacji, które mamy nadzieję, że wystarczy zrozumieć, co jest wykonywane, a także dlaczego.

Alternatywnie możesz współpracować ze współpracownikami z różnych ról, aby postępować zgodnie z samouczkiem, zebrać pełną wiedzę i nauczyć się jako zespół, w jaki sposób rzeczy pasują do siebie.

W obu przypadkach, aby ułatwić orientację czytelników, każdy artykuł w tym samouczku wskazuje rolę użytkownika. Te role obejmują:

  • Opracowywanie rozwiązań w chmurze (w tym deweloper rozwiązań w chmurze pracujących w pojemności DevOps)
  • Analiza danych

Przypadek użycia: Konserwacja predykcyjna

W tym scenariuszu przedstawiono przypadek użycia przedstawiony na konferencji dotyczącej prognozowania i zarządzania kondycją (PHM08) w 2008 roku. Celem jest przewidywanie pozostałego okresu eksploatacji (RUL) zestawu silników samolotowych turbofan. Te dane zostały wygenerowane przy użyciu języka C-MAPSS, komercyjnej wersji oprogramowania MAPSS (Modular Aero-Propulsion System Simulation). To oprogramowanie zapewnia elastyczne środowisko symulacji silnika turbofanu, aby wygodnie symulować parametry kondycji, sterowania i silnika.

Dane używane w tym samouczku pochodzą z zestawu danych symulacji degradacji silnika Turbofan.

Z pliku readme:

Scenariusz eksperymentalny

Zestawy danych składają się z wielu wielowariancji szeregów czasowych. Każdy zestaw danych jest dodatkowo podzielony na podzestawy trenowania i testowania. Każda seria czasowa pochodzi z innego silnika — tj. dane mogą być brane pod uwagę z floty silników tego samego typu. Każdy silnik zaczyna się od różnych stopni początkowego zużycia i odmiany produkcyjnej, która jest nieznana użytkownikowi. To zużycie i odmiana są uważane za normalne, tj. nie jest uważane za stan błędu. Istnieją trzy ustawienia operacyjne, które mają znaczący wpływ na wydajność aparatu. Te ustawienia są również uwzględniane w danych. Dane są zanieczyszczone szumem czujnika.

Silnik działa normalnie na początku każdej serii czasowej i rozwija usterkę w pewnym momencie podczas serii. W zestawie treningowym błąd rośnie wielkości do czasu awarii systemu. W zestawie testowym szereg czasowy kończy się jakiś czas przed awarią systemu. Celem konkursu jest przewidywanie liczby pozostałych cykli operacyjnych przed awarią w zestawie testowym, tj. liczba cykli operacyjnych po ostatnim cyklu, w którym silnik będzie nadal działać. Podano również wektor wartości true Remaining Useful Life (RUL) dla danych testowych.

Ponieważ dane zostały opublikowane w konkursie, kilka podejść do tworzenia modeli uczenia maszynowego zostało opublikowanych niezależnie. Odkryliśmy, że badanie przykładów jest pomocne w zrozumieniu procesu i rozumowania związanego z tworzeniem określonego modelu uczenia maszynowego. Zobacz na przykład:

Model przewidywania błędów silnika samolotu przez użytkownika usługi GitHub jancervenka.

Degradacja silnika turbofanu przez użytkownika github hankroark.

Przetwarzaj

Na poniższym obrazie przedstawiono przybliżone kroki, które wykonamy w tym samouczku:

Diagram architektury dla kroków procesu

  1. Zbieranie danych treningowych: proces rozpoczyna się od zbierania danych treningowych. W niektórych przypadkach dane zostały już zebrane i są dostępne w bazie danych lub w postaci plików danych. W innych przypadkach, zwłaszcza w przypadku scenariuszy IoT, dane muszą być zbierane z urządzeń i czujników IoT oraz przechowywanych w chmurze.

    Zakładamy, że nie masz kolekcji silników turbofan, więc pliki projektu zawierają prosty symulator urządzenia, który wysyła dane urządzenia NASA do chmury.

  2. Przygotuj dane. W większości przypadków nieprzetworzone dane zbierane z urządzeń i czujników będą wymagały przygotowania do uczenia maszynowego. Ten krok może obejmować czyszczenie danych, ponowne formatowanie danych lub wstępne przetwarzanie w celu wstrzyknięcia dodatkowych informacji uczenia maszynowego może być wyłączone.

    W przypadku danych maszyny samolotu przygotowanie danych obejmuje obliczanie jawnych czasów awarii dla każdego punktu danych w próbce na podstawie rzeczywistych obserwacji danych. Te informacje umożliwiają algorytmowi uczenia maszynowego znajdowanie korelacji między rzeczywistymi wzorcami danych czujnika a oczekiwanym pozostałym czasem życia aparatu. Ten krok jest bardzo specyficzny dla domeny.

  3. Tworzenie modelu uczenia maszynowego. Na podstawie przygotowanych danych możemy teraz eksperymentować z różnymi algorytmami uczenia maszynowego i parametryzacji, aby wytrenować modele i porównać wyniki ze sobą.

    W tym przypadku na potrzeby testowania porównujemy przewidywany wynik obliczony przez model z rzeczywistym wynikiem zaobserwowanym na zestawie aparatów. W usłudze Azure Machine Learning możemy zarządzać różnymi iteracjami modeli tworzonych w rejestrze modeli.

  4. Wdróż model. Gdy mamy model spełniający nasze kryteria sukcesu, możemy przejść do wdrożenia. Obejmuje to zawijanie modelu do aplikacji usługi internetowej, która może być karmiona danymi przy użyciu wywołań REST i zwracanych wyników analizy. Aplikacja usługi internetowej jest następnie pakowana do kontenera platformy Docker, który z kolei można wdrożyć w chmurze lub jako moduł usługi IoT Edge. W tym przykładzie koncentrujemy się na wdrożeniu w usłudze IoT Edge.

  5. Zachowaj i uściślij model. Nasza praca nie jest wykonywana po wdrożeniu modelu. W wielu przypadkach chcemy kontynuować zbieranie danych i okresowo przekazywać te dane do chmury. Następnie możemy użyć tych danych do ponownego trenowania i uściślenia modelu, który następnie możemy ponownie wdrożyć w usłudze IoT Edge.

Czyszczenie zasobów

Ten samouczek jest częścią zestawu, w którym każdy artykuł opiera się na pracy wykonanej w poprzednich. Poczekaj, aż ukończysz ostatni samouczek, zaczekaj na wyczyszczenie wszystkich zasobów.

Następne kroki

Ten samouczek jest podzielony na następujące sekcje:

  1. Konfigurowanie maszyny deweloperów i usług platformy Azure.
  2. Wygeneruj dane szkoleniowe dla modułu uczenia maszynowego.
  3. Trenowanie i wdrażanie modułu uczenia maszynowego.
  4. Skonfiguruj urządzenie usługi IoT Edge tak, aby działało jako przezroczysta brama.
  5. Tworzenie i wdrażanie modułów usługi IoT Edge.
  6. Wysyłanie danych do urządzenia usługi IoT Edge.

Przejdź do następnego artykułu, aby skonfigurować maszynę programową i aprowizować zasoby platformy Azure.