211service.com
Piccoli computer a quattro bit sono ora tutto ciò di cui hai bisogno per addestrare l'IA
Otto bit costituiscono un byte, quindi quattro bit sono chiamati nibble. Gli ingegneri informatici hanno uno strano senso dell'umorismo. Signora Tech | Collezione di benvenuto
L'apprendimento profondo è un inefficiente divoratore di energia . Richiede enormi quantità di dati e abbondanti risorse di calcolo, il che fa esplodere il suo consumo di elettricità. Negli ultimi anni, l'andamento generale 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 affrettati a trovare nuove direzioni, come algoritmi su cui potersi allenare meno dati o hardware che può eseguire quegli algoritmi più velocemente . Ora i ricercatori IBM ne stanno proponendo uno diverso. La loro idea ridurrebbe il numero di bit, o uno sabbia 0 s, necessari per rappresentare i dati, da 16 bit, l'attuale standard del settore, a solo quattro.
Il opera , che verrà presentato questa settimana al NeurIPS, la più grande conferenza annuale di ricerca sull'IA, potrebbe aumentare la velocità e ridurre di oltre sette volte i costi energetici necessari per formare il deep learning. 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 mantenere i dati personali su un dispositivo locale. E renderebbe il processo più accessibile ai ricercatori al di fuori delle grandi aziende tecnologiche ricche di risorse.
Come funzionano i bit
Probabilmente hai già sentito dire che i computer archiviano le cose uno sabbia 0 S. Queste unità fondamentali di informazioni sono conosciute come bit . Quando un bit è attivo, corrisponde a a uno ; quando è spento, si trasforma in a 0 . Ogni bit, in altre parole, può memorizzare solo due informazioni.
Ma una volta che li metti insieme, la quantità di informazioni che puoi codificare cresce in modo esponenziale. Due bit possono rappresentare quattro informazioni perché ci sono 2^2 combinazioni: 00 , 01 , 10 , e undici . Quattro bit possono rappresentare 2^4 o 16 informazioni. Otto bit possono rappresentare 2^8 o 256. E così via.
La giusta combinazione di bit può rappresentare tipi di dati come numeri, lettere e colori o tipi di operazioni come addizione, sottrazione e confronto. La maggior parte dei laptop in questi giorni sono computer a 32 o 64 bit. Ciò non significa che il computer possa codificare solo 2^32 o 2^64 informazioni in totale. (Sarebbe un computer molto debole.) Significa che può usare così tanti bit di complessità per codificare ogni dato o singola operazione.
Apprendimento profondo a 4 bit
Quindi cosa significa formazione a 4 bit? Bene, per iniziare, abbiamo un computer a 4 bit, e quindi 4 bit di complessità. Un modo per pensarci: ogni singolo numero che utilizziamo durante il processo di allenamento 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 inseriamo nella rete neurale, i numeri che utilizziamo per rappresentare la rete neurale e i numeri intermedi che dobbiamo memorizzare durante l'allenamento.
Allora come lo facciamo? Pensiamo prima ai dati di allenamento. Immagina che sia un intero gruppo di immagini in bianco e nero. Passaggio uno: dobbiamo convertire quelle immagini in numeri, in modo che il computer possa capirle. Lo facciamo rappresentando ogni pixel in termini di valore della sua scala di grigi: 0 per il nero, 1 per il bianco e i decimali tra le sfumature di grigio. La nostra immagine è ora un elenco di numeri che vanno da 0 a 1. Ma nella terra a 4 bit, abbiamo bisogno che vada da -8 a 7. Il trucco qui è ridimensionare linearmente il nostro elenco di numeri, quindi 0 diventa -8 e 1 diventa 7 e i decimali vengono mappati agli interi nel mezzo. Così:

Puoi ridimensionare il tuo elenco di numeri da 0 a 1 per estenderlo tra -8 e 7, quindi arrotondare qualsiasi decimale a un numero intero.
Questo processo non è perfetto. Se hai iniziato con il numero 0.3, diciamo, finiresti con il numero in scala -3.5. Ma i nostri quattro bit possono rappresentare solo numeri interi, quindi devi arrotondare da -3,5 a -4. Si finisce per perdere alcune delle sfumature di grigio, o cosiddette precisione , a tua immagine. Puoi vedere come appare nell'immagine qui sotto.
Minore è il numero di bit, minore è il dettaglio della foto. Questo è ciò che viene chiamato una perdita di precisione .
Questo trucco non è troppo squallido per i dati di allenamento. Ma quando lo applichiamo di nuovo alla rete neurale stessa, le cose si complicano un po'.
Una rete neurale.
Spesso vediamo le reti neurali disegnate come qualcosa con nodi e connessioni, come l'immagine sopra. Ma per un computer, anche questi si trasformano in una serie di numeri. Ogni nodo ha un cosiddetto Attivazione valore, che di solito va da 0 a 1, e ogni connessione ha a peso , che di solito varia da -1 a 1.
Potremmo ridimensionarli nello stesso modo in cui abbiamo fatto con i nostri pixel, ma anche le attivazioni e i pesi cambiano ad ogni round di allenamento. Ad esempio, a volte le attivazioni vanno da 0,2 a 0,9 in un round e da 0,1 a 0,7 in un altro. Quindi il gruppo IBM ha escogitato un nuovo trucco nel 2018: ridimensionare quegli intervalli per estendersi tra -8 e 7 in ogni round (come mostrato di seguito), il che evita effettivamente di perdere troppa precisione.

