Computer a quattro bit per addestrare l’AI

Reti neurali di grande potenza potranno allenarsi su smartphone a velocità notevolmente superiori e con minore consumo di energia.

di Karen Hao

L’apprendimento profondo richiede enormi quantità di dati e abbondanti risorse di calcolo, che fanno “esplodere” il suo consumo di elettricità. Negli ultimi anni, la tendenza generale che si è andata affermando della ricerca ha aggravato il problema. Modelli di proporzioni gigantesche, addestrati su miliardi di punti dati per diversi giorni, sono in voga e probabilmente non scompariranno presto.

Alcuni ricercatori si sono mossi in nuove direzioni, con algoritmi che possono essere addestrati su meno dati o hardware in grado di eseguire quegli algoritmi più velocemente. Ora, i ricercatori di IBM ne stanno proponendo uno diverso. La loro idea ridurrebbe le combinazioni binarie di 1 e 0, necessarie per rappresentare i dati-da 16 bit, lo standard industriale attuale, a solo quattro.

Il lavoro, che viene presentato questa settimana a NeurIPS, la più grande conferenza annuale di ricerca sull’AI, potrebbe aumentare la velocità e tagliare i costi energetici necessari per addestrare il deep learning di oltre sette volte. Potrebbe anche rendere possibile l’addestramento di potenti modelli di intelligenza artificiale su smartphone e altri piccoli dispositivi, il che migliorerebbe la privacy aiutando a conservare i dati personali su un dispositivo locale. Renderebbe, inoltre, il processo più accessibile ai ricercatori al di fuori delle grandi aziende tecnologiche ricche di risorse.

Come funzionano i bit

Probabilmente tutti sanno che la memoria dei computer funziona con sistemi binari composti di 1 e 0. Queste unità fondamentali di informazione sono note come bit. Quando un bit è “on”, corrisponde a 1; quando è “off”, si trasforma in uno 0. Ogni bit, in altre parole, può memorizzare solo due informazioni.

Ma una volta messi insieme, la quantità di informazioni che si può codificare cresce in modo esponenziale. Due bit possono rappresentare quattro informazioni perché ci sono 22 combinazioni: 00 , 01 , 10 e 11 . Quattro bit possono rappresentare 24 o 16 informazioni. Otto bit possono rappresentare 28 o 256. E così via.

La maggior parte dei laptop oggigiorno sono computer a 32 o 64 bit. Ciò non significa che il computer possa codificare solo 232 o 264 informazioni in totale – sarebbe un computer poco potente – ma che può utilizzare tanti bit di complessità per codificare ogni pezzo di dati o singola operazione.

Apprendimento profondo a 4 bit

Allora cosa significa formazione a 4 bit? Bene, per iniziare, abbiamo un computer a 4 bit e quindi 4 bit di complessità. Per esempio, ogni singolo numero che si usa durante il training deve essere uno dei 16 numeri interi compresi tra -8 e 7, perché questi sono gli unici numeri che il nostro computer può rappresentare. Questo vale per i punti dati che vengono introdotti nella rete neurale, i numeri che si utilizzano per rappresentare la rete neurale e i numeri intermedi che si devono memorizzare durante l’addestramento.

Come viene fatto? Si immagini che i dati del training siano un intero gruppo di immagini in bianco e nero. In una prima fase si devono convertire queste immagini in numeri, in modo che il computer possa riconoscerle. Lo si fa rappresentando ogni pixel in base al suo valore in una scala di grigi: 0 per il nero, 1 per il bianco e i decimali che intercorrono per le sfumature di grigio. L’immagine ora è un elenco di numeri che vanno da 0 a 1. Ma nel sistema a 4 bit, è necessario che l’intervallo sia tra -8 a 7. La soluzione è scalare linearmente l’elenco di numeri, quindi 0 diventa -8 e 1 diventa 7 e i decimali vengono mappati sugli interi al centro, come si può vedere dalla figura 1.

Figura 1.Il binomio 0 e 1 viene trasferito all’interno dell’intervallo -8 e 7, e i decimali sono approssimati al numero intero.

Questo processo non è perfetto. Se si inizia con 0,3, per esempio, si finisce con il numero in scala -3,5. Ma i nostri quattro bit possono rappresentare solo numeri interi, quindi si deve arrotondare -3,5 a -4, finendo per perdere alcune delle sfumature di grigio, o la cosiddetta precisione, della immagine, come si evince dalla figura 2. Minore è il numero di bit, minore è il dettaglio della foto. Questa è quella che viene chiamata perdita di precisione .

Figura 2.Più basso è il numero di bit, minori sono i dettagli della foto. In questo caso si parla di “precisione”.

