banner

Notizia

May 28, 2023

Il gioco di Google DeepMind

Gli algoritmi generati dall’intelligenza artificiale sono già utilizzati da milioni di sviluppatori.

La serie di scoperte di DeepMind nel campo dell'informatica fondamentale continua. L'anno scorso l'azienda ha utilizzato una versione della sua intelligenza artificiale AlphaZero per giocare a trovare nuovi modi per accelerare il calcolo di un pezzo cruciale di matematica al centro di molti tipi diversi di codice, battendo un record di 50 anni.

Ora ha fatto di nuovo lo stesso trucco, due volte. Utilizzando una nuova versione di AlphaZero chiamata AlphaDev, l'azienda con sede nel Regno Unito (recentemente ribattezzata Google DeepMind dopo una fusione con il laboratorio di intelligenza artificiale della sua società sorella in aprile) ha scoperto un modo per ordinare gli elementi in un elenco fino al 70% più velocemente rispetto alla migliore versione esistente metodo.

Ha anche trovato un modo per accelerare del 30% un algoritmo chiave utilizzato nella crittografia. Questi algoritmi sono tra gli elementi costitutivi più comuni nel software. Piccole accelerazioni possono fare un’enorme differenza, riducendo i costi e risparmiando energia.

La nuova versione di AlphaZero ha scoperto un modo più veloce per eseguire la moltiplicazione delle matrici, un problema fondamentale nell'informatica che influenza migliaia di attività informatiche quotidiane.

"La legge di Moore sta giungendo al termine, secondo cui i chip si stanno avvicinando ai loro limiti fisici fondamentali", afferma Daniel Mankowitz, ricercatore presso Google DeepMind. "Dobbiamo trovare modi nuovi e innovativi per ottimizzare l'informatica."

"È un nuovo approccio interessante", afferma Peter Sanders, che studia la progettazione e l'implementazione di algoritmi efficienti presso l'Istituto di tecnologia di Karlsruhe in Germania e che non è stato coinvolto nel lavoro. "L'ordinamento è ancora una delle subroutine più utilizzate nell'informatica", afferma.

DeepMind ha pubblicato oggi i suoi risultati su Nature. Ma le tecniche scoperte da AlphaDev sono già utilizzate da milioni di sviluppatori di software. Nel gennaio 2022, DeepMind ha presentato i suoi nuovi algoritmi di ordinamento all'organizzazione che gestisce C++, uno dei linguaggi di programmazione più popolari al mondo, e dopo due mesi di rigorosi controlli indipendenti, gli algoritmi di AlphaDev sono stati aggiunti al linguaggio. Questa è stata la prima modifica agli algoritmi di ordinamento del C++ in più di un decennio e il primo aggiornamento in assoluto a coinvolgere un algoritmo scoperto utilizzando l'intelligenza artificiale.

DeepMind ha aggiunto i suoi altri nuovi algoritmi ad Abseil, una raccolta open source di algoritmi C++ precompilati che possono essere utilizzati da chiunque codifichi con C++. Questi algoritmi di crittografia calcolano numeri chiamati hash che possono essere utilizzati come ID univoci per qualsiasi tipo di dati. DeepMind stima che i suoi nuovi algoritmi vengano ora utilizzati trilioni di volte al giorno.

AlphaDev si basa su AlphaZero, il modello di apprendimento per rinforzo che DeepMind ha addestrato per padroneggiare giochi come Go e gli scacchi. La svolta di DeepMind è stata quella di trattare il problema di trovare un algoritmo più veloce come un gioco e poi far sì che la sua intelligenza artificiale vincesse, lo stesso metodo utilizzato per accelerare i calcoli nella ricerca dell'anno scorso.

Nel caso di AlphaDev, il gioco prevede la scelta delle istruzioni del computer e il loro posizionamento in ordine in modo che le righe di codice risultanti costituiscano un algoritmo. AlphaDev vince la partita se l'algoritmo è corretto e più veloce di quelli esistenti. Sembra semplice, ma per giocare bene, AlphaDev deve cercare tra un numero astronomico di mosse possibili.

DeepMind ha scelto di lavorare con l'assembly, un linguaggio di programmazione che può essere utilizzato per fornire istruzioni specifiche su come spostare i numeri su un chip di computer. Pochi esseri umani scrivono in assemblea; è il linguaggio in cui viene tradotto il codice scritto in linguaggi come C++ prima di essere eseguito. Il vantaggio dell'assembly è che consente di suddividere gli algoritmi in passaggi a grana fine: un buon punto di partenza se stai cercando scorciatoie.

I chip del computer hanno diversi slot in cui i numeri vengono inseriti ed elaborati. Assembly include istruzioni di base per manipolare cosa c'è in questi slot, come mov(A,B), che dice al computer di spostare il numero che è nello slot A nello slot B, e cmp(A,B), che dice al computer di controllare se ciò che c'è nello slot A è inferiore, uguale o maggiore di ciò che c'è nello slot B. Lunghe sequenze di tali istruzioni possono eseguire tutto ciò che fanno i computer.

CONDIVIDERE