Introduktion till AI på gränsen med NVIDIA Jetson och Azure

Slutförd

Sakernas Internet (IoT) är så mycket mer än blinkande lampor och lässensorer. IoT är också en mekanism för att leverera AI-arbetsbelastningar till massorna. Traditionellt är det typiskt att betrakta IoT som specialiserad maskinvara med fysiska sensorer som rapporterar avläsningar till en molntjänst för bearbetning.

Med tillkomsten av GPU-aktiverade GPU-aktiverade och fältprogrammabla gatematriser (FPGA)-aktiverade enheter har det blivit vanligt att se tyngre AI-program som körs direkt på inbäddad maskinvara. Med det här paradigmet kan du minska datautflödet, men också fokusera på de viktiga resultat som kommer från bearbetning av data på gränsen.

När du går från att förlita dig på molnet för bearbetning för att dra nytta av accelererade arbetsbelastningar på enheten får du resultat mycket snabbare, även i en offlinemiljö. Microsofts Azure IoT Edge-plattform är utformad för just den här typen av användningsfall.

Azure IoT Edge utför säker distribution av kod till IoT-enheter med hjälp av containerbaserade moduler. Modulerna kan omfatta containerbaserade former av populära Azure-tjänster, inklusive serverlösa funktioner, Stream Analytics, Machine Learning-moduler, Custom Vision AI-tjänster och till och med lokal lagring med SQL Server. Du kan använda IoT Edge-plattformen för att få samma kraftfulla funktioner och funktioner i molntjänster som du redan känner till och älskar i din gränsmiljö. Du kan på liknande sätt modularisera containerbaserade arbetsbelastningar som har utvecklats med hjälp av NVIDIA Graph Composer och sedan distribuera arbetsbelastningarna till IoT Edge-kompatibel maskinvara.

I den här modulen utforskar du utveckling av GPU-accelererade arbetsbelastningar som riktar sig till NVIDIA Embedded-maskinvara för att distribuera en AI-arbetsbelastning vid gränsen med hjälp av Azure IoT Edge och relaterade Azure IoT-tjänster.

NVIDIA Jetson Embedded-maskinvara

GPU-accelererade arbetsbelastningar på små inbäddade formfaktorenheter som är idealiska för gränsmiljöer kan köras på NVIDIA Jetson-plattformen. NVIDIA Jetson-maskinvara är ett komplett system på modulen (SOM) som har all PROCESSOR, GPU och minne som behövs för att köra arbetsbelastningar för visuellt innehåll på en enhet om storleken på en modern mobiltelefon.

NVIDIA erbjuder olika enheter som lämpar sig för AI vid gränsen i sin Jetson-serie med enhetserbjudanden. Bland erbjudandena finns den robusta Jetson AGX Xavier och Jetson Xavier NX med 512 kärnor, 256-kärns Jetson TX2 och 128-kärns Jetson Nano på ingångsnivå.

Följande diagram visar specifikationer för dessa maskinvaruerbjudanden:

Diagram över ett diagram som visar en översikt och alternativ för NVIDIA Jetson-maskinvara.

Alla enheter i NVIDIA Jetson-familjen använder ARM-baserad CPU-maskinvara för bearbetning. Azure IoT Edge-plattformen kan rikta in sig på den här arkitekturen, så att du kan instrumentera NVIDIA-inbäddade enheter för att arbeta med IoT Edge-körningen och med relaterade Azure IoT-tjänster.

Om du vill följa med i den här modulen behöver du någon av följande NVIDIA Jetson Embedded-enheter som etablerats med JetPack 4.6:

Azure IoT Edge

Azure IoT Edge är utformat för att förenkla processen med att producera analys på gränsen. IoT Edge använder en modern metod för programdistribution via containerbaserade arbetsbelastningar, så kallade moduler. Enheter som instrumenteras med IoT Edge-körningen kan publicera insikter i Azure-molnet med hjälp av meddelandeprotokoll med högt dataflöde och låg latens. En enhet kan till och med fortsätta att producera dessa insikter i offlinescenarier. På grund av dessa och andra funktioner är Azure IoT Edge en idealisk lösning för att införa AI-arbetsbelastningar i realtid i gränsmiljöer.

En IoT Edge-baserad lösning har tre komponenter:

  • IoT Edge-moduler: Moduler är containrar som kör Azure-tjänster, tjänster från tredje part eller anpassad kod. Containrar distribueras med hjälp av en specifikation som definieras i en hubb i Azure IoT Hub och de körs lokalt på IoT Edge-instrumenterade enheter.
  • IoT Edge-körning: Körningen är en tjänst som körs på en IoT Edge-enhet för att hantera modularbetsbelastningar, tillhandahålla mekanismer för modul-till-modul- och enhet-till-moln-/moln-till-enhet-meddelanden och samordna arbetsbelastningar som definieras i en hubb.
  • Molnbaserat gränssnitt: Gränssnittet är en samling Azure-tjänster som ingår i en Azure IoT Hub-resursinstans. Tjänsterna tillhandahåller en mekanism för säker enhetsregistrering, en mekanism med högt dataflöde för datainmatning (via AMQP, MQTT eller HTTPS), en möjlighet att definiera och tillämpa distributionsspecifikationer samt en möjlighet att fjärrövervaka och hantera IoT Edge-enheter.

En IoT Edge-lösning kan också innehålla en instans av Azure Container Registry för att tillhandahålla säker distribution av containerbaserade moduler. Den här metoden är en rekommendation för scenarier för produktionsdistribution. Följande bild visar hur de tre kärnkomponenterna kan fungera för att använda ett containerregister för att uppnå en lösningsarkitektur från slutpunkt till slutpunkt till moln:

Diagram som visar hur du installerar Azure IoT Edge.

I föregående avbildning distribuerar (1) Azure IoT Hub en distributionsspecifikation som (2) definierar modulerna som ska köras på dinEdgeDevice, som har instrumenterats med IoT Edge-körningen och registrerats på ett säkert sätt som en IoT Edge-enhet i hubben. Sedan tar (3) IoT Edge-körningen emot den här specifikationen, som (4) refererar till en sensormodul som lagras i Azure Container Registry. Den här modulen hämtas säkert och körs lokalt på gränsenheten, där den sedan producerar telemetri som flödar från enheten till hubben.

I den här modulen distribuerar du en lösning som har en arkitektur som liknar den som visas här. Den största skillnaden är att du inkluderar en distributionsspecifikation som definierar en DeepStream-baserad IoT Edge-modul för att publicera objektidentifieringsresultat i en IoT-hubb. Distributionen körs på en NVIDIA Jetson Embedded-enhet som internt stöder ARM64-distributionen av IoT Edge-körningen.

Prova detta

Om din uppgift är att distribuera en lösning av AI vid gränsen, hur kan du spara tid till produktion med hjälp av molntjänsterbjudanden? Vilka fördelar skulle du få genom att använda en tjänst som Azure IoT Edge under implementeringen?