Demokratisering af AI giver designere af embeddede systemer en række nye udfordringer, når de skal skabe nye ”ML i edgen”-applikationer, som fungerer effektivt, og som samtidigt belaster headrooms for processorer og memories mindst muligt med det mindst mulige forbrug i IoT-produkterne
Artiklen har været bragt i Aktuel Elektronik nr. 7 – 2025 og kan læses herunder uden illustrationer
(læs originaludgaven her)
Af Yann LeFaou, associate director for Microchips touch- & gestic-forretningsenhed
Fra overvågning og adgangskontrol til smarte fabrikker og forebyggende vedligehold vokser brugen af AI baseret på machine learning-modeller (ML), især inden for de industrielle IoT edge-applikationer. Konstruktion af AI-baserede systemer er blevet ”demokratiseret” i den forstand, at det ikke længere er en opgave for dataspecialister, men snarere noget, som alle designere af embeddede systemer forventes at forstå og have styr på. Udfordringen i en sådan demokratisering er, at designerne ikke nødvendigvis er klædt på til at definere det problem, der skal løses med datafangst på den mest hensigtsmæssige måde. Modsat forbrugerapplikationerne findes der endnu kun få datasæt til industrielle AI-implementeringer, så applikationerne skal ofte designes fra scratch med afsæt i brugerens egne data.
AI er blevet mainstream, og deep-/machine learning (DL/ML) står bag mange applikationer på en måde, vi nu tager for givet som med naturlig sprogbehandling, computer vision, forebyggende vedligehold og data mining. Tidlige implementeringer af AI var cloud- eller serverbaserede og med behov for rigeligt med regnekraft og memory samt stor båndbredde mellem AI/ML-applikationen og edgen (endpoint). Selv om disse setups fortsat er nødvendige i generative AI-applikationer som ChatGPT, DALL-E og Bard, så er der i de seneste år dukket edge-behandlet AI op, hvor data bliver behandlet i real-time på det punkt, hvor datafangsten sker. Edge-behandling reducerer afhængigheden af clouden markant og gør det overordnede system hurtigere med mindre pris og energi som sidegevinster. Mange oplever også en bedre sikkerhed, men det vil være mere korrekt at sige, at den væsentlige fokus på sikkerhed er skiftet fra at beskytte in-flight kommunikationen mellem clouden og endpoint for at gøre edge-komponenten mere sikker.
AI/ML i edgen kan implementeres i et traditionelt embedded system, hvis designerne har adgang til kraftige mikroprocessorer, GPU (grafiske processorer) og stakkevis af memory-komponenter – faktisk ressourcer på linje med en pc. Men med det stigende behov for IoT-apparater (kommercielle og industrielle) til AI/ML i edgen er hardwareressourcerne som regel meget begrænsede – og i mange tilfælde batteriforsynede.
Potentialet for AI/ML i edgen med afvikling på ressource- og energibegrænset hardware har affødt et begreb som TinyML. Eksempler på bruger-cases viser, at i industrien (til forebyggende vedligehold for eksempel), bygningsautomation, konstruktion (monitering af personalesikkerhed) og sikringsfunktioner er TinyML vigtig for AI i edgen.
Dataflowet
AI (og dermed også subsettet, ML) kræver et dataflow fra dataopsamlingen gennem en anvendt model (figur 1). Med hensyn til TinyML er optimering af hvert enkelt trin i arbejdsflowet vitalt på grund af de begrænsede ressourcer i det embeddede system.
Som et eksempel kan TinyML-ressourcekravene være processorhastigheder mellem 1- og 400MHz, 2 til 512KB RAM og 32KB til 2MB datalager (flash). Og med et effekttræk på mellem 150µW og 23,5mW er det en designudfordring, når man skal arbejde med så lille et effektbudget.
Der er også en endnu større overvejelse – eller trade-off – ved embedded AI i et ressourcebegrænset system. Modeller er afgørende for systemets behaviour, men designere bliver ofte fanget i kompromisser mellem modelkvaliteten/-præcisionen, der påvirker pålideligheden, og ydelsen, primært i forhold til hastighed og energiforbrug.
Meget afhænger af beslutningen om typen af AI/ML. Der er generelt tre typer af algoritmer, som kan bruges – og vi bruger hér de engelske udtryk: supervised, unsupervised og reinforced.
Løsningerne
Selv designere med en god forståelse af AI og ML kan slås med at optimere hvert trin af AI/ML arbejdsflowet for at opnå den perfekte balance mellem modelpræcisionen og systemydelsen, så hvordan kan designere af embeddede systemer og uden tidligere erfaringer komme udfordringerne i møde?
For det første må man ikke miste fokus på det forhold, at den anvendte model på et ressourcebegrænset IoT-produkt kun vil være effektiv, hvis modellen er lille og AI-opgaven begrænset til at løse et simpelt problem.
Heldigvis har fremkomsten af ML (og i særdeleshed TinyML) i den embeddede verden resulteret i nye (eller forbedrede) IDE’er (Integrated Development Environments), softwareværktøjer, arkitekturer og modeller, hvoraf mange endda er open source. TensorFlow Lite til mikrocontrollere (TF Lite Micro) er et eksempel på et gratis open source-softwarebibliotek til ML og AI. Det er designet til implementering af ML på komponenterne med nogle få KB memory. Programmer kan også skrives i Python, der er både open source og gratis.
Mikrochips’ MPLAB X er også et eksempel på et gratis IDE, som kan anvendes sammen med virksomhedens eget MPLAB ML, en MPLAB X plug-in specielt udviklet til at skrive optimeret AI IoT-sensorgenkendelseskode. MPLAB ML tager afsæt i AutoML og kan fuldautomatisere hvert trin i et AI/ML-arbejdsflow, så man eliminerer behovet for gentagne, kedelige og tidsrøvende modelopbygninger. Med funktioner som ekstraktion, træning, validering og test opnår man optimerede modeller, der overholder de memory constraints, som mikrocontrollere og mikroprocessorer måtte have, så designere hurtigt kan konstruere og anvende ML-løsninger på Microchips’ Arm Cortex-baserede 32-bit MCU’er eller CPU’er.
Kom ind i flowet
Optimering af flowet i arbejdsopgaver starter med off-the-shelf datasæt og modeller. Hvis et ML-enabled IoT-produkt skal udføre billedgenkendelsen, så vil det give mening at starte med et eksisterende datasæt af beskrevne statiske billeder og videoklip til modeltræningen (test og evaluering), og de beskrevne data er nødvendige for såkaldt ”supervised” ML-algoritmer.
Mange billeddatasæt eksisterer allerede til computervision-applikationer. Da de er udviklet med henblik på pc-, server- eller cloud-baserede applikationer, er de som regel meget store. ImageNet indeholder for eksempel mere end 14 millioner annoterede billeder.
Afhængigt af ML-applikationen kan man dog måske nøjes med nogle få og mindre subset som i måske mange billeder af mennesker, men kun få af ubevægelige objekter. Hvis ML-enablede kameraer skal bruges på en byggeplads, så skulle de måske give en alarm, hvis en person uden sikkerhedshjelm kommer ind i kameravinklen. ML-modellen skal uden tvivl trænes, men det kan gøres med nogle få billeder af personer med eller uden hjelm. Det kan dog være nødvendigt med større datasæt for forskellige hjelmtyper, ligesom der skal være den fornødne spændvidde i selve datasættet for at kompensere for forskellige faktorer som eventuelt forskellige belysningsforhold.
Med de korrekte live (data) inputs og datasæt tegner forberedelse af data og træning af modellen sig for trinnene 1 til 3 i figur 1. Modeloptimeringen (trin 4) er typisk et spørgsmål om kompression, som hjælper til at reducere memory-kravene (RAM under behandlingen og NVM under endelig lagring) samt beregningernes latency.
Med hensyn til beregningerne slås mange AI-algoritmer som konvolutionale neurale netværk (CNNs) med ganske komplekse modeller. En populær kompressionsteknik er ”pruning” (figur 2), som bedst kan oversættes til beskæring, og der er fire overordnede typer: vægtet pruning, unit/neuron pruning og iterativ pruning.
Kvantificering er en anden populær kompressionsteknik. Det er processen i at konvertere data i et højpræcisionsformat – som floating-point 32-bit (FP32) – til et lavere præcisionsformat som et 8-bit integer (INT8). Brugen af kvantificerede modeller (figur 3) kan indregnes i den maskinelle træning på én af to måder:
• Post-træningskvantificering involverer brug af modeller i – lad os sige – et FP32-format, og når træningen må betragtes som komplet, kvantificerer man modellen til implementering. Et standard TensorFlow kan for eksempel bruges til indledende modeltræning og optimering på en pc. Modellen kan siden kvantificeres og – gennem TensorFlow Lite – embeddes i en IoT-komponent.
• Kvantificeringsbevidst træning emulerer inferenstids-kvantificering, hvilket skaber en model, som værktøjer downstream kan bruge til at producere kvantificerede modeller.
Selv om kvantificering er brugbar, så skal teknikken ikke bruges overdrevent. Det vil svare til at komprimere et digitalt billede ved at repræsentere farverne med færre bits og pixels – og på et tidspunkt kan det blive vanskeligt at fortolke motivet på billedet.
AI er tydeligvis veletableret i den embeddede verden, men denne demokratisering betyder, at designere, som ikke tidligere har haft brug for at forstå AI og/eller ML, nu står over for de udfordringer, der ligger i at implementere AI-baserede løsninger i deres designs.
Det kan virke skræmmende at skulle få maksimalt udbytte ud af meget begrænsede hardwareressourcer, men det er ikke nogen ny udfordring i sig selv – i hvert fald ikke for garvede designere af embeddede systemer. Og der findes et væld af information (og træning) inden for ingeniørernes communities samt værktøjer og IDE’er som MPLAB X, modelbyggeløsninger som MPLAB ML samt open source-datasæt og modeller. Reelt er det faktisk muligt af implementere AI- og ML-løsninger på 16-bit og endda 8-bit mikrocontrollere.
Billedtekster:
Figur 1: Forenklet AI arbejdsflow. Det er ikke vist, men modelimplementeringen skal selv give et data-feedback til flowet, også selv om det kan påvirke dataopsamlingen.
Figur 2: Pruning reducerer tætheden i de neurale netværk. I det viste er vægten af visse forbindelser mellem neuronerne sat til nul. Det er ikke vist, men sommetider kan neuronerne også udsættes for pruning.
Figur 3: Kvantificerede modeller bruger en lavere præcision og reducerer dermed memory- og lagringskravene med en deraf følgende bedre energieffektivitet – selv om modellen opretholder den samme form.