Hardware utilizzato nella partita AlphaZero vs Stockfish


22

Capisco che AlphaZero debba usare un tipo di hardware diverso rispetto al normale Stoccafisso. Mi aspetto che l'hardware abbia un grande effetto sulla potenza del motore. Ecco perché mi chiedo se ci siano stati tentativi di fornire hardware comparabile ad entrambi. Anche cosa significherebbe "comparabile" qui?

In particolare ho letto che le persone si lamentano:

  • Lo stoccafisso riceve solo 1 GB di cache e
  • il limite di tempo di 1 min / mossa (Come sarebbe questo svantaggio dello stoccafisso?)

Dimensione dell'hash , non cache, a quanto pare.
Federico Poloni,

2
Consiglio vivamente di chiedere questo su un forum tecnico (come lo scambio di stack AI , forse intitolato "Equità di valutazione nelle partite AlphaZero vs. Stockfish"), perché le risposte qui non sono buone.
Veedrac,

Risposte:


20

Ecco perché mi chiedo se ci siano stati tentativi di fornire hardware comparabile ad entrambi.

Questo è Google di cui stai parlando! Quindi la risposta è ovviamente "No".

Dal documento originale hardware utilizzato per l'inizializzazione e la formazione -

La formazione è proseguita per 700.000 passaggi (mini-batch di dimensioni 4.096) a partire da parametri inizializzati in modo casuale, utilizzando 5.000 TPU di prima generazione (15) per generare giochi self-play e 64 TPU di seconda generazione per addestrare le reti neurali

e hardware utilizzato per i giochi -

AlphaZero e il precedente AlphaGo Zero utilizzavano un'unica macchina con 4 TPU Stockfish ed Elmo giocavano al loro livello di abilità più forte usando 64 thread e una dimensione di hash di 1 GB.

Quindi, AlphaZero ha utilizzato hardware speciale sviluppato da Google. Ha utilizzato unità di processori tensoriali specializzati (TPU) anziché unità di elaborazione centrale (CPU) generali disponibili in commercio.

Ecco come Wikipedia descrive le TPU di seconda generazione che hanno usato -

La seconda generazione di TPU è stata annunciata a maggio 2017. Google ha dichiarato che il design della prima generazione di TPU era limitato dalla larghezza di banda della memoria e l'utilizzo di 16 GB di memoria ad alta larghezza di banda nella progettazione di seconda generazione ha aumentato la larghezza di banda a 600 GB / se le prestazioni a 45 TFLOPS. I TPU sono quindi disposti in moduli 180 TFLOPS a 4 chip

Hanno usato 4 TPU per i giochi, quindi una potenza di elaborazione di 180 TFLOPS. Nota TFLOPS = 1000 miliardi di operazioni in virgola mobile al secondo.

Per fare un confronto, l'ultimo chip più potente di Intel è il processore Core i9 Extreme Edition che arriva a 1 TFLOP. Un top della linea I7 che potresti trovare in una macchina da gioco sarebbe in genere circa 100 GFLOP (ovvero un decimo di un TFLOP).

Penso che sia giusto dire che AlphaZero stava usando un gorilla da 800 libbre di una configurazione hardware rispetto al mouse Stockfishes.


1
FLOPS significa operazioni in virgola mobile al secondo. L'aritmetica in virgola mobile probabilmente non è affatto utilizzata negli algoritmi core di Stoccafisso e AlphaZero. Quindi il numero di FLOPS non è in realtà una misura significativa della velocità del processore rilevante per il motore di scacchi.
René Pijl,

9
Al contrario, credo che le reti neurali utilizzino l'aritmetica in virgola mobile piuttosto intensamente. (Ma ovviamente la tua osservazione ha perfettamente senso e si applica allo stoccafisso.)
Federico Poloni l'

3
Un confronto molto più appropriato sarebbe con una GPU; NVIDIA Tesla V100 è in grado di eseguire 120 TFLOP, rispetto alla generazione precedente (P100), che ha fatto solo circa 20. Le CPU sono ottimizzate in modo molto diverso dalle GPU che eseguono volumi di numeri.
Nick T,

12

Penso che sia meglio approfondire il tuo secondo punto con una mossa di esempio nel gioco 1 tra AlphaZero e Stoccafisso, che oggi è servito anche a soddisfare la mia curiosità.

