Stockfish è stato rilasciato recentemente nella nuova versione 16. La nuova versione porta con se una rete neurale più grande, ed il programma è più forte di una decina di punti ELO della sua versione precedente.
Da quando Stockfish è stato dotato di rete neurale (NNUE), con il rilascio della versione 12 risalente al 2020, la crescita del programma è stata dirompente, guadagnando complessivamente oltre 200 elo in appena 3 anni.
Prima di questa fondamentale modifica, la valutazione del programma era affidata ad una funzione di valutazione programmata interamente da esseri umani. Questa funzione di valutazione, definita “classica”, fino alla versione di luglio 2023 era ancora presente nel programma (è stata recentemente rimossa qualche giorno fa), al punto che un utente poteva scegliere di disattivare la rete neurale ed effettuare la valutazione di una posizione sulla scacchiera con la vecchia funzione, in quanto, oltre ad essere decisamente più veloce, risultava in alcune posizioni particolari, vantaggiosa.
Viene quindi da chiedersi se in questi anni anche la funzione di valutazione “classica” abbia beneficiato almeno in parte dell’incremento di forza che ha caratterizzato le ultime versioni del programma, o se può ritenersi corretta la decisione degli sviluppatori di rimuovere la possibilità di utilizzarla. Lo scopo della seguente analisi è proprio per chiarire questo aspetto.
Versioni testate e condizioni del test
Le versioni di Stockfish testate sono tutte quelle ufficiali rilasciate dagli sviluppatori a partire dalla 12 (prima versione ad essere stata dotata di rete neurale):
- Stockfish 12
- Stockfish 13
- Stockfish 14
- Stockfish 14.1
- Stockfish 15
- Stockfish 15.1
- Stockfish 16
Le condizioni di test sono le stesse della “rating list” che pubblico ogni tanto:
- Tempo per partita di 40/120′ ripetuti, riparametrati sulla velocità equivalente (emulata) di un Pentium 90. Ciò corrisponde, con i PC moderni che uso nei test, a partite di durata blitz (3-5 minuti per partita).
- La suite di apertura è composta da 190 diverse posizioni, ripetute per ogni motore (ogni motore ha giocato la stessa apertura sia di bianco che di nero).
Ogni programma ha affrontato Stockfish 11 e Stockfish 10 (le ultime 2 versioni dotate esclusivamente di funzione di valutazione “classica”), con rete neurale disabilitata.
Risultati
I risultati mostrano un dato noto, il fatto che con la rete neurale abilitata (nel grafico è la curva di colore blu), le versioni di Stockfish successive alla 11 siano cresciute notevolmente in termini di ELO, anche se la crescita si è molto ridotta a partire dal rilascio della versione 14.1. Tra Stockfish 11 e Stockfish 16, con NNUE abilitata, vi sono circa 290 punti ELO di differenza.
Tuttavia, ciò non è vero se si passa alla funzione di valutazione classica (curva di colore arancione). La differenza in termini di ELO tra Stockfish 11 e Stockfish 16, con NNUE disattivata, è inferiore ai 20 punti elo. Addirittura, dai test effettuati, la forza del programma sembra calare leggermente fino alla versione 14.1, per poi tornare a crescere leggermente. Complessivamente tuttavia, la crescita del programma senza la rete neurale attiva è stata quasi nulla. Il grafico che segue illustra meglio questo andamento:
Questo andamento incoerente della curva, è molto probabilmente dovuto al fatto che le ottimizzazioni introdotte al codice di Stockfish atte a ottimizzare la ricerca con la rete neurale attivata, in alcuni casi sono risultati controproducenti quando ad essere utilizzata è la funzione di valutazione classica. Alla luce dei risultati, appare quindi corretta la decisione degli sviluppatori di Stockfish di rimuovere la funzione di valutazione classica.