I ricercatori IBM ridimensionano le attivazioni e i pesi nella rete neurale per ogni round di allenamento, per evitare di perdere troppa precisione.
Ma poi ci resta un ultimo tassello: come rappresentare in quattro bit i valori intermedi che emergono durante l'allenamento. La sfida è che questi valori possono estendersi su diversi ordini di grandezza, a differenza dei numeri che stavamo gestendo per le nostre immagini, pesi e attivazioni. Possono essere minuscoli, come 0,001, o enormi, come 1.000. Il tentativo di ridimensionare linearmente questo valore tra -8 e 7 perde tutta la granularità all'estremità minuscola della scala.

I numeri in scala lineare che si estendono su diversi ordini di grandezza perdono tutta la granularità all'estremità minuscola della scala. Come puoi vedere qui, qualsiasi numero inferiore a 100 verrebbe ridimensionato a -8 o -7. La mancanza di precisione danneggerebbe le prestazioni finali del modello AI.
Dopo due anni di ricerca, i ricercatori hanno finalmente risolto l'enigma: prendendo in prestito un'idea esistente da altri, scalano questi numeri intermedi logaritmicamente . Per capire cosa intendo, di seguito è riportata una scala logaritmica che potresti riconoscere, con una cosiddetta base di 10, utilizzando solo quattro bit di complessità. (I ricercatori usano invece una base di 4, perché prove ed errori hanno dimostrato che funzionava meglio.) Puoi vedere come ti consente di codificare sia numeri piccoli che grandi entro i vincoli di bit.

Una scala logaritmica con base 10.
Con tutti questi pezzi a posto, questo ultimo documento mostra come si uniscono. I ricercatori IBM hanno condotto 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 limitata perdita di precisione nelle prestazioni complessive dei modelli rispetto al deep learning a 16 bit. Il processo è anche sette volte più veloce e sette volte più efficiente dal punto di vista energetico.
Lavoro futuro
Ci sono ancora molti altri passaggi prima che il deep learning a 4 bit diventi una pratica reale. Solo la carta simula i risultati di questo tipo di formazione. 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 produzione di tali apparecchiature. Kailash Gopalakrishnan, un collega IBM e senior manager che ha supervisionato questo lavoro, afferma di aspettarsi di avere un hardware a 4 bit pronto per la formazione di deep learning tra tre o quattro anni.
Storia correlata
Piccoli modelli di intelligenza artificiale potrebbero potenziare la correzione automatica e gli assistenti vocali sul tuo telefono Boris Murmann, un professore a Stanford che non è stato coinvolto nella ricerca, definisce i risultati entusiasmanti. Questo progresso apre le porte alla formazione in ambienti con risorse limitate, dice. Non renderebbe necessariamente possibili nuove applicazioni, ma renderebbe quelle esistenti più veloci e con un buon consumo della batteria con un buon margine. Apple e Google, ad esempio, hanno sempre più cercato di spostare il processo di addestramento dei loro modelli di intelligenza artificiale, come la sintesi vocale e i sistemi di correzione automatica, lontano dal cloud e sui telefoni degli utenti . Ciò preserva la privacy degli utenti mantenendo i loro dati sul proprio telefono migliorando allo stesso tempo le capacità di intelligenza artificiale del dispositivo.
Ma Murmann osserva anche che occorre fare di più per verificare la fondatezza della ricerca. Nel 2016 il suo gruppo ha pubblicato un documento che ha dimostrato un allenamento a 5 bit. Ma l'approccio non ha resistito nel corso degli anni. Il nostro semplice approccio è andato in pezzi perché le reti neurali sono diventate molto più sensibili, dice. Quindi non è chiaro se una tecnica come questa sopravviverebbe anche alla prova del tempo.
Tuttavia, il documento motiverà le altre persone a guardare con molta attenzione e stimolerà nuove idee, dice. Questo è un progresso molto gradito.