Wprowadzenie do sztucznej inteligencji na urządzeniach brzegowych za pomocą technologii NVIDIA Jetson i platformy Azure
Internet rzeczy (IoT) jest o wiele więcej niż światła i czujniki do czytania. IoT to również mechanizm dostarczania obciążeń sztucznej inteligencji do mas. Tradycyjnie typowe jest myślenie o IoT jako wyspecjalizowanym sprzęcie z czujnikami fizycznymi, które zgłaszają odczyty do usługi w chmurze na potrzeby przetwarzania.
Wraz z pojawieniem się urządzeń z włączoną małą obsługą procesorów GPU i układem FPGA (Field Programowalnej tablicy bramowej) stało się powszechne wyświetlanie cięższych aplikacji sztucznej inteligencji działających bezpośrednio na sprzęcie osadzonym. Dzięki temu paradygmatowi można zmniejszyć przepływ danych, ale także skupić się na ważnych wynikach, które pochodzą z przetwarzania danych na brzegu sieci.
W przypadku przechodzenia z chmury do przetwarzania w celu korzystania z przyspieszonych obciążeń na urządzeniu wyniki są znacznie szybsze, nawet w środowisku offline. Platforma Azure IoT Edge firmy Microsoft została zaprojektowana pod kątem dokładnie tego typu przypadków użycia.
Usługa Azure IoT Edge umożliwia bezpieczne wdrażanie kodu na urządzeniach IoT przy użyciu konteneryzowanych modułów. Moduły mogą obejmować konteneryzowane formy popularnych usług platformy Azure, w tym funkcje bezserwerowe, usługi Stream Analytics, moduły usługi Machine Learning, usługi Custom Vision AI, a nawet magazyn lokalny z programem SQL Server. Możesz użyć platformy IoT Edge, aby uzyskać te same zaawansowane funkcje i funkcje usług w chmurze, które już znasz i kocham w środowisku brzegowym. Podobnie można modularyzować konteneryzowane obciążenia, które zostały opracowane przy użyciu narzędzia NVIDIA Graph Composer, a następnie wdrożyć obciążenia na sprzęcie obsługującym usługę IoT Edge.
W tym module zapoznasz się z tworzeniem obciążeń przyspieszanych przez procesor GPU przeznaczonych dla sprzętu osadzonego firmy NVIDIA w celu wdrożenia obciążenia sztucznej inteligencji na urządzeniach brzegowych przy użyciu usługi Azure IoT Edge i powiązanych usług Azure IoT.
Sprzęt osadzony NVIDIA Jetson
Obciążenia przyspieszone przez procesor GPU na małych urządzeniach z osadzonymi formami, które są idealne dla środowisk brzegowych, mogą być uruchamiane na platformie NVIDIA Jetson. Sprzęt NVIDIA Jetson to kompletny system w module (SOM), który ma wszystkie procesory CPU, procesor GPU i pamięć wymaganą do uruchamiania obciążeń przetwarzania obrazów na urządzeniu o rozmiarze nowoczesnego telefonu komórkowego.
Firma NVIDIA oferuje różne urządzenia, które są odpowiednie dla sztucznej inteligencji na brzegu swojej oferty urządzeń Jetson. Oferty obejmują niezawodne 512-rdzeniowe Jetson AGX Xavier i Jetson Xavier NX, 256-rdzeniowy Jetson TX2 i podstawowy 128-rdzeniowy Jetson Nano.
Na poniższym wykresie przedstawiono specyfikacje tych ofert sprzętowych:
Wszystkie urządzenia z rodziny NVIDIA Jetson używają sprzętu procesora CPU opartego na usłudze ARM do przetwarzania. Platforma Azure IoT Edge może kierować tę architekturę, dzięki czemu można instrumentować urządzenia osadzone FIRMY NVIDIA do pracy ze środowiskiem uruchomieniowym usługi IoT Edge i powiązanymi usługami Azure IoT.
Aby wykonać czynności opisane w tym module, potrzebujesz jednego z następujących urządzeń osadzonych NVIDIA Jetson aprowidowanych przy użyciu pakietu JetPack 4.6:
Azure IoT Edge
Usługa Azure IoT Edge została zaprojektowana w celu uproszczenia procesu tworzenia analiz na urządzeniach brzegowych. Usługa IoT Edge korzysta z nowoczesnego podejścia do dystrybucji aplikacji za pośrednictwem konteneryzowanych obciążeń, znanych jako moduły. Urządzenia instrumentowane za pomocą środowiska uruchomieniowego usługi IoT Edge mogą publikować szczegółowe informacje w chmurze platformy Azure przy użyciu protokołów obsługi komunikatów o wysokiej przepływności i małych opóźnieniach. Urządzenie może nawet nadal tworzyć te szczegółowe informacje w scenariuszach offline. Ze względu na te i inne funkcje usługa Azure IoT Edge jest idealnym rozwiązaniem do wdrażania obciążeń sztucznej inteligencji w czasie rzeczywistym w środowiskach brzegowych.
Rozwiązanie oparte na usłudze IoT Edge ma trzy składniki:
- Moduły usługi IoT Edge: moduły to kontenery, które uruchamiają usługi platformy Azure, usługi innych firm lub kod niestandardowy. Kontenery są wdrażane przy użyciu specyfikacji zdefiniowanej w centrum w usłudze Azure IoT Hub i są one uruchamiane lokalnie na urządzeniach instrumentowanych w usłudze IoT Edge.
- Środowisko uruchomieniowe usługi IoT Edge: środowisko uruchomieniowe to usługa, która działa na urządzeniu usługi IoT Edge do zarządzania obciążeniami modułów, udostępnia mechanizmy obsługi komunikatów między modułami i urządzenie-chmura/chmura-urządzenie oraz organizują obciążenia zdefiniowane w centrum.
- Interfejs oparty na chmurze: interfejs jest kolekcją usług platformy Azure, które są zawarte w wystąpieniu zasobów usługi Azure IoT Hub. Usługi zapewniają mechanizm bezpiecznej rejestracji urządzeń, mechanizm wysokiej przepływności pozyskiwania danych (za pośrednictwem protokołu AMQP, MQTT lub HTTPS), możliwość definiowania i stosowania specyfikacji wdrożenia oraz możliwości zdalnego monitorowania urządzeń usługi IoT Edge i zarządzania nimi.
Rozwiązanie usługi IoT Edge opcjonalnie może obejmować wystąpienie usługi Azure Container Registry w celu zapewnienia bezpiecznej dystrybucji konteneryzowanych modułów. Takie podejście jest zalecane w przypadku scenariuszy wdrażania produkcyjnego. Na poniższej ilustracji pokazano, jak trzy podstawowe składniki mogą pracować w celu uzyskania kompleksowej architektury rozwiązań typu edge-to-cloud:
Na poprzedniej ilustracji (1) Usługa Azure IoT Hub dystrybuuje specyfikację wdrożenia, która (2) definiuje moduły do uruchomienia w urządzeniu YourEdgeDevice, które zostało instrumentowane za pomocą środowiska uruchomieniowego usługi IoT Edge i bezpiecznie zarejestrowane jako urządzenie usługi IoT Edge w centrum. Następnie (3) środowisko uruchomieniowe usługi IoT Edge otrzymuje tę specyfikację, która (4) odnosi się do modułu czujnika przechowywanego w usłudze Azure Container Registry. Ten moduł jest pobierany bezpiecznie i uruchamiany lokalnie na urządzeniu brzegowym, na którym następnie generuje dane telemetryczne przesyłane z urządzenia do centrum.
W tym module wdrożysz rozwiązanie, które ma architekturę podobną do przedstawionej tutaj. Główną różnicą jest to, że uwzględnisz specyfikację wdrożenia, która definiuje moduł usługi IoT Edge oparty na technologii DeepStream w celu publikowania wyników wykrywania obiektów w centrum IoT. Wdrożenie jest uruchamiane na osadzonym urządzeniu NVIDIA Jetson, które natywnie obsługuje dystrybucję ARM64 środowiska uruchomieniowego usługi IoT Edge.
Wypróbuj
Jeśli Twoim zadaniem jest wdrożenie rozwiązania sztucznej inteligencji na brzegu sieci, jak można zaoszczędzić czas na środowisku produkcyjnym przy użyciu ofert usług w chmurze? Jakie korzyści można uzyskać, korzystając z usługi takiej jak Azure IoT Edge podczas implementacji?