Neuromorphic Computing sau drumul spre calculatoarele care „învață singure”
În mai puțin de două decenii computerul s-a mutat de pe birou, în timp ce a suferit o micșorare impresionantă, iar acum poate fi ținut în buzunar de orice persoană. Îi spune telefon doar pentru că a rămas acest nume de când era mai mult telefon decât computer. Iar laptopurile au devenit mai ușoare, cu o autonomie mai mare, și acum sunt modele care pot înlocui fără probleme un desktop clasic performant. Următorul pas nu mai are neapărat treabă cu designul exterior, ci cu ingineria interioară.
E suficient să vezi orice imagine cu un computer vechi, inclusiv cel care a pus omul pe Lună, și nu poți să nu fii impresionat de evoluția accelerată a tehnologiei în mai puțin de jumătate de secol. În egală măsură, de la început până în prezent, ce-a rămas o regulă e că omul – programatorul – a „spus” computerului ce să facă, iar acesta a executat. Sigur, felul în care i se „spune” ce să facă s-a schimbat enorm, dar principiile de bază sunt tot acolo. Despre ce se discută tot mai mult în ultimii ani e ca aceste computere să mai lucreze și singure.
Aici inteligența artificială a apărut ca un punct de cotitură. Această denumire ar putea fi însă înșelătoare, tocmai de aceea cei care activează în domeniu susțin că AI e pentru prezentări, în timp ce deep learning sau machine learning exprimă mai bine ce se întâmplă în realitate. Într- adevăr, prin inteligență artificială cei mai mulți oameni se gândesc la ceea ce au tot văzut și auzit în filme și în jur: computere care „gândesc” ca oamenii, eventual transformate și în roboți umanoizi care pot, în anumite limite, să fie similari oamenilor nu doar prin aspect.
Sursa foto: Freepik
Un supercomputer poate fi confundat de multe ori cu un labirint imens al stocării
Deși „inteligență artificială” poate fi un tagline bun de marketing, domeniul n-a stat pe loc și dispune acum de o componentă foarte utilă acum pe partea de învățare materializată în automatizare pentru diminuarea task-urilor repetitive. Inteligența artificială nu replică orbește ceea ce a învățat, iar un exemplu pot fi sistemele care învață să joace șah. Totuși, are și nevoie de un set de reguli pe baza cărora să funcționeze. În acest sens, Brăduț Palaș, Technical Director la Amber Labs, divizie a studioului de game development românesc Amber, a evidențiat pentru HotNews exemplu unuia dintre cele mai puternice sisteme care folosesc AI: DeepMind de la Google. „Ce face, în principal, e să optimizeze consumul de energie din data centerele Google. Asta înseamnă, totodată, că e o inteligență artificială care are acces la toate datele Google. Dacă un astfel de sistem nu este corect constrâns, poate să ia decizii foarte ciudate”, a explicat acesta.
Ziceam însă de o transformare la nivelul ingineriei interioare. Aici apare subiectul de acum: Neuromorphic Computing. Bine, pare recent, deoarece încă nu a fost pus în aplicare la scară mare, dar încă din anii ‘80 Carver Mead a gândit inginerie neuromorfică drept o arie interdisciplinară care construiește sisteme neurale artificiale și chiar roboți autonomi pe baza principiilor din biologie, fizică, matematică, inginerie electronică și computer science. Ceva mai recent, adică în urmă cu șase ani, conceptul era rezumat astfel: „Cipul creier”. Și domeniul acesta de cercetare și dezvoltare a pornit de la o evidență: creierul omului, dar și al altor mamifere, este un computer incredibil, dar care încă n-a fost replicat și cel puțin în siliciu.
Să pui capacitatea de procesare a creierului uman într-un computer ar fi un salt incredibil înainte. Estimarea cercetătorilor e că creierul omului are circa 100 de miliarde de neuroni. În 2014, când a început să se vorbească despre Neuromorphic Computing, a fost dezvăluit TrueNorth (primul cip de acest tip) și acela avea circa un milion de neuroni capabili să creeze circa 256 milioane de sinapse pentru transmiterea informației. Totodată, folosea doar 0,0001% din energia necesară de un procesor clasic pentru a emula o rețea neurală.
Neuromorphic Computing e fix pentru acele scenarii fără soluție optimă acum
Sursa foto: Intel
Plăci de bază Nahuku. Fiecare conține între 8 și 32 de cipuri Intel Loihi Miza, încă de atunci, a fost ca un computer să aibă cipuri care funcționează similar creierului mamiferelor și mai puțin ca un cip clasic de siliciu. Un avantaj secundar e că un astfel de procesor nu mai are nevoie de memorie RAM, deoarece fiecare neuron are o memorie cache dedicată.
Pe cât de ofertant sună domeniul Neuromorphic Computing acum, pe atât de lent avansează în parte pentru că investițiile în dezvoltare costă. Chiar și așa, industria nu duce lipsă de experimente și explorează scenariile de utilizare. În acest context, merită amintit ce-a spus Christopher Carothers, director Center for Computational Innovations: „Întrebarea pe care ne-o punem este: «Cum ar fi dacă supercomputerele ar avea procesoare neuromorfice?» Cum proiectezi un astfel de computer? Și care ar fi capabilitățile de care ar dispune?” Astfel, trebuie gândiți și algoritmi noi de învățare, adaptați infrastructurii fizice. Și, firesc, computerele să vină cu soluții la probleme pentru care n-au fost programate.
Pentru hardware, din septembrie 2021, există un nou cip de folosit și testat. În toamnă, Intel a anunțat noua generație a cipului neuromorfic, denumit Loihi. Acesta are un milion de neuroni artificiali, de șase ori mai mult decât predecesorul, capabili să creeze circa 120 de milioane de sinapse. În acest context, Thomas Cleland, neurobiolog la Universitatea Cornell, a spus că astfel de cipuri nu vor face totul mai bine, ci rostul lor e să satisfacă acele nevoi pentru care în prezent nu există soluție optimă din punct de vedere al costurilor și puterii de calcul.
Răzvan Valentin Florian, cercetător în domeniul inteligenței artificiale și președintele Institutului Român de Știință și Tehnologie, a spus că principalul motiv pentru dezvoltarea acestor cipuri neuromorfice e de-a face procesarea informației cu un consum mult mai redus de energie, inclusiv de mii de ori mai redus ca putere consumată. El este și autorul unei reguli de învățare bazate pe recompense și sancțiuni. Componente ale acesteia au fost folosite de Intel în dezvoltarea Loihi. Răzvan a subliniat pentru HotNews că, în următorii ani, următoarele decenii, e de așteptat ca procesoarele neuromorfice să fie prezente în majoritatea dispozitivelor mobile sau camere video. „În aceste cazuri vorbim de sisteme care procesează date video, audio, voce – în cantități destul de mari. Dacă vor fi dezvoltate sisteme și proceduri ca să poată fi programate simplu, ele vor fi folosite pe scara largă”, a adăugat acesta.
Când vorbește despre dezvoltarea sistemelor și procedurile, el se referă la o carență din sistem acum: nu sunt prea multe echipamente cu cipuri neuromorfice în piață, ceea ce îngreunează adopția metodelor de programare specifice pentru aceste cipuri. „Pe de o parte, este o problemă de-a simplifica programarea pentru aceste cipuri și, pe de altă parte, e o problemă legată de scalarea producției”, a explicat el. „Dacă cererea nu este foarte mare, prețul de producție pe unitate este mare. Dar vor ajunge să fie folosite pe scară largă când cererea va fi suficient de mare”.
Legat de ce-a zis Thomas Cleland, pentru astfel de nevoi s-a ajuns ca în prezent să fie folosite cipuri de plăci grafice pentru anumite sarcini, iar aici domeniul mașinilor autonome este primul care vine în minte. Totodată, în ideea subliniată de Răzvan Florian, computerele care folosesc tehnica neuromorfică sunt mai eficiente în identificarea patternurilor, generează mai puțină căldură și folosesc mai puțină energie – spre comparație, creierul uman, de exemplu, consumă mai puțin de 20 wați și poate procesa mai repede decât supercomputerele (o capacitate estimată de 1 exaFLOP). Odată cuplate cu un feed de imagini sau de informații de la senzori, deja pot preveni probleme prin identificarea semnalelor care ar duce la ele.
Câteva domenii în care computerele neuromorfice ar fi utile sunt: medicina – în administrarea medicamentelor sau chiar în dezvoltarea unor proteze mai utile, mai adaptate omului; inteligența artificială și toate sarcinile majore care se bazează pe astfel de algoritmi; operațiunile cu cantități imense de date. Nu este de așteptat ca, în următorul deceniu, să fie așa ceva implementat în computere pentru mass market. Dar câteva dintre principiile de funcționare, folosind hardware deja disponibil, pot fi preluate.
Pilonii pe care se dezvoltă domeniul acum
Sundar Picahi, CEO Google, în timpul prezentării unui sistem TPU 3.0 la evenimentul I/O 2018
Sursa foto: Google
Domeniul AI pentru computere neuromorfice are deja un nume: Spiking Neural Networks (SNN), deoarece într-un astfel de cip procesarea e realizată prin semnale sub forma unor spike-uri de activitate (schimbări rapide de voltaj în ceea ce poate fi numit membrana neuronului) și ceilalți neuroni răspund în funcție de ce spike-uri primesc. Ceva mai aplicat, sunt două arii de dezvoltare pentru inginerie neuromorfică: Artificial Neural Networks (ANN) – practic, fundamentul pentru machine learning și pentru aplicații bazate pe așa ceva – și Natural Neural Networks (NNN) – rețele acționate de reacții electrochimice, adică ceea ce se și întâmplă în creierul uman.
NNN se descurcă excelent când vine vorba de îndeplinirea sarcinilor deductive, autonomie în învățare, adaptare și capabilități cognitive. De cealaltă parte, sarcini ANN sunt deja îndeplinite în prezent prin tehnici de procesare deep learning, iar aici intervin Neural Processing Units (NPU) folosite, de exemplu, în cipurile Apple, sau Tensor Processing Units. ANN imită creierul în abordare, tocmai de aceea au fost integrate în domeniul mai mare al Neuromorphic Computing. Altfel spus, primii pași au fost făcuți încă dinainte de-a experimenta cu cipuri neuromorfice full fledged.
Răzvan a evidențiat însă că modelele de procesare a informației sunt total diferite. Asta generează nevoie pentru un alt tip de programare de care a menționat mai sus. „Ca să putem ajunge la astfel de eficiențe – consum de energie de mii de ori mai scăzut – trebuie dezvoltați noi algoritmi și noi metode de procesare a informației cu aceste cipuri”, a completat acesta. Înseamnă, în principal, inteligență artificială – cu pilonii deep learning și machine learning – și metode de-a face rețele neurale care să funcționeze bine și pe astfel de procesoare.
El a amintit în acest context că, pentru persoanele care doresc să înceapă să lucreze cu aceste cipuri, startul, firesc, e de la limbaje de programare clasice, dar mai importante sunt frameworkurile de programare specifice acestor procesoare și de metode care se folosesc în machine learning, cu instruire automată. „Sunt utile nu doar pentru cipuri neuromorfice, dar, în general, pentru aplicații de instruire automată care pot să fie și în zona de rețele neurale clasice construite pe cipuri grafice și în procesoare normale”, a explicat el. Pentru programatori care vor să țină pasul cu vremurile care vor veni, el a subliniat că educația și pregătirea în machine learning e utilă atât în prezent pentru procesoare tipice, dar deschide și calea către procesoare neuromorfice, când vor fi mai larg disponibile.
Brăduț a explicat că diferența între un algoritm pentru sisteme care imită funcționarea creierului uman și cele proiectate pentru sisteme clasice e ca diferența între înmulțire și adunare: ajungi la același rezultat, dar în timpi diferiți.
PyTorch și TensorFlow (pentru TPU) sunt deja două referințe foarte bune. Deși inițial au fost făcute pentru GPU-uri, diverși producători de cipuri fac emulatoare și frameworks ca un program scris în TensorFlow, de exemplu, să poată rula și pe alte procesoare. Răzvan a subliniat că Google are cipuri Tensor Processing Unit (TPU) care sunt dedicate pentru astfel de operații și sunt implementate chiar și în servere.
Dacă vizezi o carieră în domeniul inteligenței artificiale, Brăduț a subliniat că, în prezent, Python este, poate, cel mai bun punct de pornire. Este cel mai folosit limbaj când vine vorba de machine learning și chiar TensorFlow se bazează pe așa ceva. Apoi ar mai fi R, care-i folosit aproape integral doar pentru machine learning. Dar mai important decât limbajul, că este unul vechi (și actualizat) de trei–patru decenii sau că este unul nou-nouț, Brăduț recomandă dezvoltarea înțelegerii a conceptelor de data science, matematică și statistică. Acestea pot da o înțelegere a felului în care funcționează această tehnologie în aplicațiile ei.
„În afară de cei puțini care împing domeniul înainte și scriu bibliotecile, ceilalți, cei mai mulți, operează cu ele ca niște data scientists”, a subliniat el.
Industria este deja puternic dezvoltată, atât prin cipurile dedicate folosite de Google, Apple și alții, cât și prin aplicații. Astfel, camerele de pe telefoanele de acum produc imagini care sunt trecute printr-o serie de algoritmi de procesare care să ducă la un rezultat final mai bun decât ar fi putut fi posibil în urmă cu zece ani, de exemplu. Iar la nivel industrial sunt deja soluțiile pentru mașini autonome, cele mai vizibile și care procesează cele mai multe date în timp real dintre soluțiile accesibile și consumatorului final.
Brăduț a subliniat însă că, în ciuda aplicațiilor deja dezvoltate sau care vor fi dezvoltate în viitor, e important de reținut că suntem departe de a face inteligență artificială generalizată. „Sistemele de tipul acesta învață, în principiu, de la oameni. Tocmai de aceea au eșuat cele lăsate la liber pe internet. Oamenii le-au sabotat, voit sau nu, și un sistem AI nu are pârghiile să-și dea seama când utilizatorii de pe internet sunt ironici”, a adăugat el.
La conferința Build 2018, Microsoft a prezentat Project Brainwave prin care a promis furnizarea performanței FPGA în sistemul cloud Azure
Sursa foto: Microsoft
Până în acel punct al sistemelor „conștiente”, sistemele actuale bazate pe neural networks și care imită creierul uman au un scop clar: eficiență – energetică sau de calcul. Cu NPU, hardware-ul este mai aproape ca oricând de un neuron real. Și în timp ce Google, Apple sau Nvidia proiectează circuitele pentru anumite sarcini, Microsoft a ales calea mai puțin costisitoare din punct de vedere al producției: field-programmable gate array (FPGA), care presupune că hardware-ul respectiv ieșit din fabrică poate fi reprogramat oricând în viitor.
„Deocamdată, creierul uman nu a fost înțeles pe deplin. Elon Musk, de exemplu, cu proiectul Neuralink vrea să unească această componentă biologică cu una artificială”, a adăugat Brăduț. „Până atunci, hardware-ul pe care îl avem oferă avantajul multiplicării performanței de câteva zeci de ori. Și, în esență, acum toți avem circuite de machine learning specializate. Camerele din telefoanele noastre au așa ceva în spate, de exemplu. Sau telefoanele cu Face ID, unde e nevoie de putere mare de procesare a zeci de mii de informații relevante pentru deblocarea telefonului. Totodată, e și exemplul Nvidia cu plăci grafice care fac supersampling prin deep learning. Astfel de rețele neurale «deduc» cum ar trebui să arate imaginea mică la o rezoluție mai mare.”
Dacă se va ajunge vreodată la acel „unire” între un creier organic și un computer, după cum a pus problema Brăduț, ar fi rezolvată poate cea mai mare limitare a omului: uitarea și alterarea amintirilor. Computerele nu uită.
Demersuri de-a crea computere neuromorfice cu hardware deja disponibil
În contextul demersurilor de experimentare, un altul deosebit e Human Brain Project, dezvoltat la nivel european. Acesta susține SpiNNaker (Spiking Neural Network Architecture) – un supercomputer proiectat să imite creierul uman și compus din un milion de procesoare clasice. A fost activat în 2018 și, spre deosebire de computerele tradiționale, comunică prin transmiterea a miliarde de informații grupate în pachete mai mici către mii de destinații diferite. Altfel spus, un computer clasic construit pe principiul unui creier organic. În ciuda mărimii, cu un milion de procesoare, este proiectat să fie low-power, low-latency și scalabil.
Tot legat de hardware, a avut și Samsung un anunț în septembrie 2021. Abordarea companiei, ea însăși un jucător important la nivel mondial în industria semiconductorilor, a fost de „copy paste”, după cum a descris-o. Și, în esență, cam așa și funcționează ce propune. Compania vede o soluție în imitarea hărții cerebrale care face creierul organic atât de eficient și să stocheze această „hartă” într-o memorie de tip solid-state tridimensională. Propunerea Samsung rezolvă, cel puțin în aparență, una dintre marile probleme ale cipurilor neuromorfice. E deosebit de dificil să replici, la nivelul unui cip de siliciu, structura neuronală organică. Astfel, în loc să fie creată de la zero, ar fi, pur și simplu, preluată din structura care există deja. Pentru stocarea acestei hărți, practic schița de funcționare a întregului ansamblu, ar putea fi folosite atât SSD-uri disponibile comercial acum sau noile tipuri de memorii non-volatile, cum ar fi Resistive Random Access Memory (RRAM).
Estimativ, creierul uman are circa 100 de miliarde de neuroni și conexiunile sinaptice sunt de circa o mie de ori mai multe, astfel că un cip neuromorfic construit prin tehnica Samsung printr-o integrare 128-layer 3D ar reduce dimensiunea hărții respective de la o suprafață de 30 pe 30 cm pătrați la o suprafață de 26 pe 26 mm pătrați.
Modelul „fizic” al BrainScaleS
Sursa foto: Uniunea Europeană
În fine, mai merită amintit un demers realizat în 2021. O echipă afiliată Human Brain Project a integrat elementul de timp într-un algoritm neuromorfic, apoi a implementat procesul într-un hardware fizic: platforma BrainScaleS-2. În raport cu alte soluții neuromorfice sau cipuri GPU, echipa care s-a ocupat de dezvoltare a spus că integrarea unei componente temporale ar putea reprezenta punctul de pornire pentru noi aplicații bazate pe AI. Ce a făcut echipa în acest caz a fost să țină cont de un parametru: cât timp îi ia unui neuron până se activează. Astfel, cu cât îi ia mai mult, cu atât mai scăzută e activitatea acestuia. Într-unul dintre testele la care a fost supus BrainScaleS-2 prin acest algoritm, a reușit să clasifice 10.000 de mostre în mai puțin de o secundă cu un consum redus de energie. Și că ziceam de SpiNNaker mai sus, noua abordare în algoritm a făcut ca procesul de recunoaștere a unei imagini să fie de 100 de ori mai rapid.
Tot ca o inspirație de la creierul uman, acesta se descurcă excelent la anumite sarcini, cum ar fi recunoașterea imaginilor, tocmai pentru că folosește cod simplu. În loc să fie activate regiuni mari ale creierului, sunt necesare doar câteva rețele neuronale. Și acesta e conceptul din spatele experimentului cu BrainScaleS-2 și integrarea parametrului temporal în algoritm.
Dezvoltarea unor astfel de computere are și un câștig secundar: am putea înțelege, în sfârșit, cum funcționează creierul uman – sau al unor mamifere cu un creier mai puțin dezvoltat. Altfel, la nivelul dezvoltării domeniilor care au nevoie de supercomputere, cele neuromorfice se pot dovedi drept esențiale pentru a procesa și, mai ales, înțelege datele. Și asta cu input minimal din partea unui om. Impactul asupra medicinei, și în special în eradicarea sau diminuarea efectelor unor boli degenerative, poate fi, de asemenea, imens. Iar cipul Loihi, de exemplu, a fost deja folosit în identificarea chimicalelor periculoase. Un astfel de computer, iată, se poate dovedi util și în ajutorarea oamenilor de a înțelege mai bine mediul din jurul lor încă dinainte de-a ști că e vreo problemă.