Debutul utilizării TinyML poate fi o experiență descurajantă. În prima parte a acestei serii, am investigat modul în care a evoluat învățarea automată și popularitatea acesteia în aplicațiile industriale de la marginea sistemului. În mod tradițional, procesul de selectare a unui model de rețea neurală adecvat, de formare a modelului și de ajustare a acestuia pentru implementare este complex. Cu toate acestea, ajutorul vine la îndemână prin numărul tot mai mare de resurse AI/ML special proiectate pentru aplicații TinyML. În acest articol analizăm și explicăm metodele populare utilizate de TensorFlow Lite, Edge Impulse și Fraunhofer AIES pentru a face din instruirea și implementarea unui model de inteligență artificială pe un microcontroler cu resurse limitate un proces ușor de parcurs.
TinyML; Implementarea aplicațiilor Edge
În cazul unei aplicații industriale de monitorizare a vibrațiilor motoarelor, dezvoltatorul va începe procesul de proiectare prin colectarea datelor senzorilor de vibrații de la zeci de motoare diferite, de obicei cu ajutorul unui accelerometru. Fiecare motor ar trebui să se afle într-un stadiu diferit al unei potențiale defecțiuni, astfel încât să fie colectate date reprezentative. În mod similar, trebuie înregistrate datele de la un motor în perfectă stare de funcționare. Selectarea unui algoritm adecvat este următorul pas. Algoritmul, în esență linii de cod, poate descoperi regulile care constituie semnăturile de vibrații aflate în afara unei stări de funcționare perfectă. Echipa de dezvoltare antrenează algoritmul pentru a face predicții din datele senzorilor, fără a înțelege relația dintre datele individuale ale senzorilor de vibrații și complexitatea acestora. Algoritmul de învățare automată creat devine un model de sistem și produce predicții ale stării de funcționare a unui motor. Este important să subliniem că, deși un model ML este o resursă benefică, inferența face predicții, estimări și aproximări pe baza datelor de antrenament, mai degrabă decât să ofere răspunsuri exacte.
Creșterea inferenței la marginea sistemului este din ce în ce mai populară din mai multe motive. În primul rând, după cum s-a menționat în primul articol, nu este nevoie să se transmită datele înapoi la un server cloud pentru inferență. Inferența edge elimină costurile de latență și de lățime de bandă. Avantajul suplimentar este că nu se pune problema confidențialității, deoarece nu sunt mutate sau stocate date pe serverele cloud. Microcontrolerele selectate pentru aceste aplicații edge consumă de obicei foarte puțină putere, multe dintre ele fiind capabile să funcționeze pe termen lung alimentate de la baterii, ceea ce ușurează complexitatea instalării. Pentru a pune în context, multe plăci GPU de înaltă performanță utilizate pentru aplicații de inferență științifică consumă sute de wați de energie, poate 500 de wați în unele cazuri. Profilul tipic de consum de putere al unui microcontroler este de ordinul miliwaților sau chiar până la microwați.
Resurse TinyML care accelerează dezvoltarea și implementarea
Pe măsură ce conceptul de inferență edge a luat amploare, au apărut mai multe resurse special proiectate pentru a fi utilizate cu microcontrolere cu consum redus de putere.
TensorFlow Lite pentru microcontrolere
Una dintre resursele consacrate de învățare automată este TensorFlow. Dezvoltată inițial de Google în 2015, aceasta este o platformă ‘open-source end-to-end’ pentru învățare automată care oferă un ecosistem cuprinzător și flexibil de instrumente, biblioteci și resurse comunitare. TensorFlow permite dezvoltatorilor să construiască și să implementeze o gamă diversă de învățare automată, cum ar fi aplicații științifice, medicale și comerciale.
Biblioteca open-source TensorFlow Lite pentru microcontrolere, lansată în 2017 de Google, a fost proiectată în mod explicit pentru a răspunde interesului tot mai mare pentru efectuarea de inferențe pe microcontrolere cu consum redus de putere și cu doar câteva zeci de kilobiți de memorie. Biblioteca binară de rulare a nucleului TensorFlow Lite ‘încape’ în doar 18 kB de memorie pe un Arm Cortex M3 și poate rula mai multe modele diferite de rețele neurale de bază. Poate rula pe ‘bare metal’, deoarece nu depinde de sistemele de operare, de bibliotecile C sau C++ și nici nu are cerințe de alocare directă a memoriei. Biblioteca este scrisă în C++ 11 și necesită un microcontroler pe 32-biți. (n.red.: termenul ‘bare metal’ este folosit în mod special pentru servere fizice dedicate care sunt oferite ca atare, fără orice formă de virtualizare)
Modelele utilizate de TensorFlow Lite pentru microcontrolere sunt reprezentări convertite, optimizate pentru microcontrolere, ale modelelor disponibile în cadrul mediului de instruire TensorFlow. TensorFlow Lite pentru microcontrolere este bine susținut și testat pe scară largă pentru seria Arm Cortex-M și a fost portat la alte arhitecturi de microcontrolere, cum ar fi seria Espressif ESP32 bazată pe Tensilica și seria de nuclee de procesor ARC de la Synopsys. Dezvoltatorii pot găsi un ghid cuprinzător pentru implementarea TensorFlow Lite pentru microcontrolere accesând: https://www.tensorflow.org/lite/microcontrollers.
Pe lângă TensorFlow Lite pentru microcontrolere, un alt set optimizat de resurse de bibliotecă, TensorFlow Lite, este disponibil pentru Android, iOS și computere embedded pe o singură placă bazate pe Linux, cum ar fi Raspberry Pi și Coral Edge TPU. Figura 1 ilustrează procesul fluxului de lucru care utilizează TensorFlow Lite pentru microcontrolere.
Edge Impulse
Edge Impulse oferă o platformă completă de învățare automată de la formare la implementare pentru dispozitive cu microcontrolere încorporate (embedded). Estimată pentru a fi utilizată în peste 20.000 de proiecte din întreaga lume, scopul platformei Edge Impulse este de a duce un proiect ML embedded de la concepție la producție în cel mai scurt timp, accelerând timpul de implementare de la ani la săptămâni. Accentul este pus pe utilizarea dispozitivelor embedded echipate cu diverși senzori, inclusiv audio și de viziune și pe implementarea acestora în volume mari. Dispozitivele embedded vizate variază de la microcontrolere cu consum redus de putere și resurse limitate la microprocesoare și unități centrale de procesare mai performante. Tipurile de modele suportate includ TensorFlow și Keras.
Aplicațiile ML tipice pentru Edge Impulse includ aplicații industriale, logistice și de sănătate, cum ar fi întreținerea predictivă, urmărirea și monitorizarea activelor și detectarea oamenilor și a animalelor.
Edge Impulse subscrie la codul de conduită al Institutului ‘Responsible AI’. Acesta le cere utilizatorilor să semneze o licență prin care se angajează că aplicația lor nu implică o utilizare criminală, de supraveghere sau în scopuri militare.
Figura 3 ilustrează caracteristica de testare a modelului pe Edge Impulse. În acest exemplu, un microcontroler STMicroelectronics este utilizat împreună cu un microfon digital pentru a recunoaște două cuvinte, casă și zero. Rezultatul testării modelului arată procentul de probabilitate pentru fiecare cuvânt, zgomotul de fond și alte cuvinte neclasificate.
Fraunhofer AIfES
Institutul german de cercetare Fraunhofer a dezvoltat o bibliotecă AI pentru sisteme embedded (AIfES), independentă de platformă, în C. AIfES este ‘open-source’ și este disponibilă în baza acordului GNU General Public License (GPL). Aceasta utilizează biblioteca standard GNU GCC, care ușurează semnificativ implementarea și rulează pe aproape orice dispozitiv hardware, de la microcontrolere pe 8-biți până la procesoare mai performante pentru telefoane inteligente și unități centrale de procesare pentru computere de birou. O versiune a bibliotecii AIfES este, de asemenea, disponibilă pentru inovatorii care își bazează proiectele pe o platformă Arduino.
AIfES poate fi utilizată gratuit pentru proiecte private și necesită un acord de licență pentru aplicații comerciale.
Figura 4 prezintă funcționalitatea și compatibilitatea bibliotecii AIfES pe diferite tipuri de platforme. Biblioteca Fraunhofer AIfES este compatibilă cu popularele framework-uri ML Python, cum ar fi TensorFlow, Keras și PyTorch și este similară la nivel de proces.
Etapele următoare pentru implementarea TinyML
În acest articol, am evidențiat trei biblioteci și platforme de învățare automată adecvate pentru dezvoltarea și implementarea rapidă a aplicațiilor TinyML de la marginea rețelei. Perspectiva de a dezvolta o aplicație IIoT de învățare automată încorporată pentru implementare edge este o sarcină descurajantă. Resursele și fluxurile de lucru simplifică foarte mult complexitatea rețelelor neurale și necesitatea unei înțelegeri aprofundate a principiilor științei datelor.
În ultima parte a acestei serii, vom prezenta mai multe platforme de microcontrolere și kituri de evaluare susținute de resursele de dezvoltare menționate. Cu relativ puține componente suplimentare, o placă de evaluare simplă cu microcontroler de joasă putere, un senzor și resursele evidențiate, veți avea o demonstrație TinyML funcțională în mai puțin de o oră.
Mouser Electronics
Authorised Distributor
www.mouser.com
Urmărește-ne pe Twitter