Solo lo scorso anno, giocando, aveva trovato modo per accelerare il calcolo di una parte cruciale della matematica alla base di molti tipi di codice, battendo un record di mezzo secolo. Ora DeepMind colpisce ancora e vince una nuova sfida informatica, sfoderando nuova versione di AlphaZero chiamata AlphaDev.
Menomale, verrebbe da dire, visto che i chip sembra si stiano avvicinando ai loro limiti fisici fondamentali: servono quindi modi innovativi come il suo, per ottimizzare l’elaborazione.
Pubblicata su Nature, la nuova scoperta riguarda alcuni degli elementi costitutivi più comuni del software. Elementi che, secondo la stessa azienda, vengono utilizzati trilioni di volte al giorno. Ciò significa che, anche una minima accelerazione che li riguarda, può portare a considerevoli riduzioni di costi e di consumi energetici.
Ordinamento e crittografia: nuove performance grazie all’AI
La novità con cui DeepMind ha acceso l’attenzione di chi si occupa di codice riguarda un metodo per ordinare gli elementi di un elenco che risulta essere fino al 70% più veloce del migliore oggi esistente. Un tema “caldo”, quello dell’ordinamento, perché è ancora una delle subroutine più utilizzate nell’informatica e, quella introdotta, sarebbe la prima modifica apportata ad algoritmi del genere in C++ in oltre un decennio. E si tratta anche del primo aggiornamento che vede protagonista l’intelligenza artificiale.
Ora l’algoritmo è stato aggiunto ad Abseil, una raccolta open-source di algoritmi C++ pre-scritti utilizzabili da tutti, assieme a quello che accelera del 30% uno degli elementi chiave usati nella crittografia. Si tratta di un nuovo modo per calcolare i numeri chiamati hash che possono essere utilizzati come ID univoci per qualsiasi tipo di dati.
Sia per lavorare sull’ordinamento che sulla crittografia, DeepMind ha utilizzato il modello di apprendimento per rinforzo che DeepMind ha addestrato per padroneggiare in Go e negli scacchi: AlphaDev. Ha trattato entrambi i problemi come un gioco, sfidando la macchina nello scegliere e ordinare istruzioni per computer in modo che ne risultasse un algoritmo corretto e più veloce di quelli esistenti. Per farlo, ha utilizzato il linguaggio assembly, più agile nello scomporre gli algoritmi in passi precisi, quindi un buon strumento per individuare scorciatoie.
Verso un co-coding uomo-AI
Tanto per iniziare, DeepMind per ora si è concentrata sugli algoritmi di ordinamento di brevi elenchi di tre-cinque elementi. Sono quelli che vengono richiamati più volte per lavorare su elenchi più lunghi e che erano già stati ottimizzati dagli esseri umani per decenni. Nel caso “base” con tre elementi, si era arrivati a un record al ribasso di 18 istruzioni.
Sfidata da DeepMind, l’AI è riuscita a ordinarli in 17, saltando alcuni passaggi, non è riuscita a battere la migliore versione umana dell’algoritmo per l’ordinamento di un elenco di quattro elementi ma con quello di cinque ha ridotto il numero di istruzioni da 46 a 42. Tutto ciò, tradotto per chi non si occupa di coding, significa aumentare la velocità di elaborazione e, quindi, impattare sulla produttività e sulla reattività del business.
Una prospettiva che suscita entusiasmo, anche se c’è ancora tanto su cui lavorare. AlphaDev ha i suoi limiti, misurabili e concreti, e lo ammette DeepMind stessa. Oltre le 297 istruzioni e in giochi di assemblaggio lunghi più di 130 istruzioni, l’apprendimento sembra diventi lento. Ciò accade perché, con queste “dimensioni”, il numero di possibili algoritmi che AlphaDev potrebbe costruire è superiore al numero possibile di partite di scacchi (10120) e al numero di atomi nell’universo (che si ritiene sia di circa 1080). Diventa ingestibile, per ora.
Non rinunciando a sfidare l’uomo su algoritmi più lunghi, l’azienda prevede di adattare AlphaDev per lavorare con le istruzioni C++, invece che con l’assembly, per rendere il suo approccio “giocoso” applicabile a una gamma più ampia di algoritmi. Il vero sogno sarebbe però quello di poter contare su un esaustivo confronto con i migliori approcci sviluppati dall’uomo. Sarebbe il modo per permettere all’intelligenza artificiale di basarsi sull’intuizione umana anziché partire da zero.