Forskere testede deres rammer ved at træne en computervisionsmodel til at opdage mennesker på billeder. Efter kun 10 minutters træning lærte den at udføre opgaven med succes. Kredit:Ji Lin et al.
Mikrocontrollere, miniaturecomputere, der kan køre simple kommandoer, er grundlaget for milliarder af tilsluttede enheder, fra internet-of-things (IoT) enheder til sensorer i biler. Men billige mikrocontrollere med lav effekt har ekstremt begrænset hukommelse og intet operativsystem, hvilket gør det udfordrende at træne kunstig intelligens-modeller på "edge-enheder", der fungerer uafhængigt af centrale computerressourcer.
Træning af en maskinlæringsmodel på en intelligent edge-enhed giver den mulighed for at tilpasse sig nye data og lave bedre forudsigelser. For eksempel kan træning af en model på et smart tastatur gøre det muligt for tastaturet løbende at lære af brugerens skrivning. Træningsprocessen kræver dog så meget hukommelse, at den typisk udføres ved hjælp af kraftfulde computere i et datacenter, før modellen implementeres på en enhed. Dette er dyrere og rejser privatlivsproblemer, da brugerdata skal sendes til en central server.
For at løse dette problem har forskere ved MIT og MIT-IBM Watson AI Lab udviklet en ny teknik, der muliggør træning på enheden ved at bruge mindre end en kvart megabyte hukommelse. Andre træningsløsninger designet til tilsluttede enheder kan bruge mere end 500 megabyte hukommelse, hvilket i høj grad overstiger kapaciteten på 256 kilobyte for de fleste mikrocontrollere (der er 1.024 kilobyte i en megabyte).
De intelligente algoritmer og rammer, som forskerne udviklede, reducerer mængden af beregninger, der kræves for at træne en model, hvilket gør processen hurtigere og mere hukommelseseffektiv. Deres teknik kan bruges til at træne en maskinlæringsmodel på en mikrocontroller i løbet af få minutter.
Denne teknik bevarer også privatlivets fred ved at opbevare data på enheden, hvilket kan være særligt fordelagtigt, når data er følsomme, såsom i medicinske applikationer. Det kunne også muliggøre tilpasning af en model baseret på brugernes behov. Desuden bevarer eller forbedrer rammen modellens nøjagtighed sammenlignet med andre træningstilgange.
"Vores undersøgelse gør det muligt for IoT-enheder ikke kun at udføre inferens, men også løbende at opdatere AI-modellerne til nyligt indsamlede data, hvilket baner vejen for livslang læring på enheden. Den lave ressourceudnyttelse gør deep learning mere tilgængelig og kan have en bredere rækkevidde, især til enheder med lavt strømforbrug," siger Song Han, lektor ved Institut for Elektroteknik og Computervidenskab (EECS), medlem af MIT-IBM Watson AI Lab og seniorforfatter til papiret, der beskriver denne innovation.
Sammen med Han på papiret er co-lead forfattere og EECS Ph.D. studerende Ji Lin og Ligeng Zhu, samt MIT postdocs Wei-Ming Chen og Wei-Chen Wang, og Chuang Gan, en ledende forskningsmedarbejder ved MIT-IBM Watson AI Lab. Forskningen vil blive præsenteret på konferencen om neurale informationsbehandlingssystemer.
Han og hans team havde tidligere adresseret de hukommelses- og beregningsmæssige flaskehalse, der eksisterer, når de forsøger at køre maskinlæringsmodeller på små enheder, som en del af deres TinyML-initiativ.
Letvægtstræning
En almindelig type maskinlæringsmodel er kendt som et neuralt netværk. Løst baseret på den menneskelige hjerne indeholder disse modeller lag af indbyrdes forbundne noder eller neuroner, der behandler data for at fuldføre en opgave, såsom genkendelse af mennesker på billeder. Modellen skal trænes først, hvilket går ud på at vise den millioner af eksempler, så den kan lære opgaven. Som den lærer, øger eller mindsker modellen styrken af forbindelserne mellem neuroner, som er kendt som vægte.
Modellen kan gennemgå hundredvis af opdateringer, efterhånden som den lærer, og de mellemliggende aktiveringer skal gemmes under hver runde. I et neuralt netværk er aktivering mellemlagets mellemresultater. Fordi der kan være millioner af vægte og aktiveringer, kræver træning af en model meget mere hukommelse end at køre en fortrænet model, forklarer Han.
Han og hans samarbejdspartnere brugte to algoritmiske løsninger for at gøre træningsprocessen mere effektiv og mindre hukommelsesintensiv. Den første, kendt som sparse opdatering, bruger en algoritme, der identificerer de vigtigste vægte, der skal opdateres ved hver træningsrunde. Algoritmen begynder at fryse vægtene en ad gangen, indtil den ser nøjagtigheden falde til en fastsat tærskel, så stopper den. De resterende vægte opdateres, mens aktiveringerne svarende til de frosne vægte ikke behøver at blive gemt i hukommelsen.
"At opdatere hele modellen er meget dyrt, fordi der er mange aktiveringer, så folk har en tendens til kun at opdatere det sidste lag, men som du kan forestille dig, så skader det nøjagtigheden. For vores metode opdaterer vi selektivt de vigtige vægte og sørger for at nøjagtigheden er fuldt ud bevaret," siger Han.
Deres anden løsning involverer kvantiseret træning og forenkling af vægtene, som typisk er 32 bit. En algoritme runder vægtene, så de kun er otte bits, gennem en proces kendt som kvantisering, som reducerer mængden af hukommelse til både træning og inferens. Inferens er processen med at anvende en model til et datasæt og generere en forudsigelse. Derefter anvender algoritmen en teknik kaldet quantization-aware scaling (QAS), der fungerer som en multiplikator til at justere forholdet mellem vægt og gradient, for at undgå et fald i nøjagtigheden, der kan komme fra kvantiseret træning.
Forskerne udviklede et system, kaldet en lille træningsmotor, der kan køre disse algoritmiske innovationer på en simpel mikrocontroller, der mangler et operativsystem. Dette system ændrer rækkefølgen af trin i træningsprocessen, så mere arbejde udføres i kompileringsfasen, før modellen implementeres på edge-enheden.
"Vi presser meget af beregningen, såsom autodifferentiering og grafoptimering, for at kompilere tid. Vi beskærer også aggressivt de overflødige operatører for at understøtte sparsomme opdateringer. Når vi først kører, har vi meget mindre arbejdsbyrde at udføre på enheden." Han forklarer.
En vellykket fremskyndelse
Deres optimering krævede kun 157 kilobyte hukommelse for at træne en maskinlæringsmodel på en mikrocontroller, mens andre teknikker designet til letvægtstræning stadig ville have brug for mellem 300 og 600 megabyte.
De testede deres rammer ved at træne en computervisionsmodel til at opdage mennesker i billeder. Efter kun 10 minutters træning lærte den at udføre opgaven med succes. Deres metode var i stand til at træne en model mere end 20 gange hurtigere end andre tilgange.
Nu hvor de har demonstreret succesen med disse teknikker til computervisionsmodeller, ønsker forskerne at anvende dem på sprogmodeller og forskellige typer data, såsom tidsseriedata. Samtidig vil de bruge det, de har lært, til at formindske størrelsen af større modeller uden at ofre nøjagtigheden, hvilket kan være med til at reducere CO2-fodaftrykket ved at træne store maskinlæringsmodeller. + Udforsk yderligere
Denne historie er genudgivet med tilladelse fra MIT News (web.mit.edu/newsoffice/), et populært websted, der dækker nyheder om MIT-forskning, innovation og undervisning.