Microcontrollers spelen een steeds grotere rol in edge AI
Nog maar een paar jaar geleden werd aangenomen dat machine learning (ML) — en zelfs deep learning (DL) — alleen kon worden uitgevoerd op geavanceerde hardware, waarbij training en inferentie aan de rand uitgevoerd door gateways, edge-servers of gegevens centra. Het was destijds een geldige veronderstelling, omdat de trend naar het distribueren van rekenbronnen tussen de cloud en de edge zich nog in een vroeg stadium bevond. Maar dit scenario is drastisch veranderd dankzij intensieve onderzoeks- en ontwikkelingsinspanningen van de industrie en de academische wereld.
Het resultaat is dat processors die in staat zijn om vele triljoenen bewerkingen per seconde (TOPS) te leveren tegenwoordig niet meer nodig zijn om ML uit te voeren. In een toenemend aantal gevallen kunnen de nieuwste microcontrollers, sommige met ingebouwde ML-versnellers, ML naar edge-apparaten brengen.
Deze apparaten kunnen niet alleen ML uitvoeren, ze kunnen het ook goed doen, tegen lage kosten, met een zeer laag stroomverbruik, en alleen verbinding maken met de cloud als dat absoluut noodzakelijk is. Kortom, microcontrollers met geïntegreerde ML-versnellers vertegenwoordigen de volgende stap in het brengen van computers naar sensoren zoals microfoons, camera's en degenen die omgevingscondities bewaken, die de gegevens genereren waarop alle voordelen van IoT worden gerealiseerd.
Hoe diep is de rand?
Hoewel de edge algemeen wordt beschouwd als het verste punt in een IoT-netwerk, wordt deze over het algemeen beschouwd als een geavanceerde gateway of edge-server. Dat is echter niet waar de rand eigenlijk eindigt. Het eindigt bij de sensoren in de buurt van de gebruiker. Het wordt logisch om zoveel mogelijk analytisch vermogen bij de gebruiker te plaatsen, een taak waarvoor microcontrollers bij uitstek geschikt zijn.
Voorbeelden van MobileNet V1-modellen van multipliers met verschillende breedtes laten een drastische impact zien op het aantal parameters, berekeningen en nauwkeurigheid. Het wijzigen van de breedtevermenigvuldiger van 1,0 naar 0,75 heeft echter een minimale invloed op de TOP-1-nauwkeurigheid, maar heeft een aanzienlijke invloed op het aantal parameters en berekeningen (Afbeelding:NXP)
Er zou kunnen worden beweerd dat computers met één bord ook kunnen worden gebruikt voor edge-verwerking, omdat ze opmerkelijke prestaties kunnen leveren en, wanneer ze in clusters zijn, kunnen wedijveren met een kleine supercomputer. Maar ze zijn nog steeds te groot en te duur om te worden ingezet in de honderden of duizenden die nodig zijn in grootschalige toepassingen. Ze hebben ook een externe bron van gelijkstroom nodig die in sommige gevallen groter kan zijn dan wat er beschikbaar is, terwijl een MCU slechts milliwatt verbruikt en kan worden gevoed door knoopcelbatterijen of zelfs enkele zonnecellen.
Het is dus niet verwonderlijk dat de interesse in microcontrollers voor het uitvoeren van ML aan de rand een zeer populair ontwikkelingsgebied is geworden. Het heeft zelfs een naam:TinyML. Het doel van TinyML is om het mogelijk te maken om gevolgtrekkingen en uiteindelijk training uit te voeren op kleine, energiezuinige apparaten met beperkte middelen, en met name microcontrollers, in plaats van op grotere platforms of in de cloud. Dit vereist dat neurale netwerkmodellen worden verkleind om plaats te bieden aan de relatief bescheiden verwerkings-, opslag- en bandbreedtebronnen van deze apparaten, zonder de functionaliteit en nauwkeurigheid aanzienlijk te verminderen.
Deze voor hulpbronnen geoptimaliseerde schema's stellen de apparaten in staat om voldoende sensorgegevens op te nemen om hun doel te dienen, terwijl de nauwkeurigheid wordt verfijnd en de resourcevereisten worden verminderd. Dus hoewel gegevens nog steeds naar de cloud kunnen worden verzonden (of misschien eerst naar een edge-gateway en vervolgens naar de cloud), zullen er veel minder gegevens zijn omdat er al een aanzienlijke analyse is uitgevoerd.
Een populair voorbeeld van TinyML in actie is een op camera's gebaseerd objectdetectiesysteem dat, hoewel het in staat is om afbeeldingen met een hoge resolutie vast te leggen, beperkte opslagruimte heeft en een verlaging van de beeldresolutie vereist. Als de camera echter analyses op het apparaat bevat, worden alleen interessante objecten vastgelegd in plaats van de hele scène, en aangezien de relevante afbeeldingen minder zijn, kan hun hogere resolutie worden behouden. Deze mogelijkheid wordt meestal geassocieerd met grotere, krachtigere apparaten, maar dankzij kleine ML-technologie kan dit op microcontrollers gebeuren.
Klein maar machtig
Hoewel TinyML een relatief nieuw paradigma is, levert het al verrassende resultaten op voor inferentie (zelfs met relatief bescheiden microcontrollers) en training (op krachtigere) met minimaal verlies aan nauwkeurigheid. Recente voorbeelden zijn onder meer spraak- en gezichtsherkenning, spraakopdrachten en natuurlijke taalverwerking, en zelfs het gelijktijdig uitvoeren van verschillende complexe zichtalgoritmen.
In de praktijk betekent dit dat een microcontroller die minder dan $ 2 kost met een 500-MHz Arm Cortex-M7-kern en van 28 Kbytes tot 128 Kbytes aan geheugen, de prestaties kan leveren die nodig zijn om sensoren echt intelligent te maken.
Zelfs voor deze prijs en dit prestatieniveau hebben deze microcontrollers meerdere beveiligingsfuncties, waaronder AES-128, ondersteuning voor meerdere externe geheugentypes, Ethernet, USB en SPI, en bevatten of ondersteunen ze verschillende soorten sensoren, evenals Bluetooth, Wifi en SPDIF en I 2 C audio-interfaces. Als u iets meer uitgeeft, heeft het apparaat doorgaans een 1-GHz Arm Cortex-M7, 400-MHz Cortex-M4, 2 Mbytes RAM en grafische versnelling. Het stroomverbruik is doorgaans niet meer dan een paar milliampère van een voeding van 3,3 VDC.
Gebruiksvoorbeelden voor machine learning (Afbeelding:NXP)
Een paar woorden over TOPS
Consumenten zijn niet de enigen wanneer ze een enkele statistiek gebruiken om prestaties te definiëren; ontwerpers doen het de hele tijd, en marketingafdelingen zijn er dol op. Dit komt omdat een headline-specificatie het onderscheid tussen apparaten eenvoudig maakt, zo lijkt het tenminste. Een klassiek voorbeeld is de CPU, die jarenlang werd bepaald door zijn kloksnelheid. Gelukkig voor zowel ontwerpers als consumenten is dit niet langer het geval. Het gebruik van slechts één statistiek om een CPU te beoordelen, is vergelijkbaar met het evalueren van de prestaties van een auto aan de hand van de rode lijn van de motor. Het is niet zinloos, maar heeft weinig te maken met hoe krachtig de motor is of hoe goed de auto zal presteren omdat veel andere factoren samen deze eigenschappen bepalen.
Helaas geldt hetzelfde in toenemende mate voor neurale netwerkversnellers, inclusief die binnen krachtige MPU's of microcontrollers, die worden gespecificeerd door miljarden of triljoenen bewerkingen per seconde, omdat het, nogmaals, een gemakkelijk te onthouden getal is. Maar in de praktijk zijn GOPS en TOPS alleen relatief nietszeggende meetwaarden en vertegenwoordigen ze een meting (ongetwijfeld de beste) die in een laboratorium is uitgevoerd in plaats van een werkelijke bedrijfsomgeving. TOPS houdt bijvoorbeeld geen rekening met de beperkingen van de geheugenbandbreedte, de vereiste CPU-overhead, pre- en post-processing en andere factoren. Wanneer al deze en andere in aanmerking worden genomen, zoals prestaties bij gebruik op een specifiek bord in werkelijke werking, kunnen de prestaties op systeemniveau waarschijnlijk 50% of 60% zijn van de TOPS-waarde op de datasheet.
Al deze getallen vertellen je het aantal rekenelementen in de hardware vermenigvuldigd met hun kloksnelheid, in plaats van hoe vaak het de gegevens beschikbaar zal hebben wanneer het moet functioneren. Als gegevens altijd onmiddellijk beschikbaar waren, stroomverbruik geen probleem was, geheugenbeperkingen niet bestonden en het algoritme naadloos was toegewezen aan de hardware, zouden ze meer betekenis hebben. Maar de echte wereld biedt niet zulke ideale omgevingen.
Wanneer toegepast op ML-versnellers in microcontrollers, is de metriek nog minder waardevol. Deze kleine apparaten hebben doorgaans een waarde van 1 tot 3 TOPS, maar kunnen nog steeds de inferentiemogelijkheden bieden die in veel ML-toepassingen vereist zijn. Deze apparaten vertrouwen ook op Arm Cortex-processors die speciaal zijn ontworpen voor low-power ML-toepassingen. Naast ondersteuning voor zowel integer- als floating-bewerkingen en de vele andere functies in de microcontroller, wordt het duidelijk dat TOPS, of een andere enkele metriek, niet in staat is om de prestaties, alleen of in een systeem, adequaat te definiëren.
Conclusie
De wens om gevolgtrekkingen uit te voeren op microcontrollers die direct op of bevestigd zijn aan sensoren, zoals foto- en videocamera's, ontstaat nu het IoT-domein dichter bij het uitvoeren van zoveel mogelijk verwerking aan de rand komt. Dat gezegd hebbende, het tempo van de ontwikkeling van applicatieprocessors en neurale netwerkversnellers binnen microcontrollers is snel, en er verschijnen regelmatig meer bekwame oplossingen. De trend is in de richting van het consolideren van meer AI-gerichte functionaliteit, zoals neurale netwerkverwerking, samen met een applicatieprocessor in de microcontroller zonder drastisch het energieverbruik of de omvang te vergroten.
Tegenwoordig kunnen modellen worden getraind op een krachtigere CPU of GPU en vervolgens worden geïmplementeerd op een microcontroller met behulp van inferentie-engines zoals TensorFlow Lite om ze te verkleinen om te voldoen aan de resourcevereisten van de microcontroller. Schalen kan eenvoudig worden uitgevoerd om tegemoet te komen aan hogere ML-vereisten. Binnenkort zou het mogelijk moeten zijn om niet alleen gevolgtrekkingen uit te voeren, maar ook training op deze apparaten, waardoor de microcontroller in feite een nog formidabelere concurrent wordt van grotere en duurdere computeroplossingen.
>> Dit artikel is oorspronkelijk gepubliceerd op onze zustersite, EE Times.
Ingebed
- De rol van cloudcomputing in intelligentie
- Rol van geïntegreerde systemen in auto's
- Waar is de voorsprong in edge computing?
- Dampkamerkoeling speelt een steeds grotere rol in hete producten
- RF-energiewinning speelt een steeds grotere rol in AI-gestuurde toepassingen
- USB-C speelt een steeds grotere rol in wearables en mobiele producten
- Kleine AI-module bouwt voort op Google Edge TPU
- Slim sensorbord versnelt edge AI-ontwikkeling
- Slimme camera biedt kant-en-klare edge machine vision edge AI
- Robots spelen een rol in Industrie 4.0
- De rol van edge computing in commerciële IoT-implementaties