Se si prova però ad applicare questo meccanismo alla rete neurale stessa, le cose si complicano un po’, come è visibile nella figura 3. Spesso vediamo le reti neurali disegnate come qualcosa con nodi e connessioni, ma per un computer anche questi si trasformano in una serie di numeri. Ogni nodo ha un cosiddetto valore di attivazione , che solitamente va da 0 a 1, e ogni connessione ha un peso, che solitamente va da -1 a 1.

Figura 3.La rete neurale.

Anche adottando la stessa procedura messa in campo con i i pixel, rimane il problema che le attivazioni e i pesi cambiano a ogni seduta di allenamento. Per esempio, a volte le attivazioni vanno da 0,2 a 0,9 in un incontro e da 0,1 a 0,7 in un altro. Quindi il gruppo di IBM ha scoperto una nuova via d’uscita nel 2018: estendere questi intervalli tra -8 e 7 a ogni seduta (come mostrato nella figura 4), il che evita efficacemente di diminuire in modo marcato il livello di precisione.

Figura 4.I ricercatori di IBM hanno riallineato le attivazioni e i pesi della rete neurale in ogni seduta di training, per evitare di diminuire ulteriormente il livello di precisione.

Ma poi resta un ultimo tassello: come rappresentare in quattro bit i valori intermedi che emergono durante l’addestramento. La cosa difficile è che questi valori possono estendersi su diversi ordini di grandezza, a differenza dei numeri utilizzati per le immagini, i pesi e le attivazioni. Possono essere piccoli, come 0,001, o enormi, come 1.000. Il tentativo di riallinearli tra -8 e 7 perde tutta la granularità all’estremità più piccola della scala, come si può vedere nella figura 5.

Figura 5.Il riallineamento di numeri che coprono diversi ordini di grandezza perde tutta la granularità all’estremità più piccola della scala. Come si può vedere, qualsiasi numero inferiore a 100 verrebbe scalato a -8 o -7. La mancanza di precisione danneggerebbe le prestazioni finali del modello di AI.

Dopo due anni di ricerca, i ricercatori hanno finalmente risolto il puzzle: prendendo in prestito un’idea esistente da altri, ridimensionano questi numeri intermedi in modo logaritmico. Per vedere cosa si intende, nella figura 6 è riportata una scala logaritmica con una cosiddetta “base” 10, utilizzando solo quattro bit di complessità (I ricercatori invece usano una base 4, perché tentativi ed errori hanno dimostrato che funziona meglio). E’ visibile come questo sistema consenta di codificare numeri piccoli e grandi entro i vincoli di bit.

Figura 6.Una scala logaritmica con base 10.

I ricercatori di IBM eseguono diversi esperimenti in cui simulano l’addestramento a 4 bit per una varietà di modelli di apprendimento profondo nella visione artificiale, nel parlato e nell’elaborazione del linguaggio naturale. I risultati mostrano una perdita limitata di precisione nelle prestazioni complessive dei modelli rispetto all’apprendimento profondo a 16 bit. Il processo è anche oltre sette volte più veloce e più efficiente dal punto di vista energetico.

Ci sono ancora molti altri passaggi prima che l’apprendimento profondo a 4 bit diventi una pratica effettiva. Il documento simula solo i risultati di questo tipo di training. Farlo nel mondo reale richiederebbe un nuovo hardware a 4 bit. Nel 2019, IBM Research ha lanciato un AI Hardware Center per accelerare il processo di sviluppo e la produzione di tali apparecchiature. 

Kailash Gopalakrishnan, un manager di IBM che ha supervisionato questo lavoro, afferma che si aspetta di avere hardware a 4 bit pronto per il deep learning in tre o quattro anni. Boris Murmann, professore a Stanford che non è stato coinvolto nella ricerca, definisce i risultati entusiasmanti. “Questo progresso apre la porta alla formazione in ambienti con risorse limitate”, egli afferma. “Non implica necessariamente nuove applicazioni, ma rende quelle esistenti più veloci e con un consumo minore di batteria”. 

Apple e Google, per esempio, hanno sempre cercato di spostare sugli smartphone e lontano dal cloud il percorso di addestramento dei loro modelli di intelligenza artificiale, come i sistemi di sintesi vocale e di correzione automatica. In questo modo si preserva la privacy del consumatore, mantenendo i propri dati sul telefono e migliorando al contempo le capacità di intelligenza artificiale del dispositivo.

Murmann osserva, però, che è necessario fare di più per verificare la validità della ricerca. Nel 2016, il suo gruppo ha pubblicato un documento che ha offerto una dimostrazione della formazione a 5 bit. Ma l’approccio non ha retto negli anni. “La nostra ipotesi è caduta perché le reti neurali sono diventate molto più sensibili”, egli afferma. “Quindi non è chiaro se una tecnica come questa possa a sua volta sopravvivere alla prova del tempo”.

Immagine di: Ms Tech/Wellcome Collection

(rp)

Related Posts
Total
0
Share