Il laboratorio di ricerca sull’intelligenza artificiale (AI) di Google, DeepMind, ha raggiunto un risultato notevole nel campo dell’informatica grazie al suo ultimo sistema di intelligenza artificiale, chiamato AlphaDev. Questa versione specializzata di AlphaZero ha compiuto un importante passo avanti scoprendo algoritmi di ordinamento e hashing più veloci, che sono processi fondamentali utilizzati quotidianamente dagli sviluppatori di tutto il mondo per l’organizzazione, l’archiviazione e il recupero dei dati.
In un articolo pubblicato sulla rivista scientifica Nature, DeepMind sostiene che l’algoritmo recentemente scoperto da AlphaDev ha migliorato l’efficienza del 70% nell’ordinamento di brevi sequenze di elementi e circa l’1,7% per sequenze con più di 250.000 elementi, rispetto agli algoritmi della libreria C++. Di conseguenza, quando un utente invia una query di ricerca, l’algoritmo di AlphaDev permette di ottenere risultati ordinati più velocemente, portando a notevoli risparmi di tempo ed energia se applicato su larga scala.
DeepMind ritiene che questo risultato straordinario rivoluzioni l’informatica e prometta di migliorare l’efficienza e l’efficacia complessive. Daniel Mankowitz, ricercatore di Google DeepMind, ha affermato che si tratta di una pietra miliare significativa per l’apprendimento per rinforzo, poiché fornisce ulteriori prove della sua capacità di effettuare nuove scoperte, specialmente nel campo dell’ottimizzazione del codice.
L’azienda ha inoltre annunciato l’intenzione di rendere disponibili i nuovi algoritmi attraverso la libreria di ordinamento standard LLVM libc++, con l’obiettivo di fornire strumenti potenti a milioni di sviluppatori e aziende in diversi settori. Questo aggiornamento rappresenta la prima revisione di questa sezione della libreria di ordinamento in oltre un decennio e l’inclusione iniziale di un algoritmo sviluppato tramite l’apprendimento per rinforzo.
Secondo DeepMind, la maggior parte degli algoritmi computazionali ha raggiunto uno stadio in cui gli esperti umani non sono stati in grado di ottimizzarli ulteriormente, creando così un crescente ostacolo computazionale.
L’azienda ha sottolineato che l’utilizzo del deep reinforcement learning migliora i metodi di sviluppo generando algoritmi precisi ed efficienti. Ciò viene ottenuto ottimizzando la latenza effettiva misurata a livello di istruzioni della CPU, conducendo una ricerca più efficiente e considerando spazi di programmi accurati e veloci.
Gli algoritmi di ordinamento facilitano l’organizzazione sistemica degli elementi in un ordine specificato, e sono fondamentali nell’educazione informatica.
Allo stesso modo, l’hashing viene ampiamente utilizzato per l’archiviazione e il recupero dei dati, come ad esempio in un database di clienti. Gli algoritmi di hashing comunemente utilizzano una chiave (ad esempio, il nome utente “Jane Doe”) per generare un hash univoco che corrisponde ai valori di dati desiderati per il recupero (ad esempio, “numero d’ordine 164335-87”). Simile a un bibliotecario che utilizza un sistema di classificazione per trovare rapidamente un libro specifico, un sistema di hashing consente al computer di avere una conoscenza preliminare delle informazioni desiderate e della loro posizione precisa.
Nonostante gli sviluppatori scrivano principalmente codice in linguaggi di alto livello intuitivi come C++, la traduzione di questi linguaggi in istruzioni di assemblaggio a basso livello è essenziale per la comprensione del computer.
I ricercatori di DeepMind ritengono che ci siano molti miglioramenti possibili a un livello inferiore, ma che rappresentino una sfida da affrontare nei linguaggi di programmazione di alto livello. Il livello di assemblaggio offre flessibilità nell’archiviazione e nelle operazioni del computer, presentando un vasto potenziale di miglioramenti che possono influire in modo significativo sulla velocità e sull’efficienza energetica.
Per eseguire un algoritmo in C++, viene prima compilato in istruzioni CPU a basso livello chiamate istruzioni assembly, che manipolano i dati tra la memoria e i registri della CPU.
“Questo fornisce una panoramica molto più dettagliata di come funziona l’algoritmo e rende più facile trovare ottimizzazioni per migliorarlo”, ha affermato Mankowitz. “Ottimizzando l’assemblaggio, abbiamo scoperto le mosse di copia e scambio di AlphaDev. Queste sono sequenze di istruzioni di assemblaggio che riducono la dimensione del programma di una singola istruzione quando applicate a un programma di assemblaggio.”
AlphaDev di DeepMind ha adottato un approccio non convenzionale per scoprire algoritmi più veloci, esplorando il territorio delle istruzioni di assemblaggio dei computer, un ambito raramente esplorato dagli esseri umani.
Per scoprire nuovi algoritmi, AlphaDev si è ispirato al famoso modello di apprendimento per rinforzo di DeepMind, AlphaZero, che ha ottenuto vittorie contro campioni del mondo in giochi come Go, scacchi e shogi (scacchi giapponesi).
Per addestrare AlphaDev a scoprire nuovi algoritmi, il team di ricerca ha trasformato l’ordinamento in un “gioco di assemblaggio” per giocatore singolo. AlphaDev ha utilizzato l’apprendimento per rinforzo per osservare e generare algoritmi incorporando le informazioni provenienti dalla CPU.
Il sistema di intelligenza artificiale ha scelto attivamente un’istruzione da incorporare nell’algoritmo ad ogni fase, risultando in un processo estremamente complesso e impegnativo a causa del vasto numero di potenziali combinazioni di istruzioni.
Poiché AlphaDev ha costruito l’algoritmo in modo incrementale, ha anche convalidato la correttezza di ogni mossa confrontando l’output dell’algoritmo con i risultati attesi. L’obiettivo finale di questo approccio era scoprire un programma corretto e più veloce, ottenendo così la vittoria nel gioco.
Il sistema di intelligenza artificiale di DeepMind ha portato alla luce nuovi algoritmi di ordinamento che hanno portato a miglioramenti sostanziali all’interno della libreria di ordinamento libc++ di LLVM.
La ricerca si è concentrata principalmente sul miglioramento degli algoritmi di ordinamento per sequenze più brevi, di solito composte da tre a cinque elementi. Poiché questi algoritmi sono spesso incorporati in funzioni di ordinamento più complesse, migliorarne l’efficienza può influire sulla velocità complessiva durante l’ordinamento di qualsiasi numero di elementi.
Per migliorare l’usabilità, DeepMind ha decodificato gli algoritmi scoperti e li ha convertiti in C++. I miglioramenti riguardano le routine sort3, sort4 e sort5, che ordinano numeri, in particolare numeri interi e float.
Inoltre, le capacità di AlphaDev vanno oltre gli algoritmi di ordinamento. DeepMind ha esplorato il potenziale del sistema per generalizzare il suo approccio e migliorare altri algoritmi informatici essenziali, incluso l’hashing. Applicando la metodologia di AlphaDev all’algoritmo di hashing nell’intervallo da 9 a 16 byte, si è ottenuto un miglioramento della velocità del 30%.
L’algoritmo di hashing è ora disponibile nella libreria open source Abseil. DeepMind afferma che AlphaDev rappresenta una pietra miliare significativa nel cammino verso la creazione di strumenti di intelligenza artificiale versatili, capaci di ottimizzare l’intero ecosistema informatico e affrontare le varie sfide della società.
Nonostante l’ottimizzazione delle istruzioni di assemblaggio a basso livello si sia dimostrata incredibilmente potente, l’azienda afferma di essere attivamente alla ricerca del potenziale di AlphaDev per ottimizzare gli algoritmi direttamente nei linguaggi di alto livello come C++, il che sarebbe ancora più prezioso per gli sviluppatori.
Ad esempio, ciò potrebbe comportare una pianificazione delle risorse più efficiente durante l’esecuzione di applicazioni e servizi, un’ottimizzazione della pipeline di compressione video di YouTube e un’ottimizzazione dell’hardware sottostante su cui i sistemi e le applicazioni vengono eseguiti.