il limite di tempo di 1 min / mossa (Come sarebbe questo svantaggio dello stoccafisso?)

Le prestazioni di Stockfish dipendono sia dal limite di tempo che dalla configurazione hardware, quindi pensa solo a quando qualcuno raddoppia i thread della CPU, quindi Stockfish ha bisogno di meno tempo (non necessariamente metà) per trovare la soluzione di quanto farebbe con la prima configurazione.

Nel primo rapporto pubblicato su Chess.com qualcuno ha affermato che Stockfish non stava giocando in modo ottimale perché non poteva riprodurre gli stessi risultati usando lo stesso Stockfish sul suo computer. Ha detto che nella posizione in basso (gioco 1 - mossa 11) lo stoccafisso ha giocato a Kg1-h1 (spostando il suo re) che non aveva alcun senso. D'altra parte, lo stoccafisso sul suo computer ha mostrato una mossa più in via di sviluppo come Be3 (sposta il vescovo quadrato scuro), diamo un'occhiata alla posizione:

Gioco 1 in movimento 11

Sì, è stata una mossa passiva e sembra che lo stoccafisso avrebbe dovuto giocare una mossa più in via di sviluppo. Ma aveva torto. Perché? Perché ha fatto funzionare lo stoccafisso per 15 secondi e se l'avesse fatto per un'ora avrebbe ottenuto Kg1-h1 come mossa migliore in quella posizione. Lo stoccafisso cambia decisione quando analizza tutte le mosse possibili in modo più approfondito. Ecco cosa ho detto originariamente nella mia risposta :

Ho eseguito l'ultimo stoccafisso sulla posizione (alla mossa 11):

  • Inizialmente, fornisce b4 come mossa ottimale quando il motore è in funzione per circa un minuto. Dopodiché, decide che Be3 è meglio.
  • Ma dopo 5 minuti sul mio hardware che gira su 1.400k nodi / s, deciderà di scegliere Kh1 come mossa ottimale.

  • Nel documento, si dice che lo stoccafisso calcola 70.000.000 di posizioni al secondo e viene eseguito per 1 minuto per mossa, circa 50 volte il mio hardware, quindi lascerò correre il mio per 50 minuti ... Kg1-h1 è ancora il scelta per stoccafisso.

Il limite di tempo è la chiave

Nel caso sopra, probabilmente non importava molto se lo Stoccafisso funzionasse due volte, perché la decisione sarebbe stata la stessa, ma alla prossima mossa avrebbe sicuramente :

inserisci qui la descrizione dell'immagine

In questa posizione, lo stoccafisso ha scelto di spostare il pedone sul lato sinistro ( a4-a5 ). Diciamo che ho un computer che fa funzionare il motore Stockfish ad una velocità di 1.400k nodi al secondo, che è circa 50 volte inferiore allo Stockfish nel gioco reale ( nel documento , dice 70.000kn / s). Quindi posso simulare il gioco se lo eseguo per 50 minuti ad ogni mossa. Va bene.

Ho eseguito l'analisi dello stoccafisso nella posizione sopra e ho ottenuto i seguenti risultati:

  • Lo stoccafisso ha iniziato a suggerire alcune mosse, ma dopo 6 minuti sul mio computer (corrisponde a 7,2 secondi sullo stoccafisso nel gioco reale) ha preferito a4-a5 proprio come è andato il gioco .

Va bene, ma l'ho tenuto in esecuzione per 50 minuti completi al fine di raggiungere i calcoli dello stoccafisso nel gioco che è stato concesso 1 minuto:

La triste verità è che credo che lo stoccafisso abbia perso tutti i suoi giochi a causa del limite di tempo. Lo stoccafisso ottiene una ricerca e una valutazione più approfondite col passare del tempo e nel gioco non è stato permesso di usare un libro di apertura che lo fa considerare molte mosse in profondità. Si noti che nel gioco reale a4-a5 è stato giocato il che dimostra che (supponendo che potesse valutare 70 milioni di posizioni al secondo) lo stoccafisso nel gioco non ha trascorso più di 21,6 secondi in movimento. Altrimenti, avrebbe cambiato la sua decisione con quelle altre tre mosse nel gioco reale. La ragione di ciò non è ancora chiara per me poiché il mio stoccafisso consumava anche meno memoria (circa 130 MB di RAM rispetto ai 1 GB citati nel documento originale , supponendo che tutto andasse alle tabelle di hash).


Conclusione

L'hardware che eseguiva Stockfish, come ho sottolineato, era nel migliore dei casi 18 volte più veloce del mio (Aggiornamento: su un singolo core) in base alla mossa che ho analizzato. Non sono sicuro che AlphaZero potesse davvero utilizzare tale hardware per allenare le sue reti in 4 ore, posso solo supporre che sia troppo basso per un gioco come gli scacchi. Inoltre, AlphaZero ha trascorso quelle ore sull'apprendimento, che include anche la costruzione di solide aperture (e come sottolinea il documento, le preferenze su determinate aperture). D'altra parte, lo stoccafisso era handicappato sulle aperture e non valutava 70 milioni di posizioni al secondo per 60 secondi su ogni mossa.

Come nota finale, tutte le cose che ho detto erano basate sui miei presupposti. Naturalmente, il risultato di AlphaZero e dei giochi è stato molto interessante per me. Tuttavia, mi sarebbe piaciuto vedere un gioco in cui lo Stockfish era proprio come quello che ottengo sul mio computer. Cioè, più tempo e un libro di apertura consentito. È anche facile ottenere i risultati dell'analisi dello stoccafisso su ogni mossa, e vorrei che lo rilasciassero per mostrare quanto bene fosse eseguito.


1
Per quanto riguarda il limite di tempo, la Figura 2 nel documento AlphaZero mostra il contrario: lo stoccafisso è migliore con un budget inferiore, ma si ridimensiona quando è disponibile più potenza. arxiv.org/pdf/1712.01815.pdf
old-ufo

1
@ old-ufo Grazie per averlo sottolineato. Come ho detto, le prestazioni di Stoccafisso (e AlphaZero) dipendono dall'hardware e dal limite di tempo. Ad esempio, se dessimo a Stockfish più hardware (e AlphaZero meno) e rigenerassimo quella cifra, la sua linea potrebbe essere trasformata in modo tale da rimanere sempre al di sopra della linea AlphaZero. Quindi suppongo che sia un buon punto nel confrontare l'hardware per entrambi i sistemi, che risponde anche alla domanda principale.
ReZzT

4

Uno degli autori originali di Stoccafisso risponde ai reclami specifici che hai menzionato qui:

Nel frattempo Chess.com ha anche ricevuto un lungo commento da uno degli autori originali dello stoccafisso, Tord Romstad, che daremo per intero:

I risultati delle partite da soli non sono particolarmente significativi a causa della strana scelta dei controlli del tempo e delle impostazioni dei parametri di Stockfish: i giochi sono stati giocati a un tempo fisso di 1 minuto / mossa, il che significa che Stockfish non fa uso della sua euristica di gestione del tempo ( sono stati fatti molti sforzi per far sì che lo Stoccafisso identifichi i punti critici del gioco e decida quando trascorrere un po 'di tempo in più in una mossa; a un tempo fisso per mossa, la forza ne soffrirà in modo significativo). La versione di Stockfish usata è vecchia di un anno, giocava con molti più thread di ricerca di quanti non abbia mai ricevuto una quantità significativa di test e aveva tabelle hash troppo piccole per il numero di thread. Credo che la percentuale di pareggi sarebbe stata molto più alta in una partita con condizioni più normali.

D'altra parte, non c'è dubbio che AlphaZero avrebbe potuto giocare meglio se fosse stato messo più lavoro nel progetto (anche se le "4 ore di apprendimento" menzionate nel documento sono altamente fuorvianti se si tiene conto delle enormi risorse hardware utilizzate durante quelle 4 ore). Ma in ogni caso, Stockfish vs AlphaZero è un paragone tra mele e oranghi. Uno è un programma di scacchi convenzionale in esecuzione su computer ordinari, l'altro utilizza tecniche fondamentalmente diverse e viene eseguito su hardware progettato su misura che non è disponibile per l'acquisto (e sarebbe fuori dal budget degli utenti ordinari se lo fosse).

Da un altro punto di vista, l'angolazione delle mele contro gli oranghi è la cosa più eccitante di questo: ora abbiamo due entità artificiali estremamente diverse (sia sul lato hardware che sul lato software) che mostrano entrambe abilità di gioco degli scacchi superumane. È molto più interessante di un altro programma di scacchi che fa la stessa cosa dei programmi di scacchi esistenti, solo un po 'meglio. Inoltre, l'adattabilità dell'approccio AlphaZero a nuovi domini offre interessanti possibilità per il futuro.

Per i giocatori di scacchi che utilizzano programmi di scacchi per computer come strumento, è improbabile che questa svolta abbia un grande impatto, almeno a breve termine, a causa della mancanza di hardware adeguato a prezzi convenienti.

Per i programmatori del motore di scacchi - e per i programmatori in molti altri settori interessanti - l'emergere di tecniche di apprendimento automatico che richiedono enormi risorse hardware per essere efficaci è un po 'scoraggiante. In pochi anni, è possibile che un programma di scacchi come AlphaZero possa essere eseguito su normali computer, ma le risorse hardware necessarie per crearli saranno ancora ben al di là del budget di hobbisti o aziende di medie dimensioni. È possibile che un progetto open source con una vasta rete distribuita di computer gestiti da volontari potrebbe funzionare, ma i giorni di centinaia di motori di scacchi unici, ognuno con le proprie peculiarità e personalità, saranno finiti.

Fonte: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author


2

L'esecuzione su hardware comparabile sarebbe necessaria se l'obiettivo finale di Google fosse quello di costruire un motore di scacchi superiore, ma questo esercizio non riguardava proprio gli scacchi. Gli scacchi sono solo un modo conveniente per dimostrare la capacità dell'IA di apprendere da zero compiti complicati. Se può funzionare bene contro una configurazione vagamente ragionevole di Stoccafisso, è selezionata la casella.

Prevedo che il team di Google non dedicherà molto più impegno agli scacchi; passeranno invece ad altri problemi che l'IA non è mai stata in grado di realizzare.


Ho dato +1 perché ho la stessa sensazione.
SmallChess,

Sembra probabile, anche se dubito che l'avrebbero pubblicato, se Alphazero avesse perso solo un piccolo margine (il che significa che sarebbe ancora di forza paragonabile allo stoccafisso).
user1583209

@ user1583209 Probabilmente lo hanno eseguito molte volte per capire il tempo minimo di apprendimento necessario per schiacciare lo stoccafisso. Quindi hanno eseguito una corsa finale e pubblicato quei risultati.
T Scherer,

1

Visita il Forum Talkchess per saperne di più, qui troverai circa 3000 programmatori. Questa era tutta una truffa. Alpha ha giocato su hardware 30 volte più grande di SF, 4TPU contro 64 core. 4TPU è di circa 1000 core o anche di più. Alpha aveva simulato il libro di apertura, addestrato su innumerevoli giochi vincitori di GM. SF ha avuto pochissimo hash. TC è stato fissato a 1 minuto per mossa, il che è di nuovo dannoso per SF, che ha una gestione avanzata del tempo. I TPU mancano delle inefficienze SMP con più core, quindi il vantaggio hardware era ancora maggiore. Ecc. Ecc., Quindi, in sostanza, questa è stata solo un'enorme acrobazia pubblicitaria da parte di Google. Attualmente, Alpha è circa 2800 su single core, quindi 400 elos sotto SF, e non avanzerà molto in futuro, poiché, d'ora in poi, avrà bisogno di una valutazione avanzata che non sarà in grado di scoprire. Per quanto riguarda il problema delle 4 ore, beh, LOL, era 48 ore fa, quindi ora Alpha è a 5000 elo? Dai.


5
Sembra che credi che AlphaZero faccia la stessa cosa di Stoccafisso, solo 1000 volte più veloce perché ha usato hardware 1000 volte più forte. Questo non è affatto vero. Utilizza un approccio molto diverso e tale approccio richiede molte risorse. Infatti, durante la partita AlphaZero stava valutando 80 mila posizioni al secondo mentre Stoccafisso stava registrando 70 milioni di posizioni al secondo. Ora dimmi che AlphaZero ha vinto a causa di un hardware più forte. Ovviamente su 64 CPU sarebbe più lento e chissà come avrebbe funzionato, ma il punto è che AlphaZero lo fa meglio, anche se a costi più elevati.
IA Petr Harasimovic,

3
L'hardware SF costa meno di $ 10k, Alpha uno in più di $ 250k. Disegna tu stesso le conclusioni. Gli Nps sono insignificanti e ogni programmatore di scacchi lo sa. Puoi fare tutti i tipi di trucchi in modo che gli nps diminuiscano, ma ciò non significa che giocherai più forte. Mi piacerebbe vederlo implementare quell'approccio su hardware SF e SF su hardware Alpha. Indovina il risultato? +85 -0 = 15 per SF. Se sono così fantastici, lascia che pubblichino il loro codice.
Lyudmil Tsvetkov,

3
"Alpha aveva simulato il libro di apertura, addestrato su innumerevoli giochi vincitori di GM." Libro di apertura simulato, sì, ma si è allenato sui giochi GM? Hai una fonte per questo? La mia comprensione era che Alpha era completamente bootstrap.
Akavall,

0

Lo stoccafisso è vincolato alle CPU, quindi non sarà mai in grado di scalare al livello che le GPU sono in grado di fare.

I calcoli della matrice Gor sono GPU scalabili con n, mentre le CPU scalano con n 3 , questi core tensoriali sono ulteriormente ottimizzati, quindi è probabile che le prestazioni siano ancora migliori con la scalabilità.


-2

Primo paragrafo più in dettaglio, seconda breve e semplice risposta terzo paragrafo le mie opinioni sulla situazione

Con AlphaZero l'hardware ha un effetto 0 sulla forza del suo gioco. Potrebbe richiedere più tempo ma non perché sta pensando. È una rete neurale, il che significa che le fornisci informazioni in un vettore (una tabella a colonna singola) fa una semplice matematica attraverso un tensore gigante (una tabella 3 o più dimensionale), quindi sputa la risposta. Lo stoccafisso ha bisogno di tempo per essere buono perché controlla le possibili posizioni per vedere se una mossa è vantaggiosa, quindi più a lungo esamina il problema più posizione / mosse può controllare.

Non esiste davvero una configurazione hardware comparabile. Poiché hanno esigenze diverse, lo stoccafisso deve analizzare più posizioni mentre AlphaZero deve solo fare una mossa. E le persone sono arrabbiate perché il computer di AlphaZero è tecnicamente molto più potente e pensano che dovrebbero essere uguali in questo senso. AlphaZero non ha bisogno di quel supercomputer dopo l'allenamento.

Secondo me non importa cosa danno ad entrambe le parti, a meno che Stockfish non abbia una quantità irragionevole di tempo probabilmente legherà qualche altro gioco, ma in generale si verificherà un effetto simile. Questo è il motivo per cui penso che Stockfish inizialmente valuti con i pezzi e i loro valori, mentre Alpha ha giocato (probabilmente) milioni di giochi per realizzare ciò che è importante strategicamente. Questo è il motivo per cui Alpha Sacs molto più di quanto lo stockfish non farebbe mai, ma ottiene enormi vantaggi posizionali.


È solo sbagliato. AlphaZero esegue la ricerca degli alberi. Più hardware lo rende più forte. E ha bisogno di tonnellate di hardware per giocare meglio dello stoccafisso.
BlindKungFuMaster,

Niente in questo post è corretto ...
SmallChess

Questo sistema si basa su 3 reti neurali e sulla ricerca parziale dell'albero di Monroe Carlo, quindi hai ragione su di esso usando la ricerca dell'albero. Durante il gioco utilizza 2 principi della rete neurale sviluppati in alphago di valore e politica. Go è un gioco che non può essere fatto tramite il potere computazionale perché è astronomicamente più complesso degli scacchi. Quindi, se credo che abbia bisogno di più potenza di calcolo di un algoritmo a forza bruta, allora sei delirante. O perdere informato. La terza rete neurale viene utilizzata per provare ed eccellere il processo di apprendimento indovinando i cambiamenti della propagazione posteriore. Il potere di Alphazeros è nelle reti, non nei mts.
Ezecal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.