Deeds y Learnfarm
Respecto al método de entrenamiento denominado Learnfarm, Deeds nos ha mostrado el camino aportando datos y pruebas durante años. Se puede consultar su sitio web para comprobar que es un apasionado del chesscomputer y, asimismo, posiblemente quién más autoridad tenga respecto a este método y o entrenamiento de los archivos de experiencia que complementan algunos motores de ajedrez.
Dicho esto, he decidido colaborar con Marco Zerbinati dentro de mis posibilidades con su motor de ajedrez HypnoS que se hizo público su código fuente hace unas semanas en la github. El motor cuenta con un archivo de experiencia qué lógicamente está vacío y necesita ser entrenado, reforzado con sesiones aplicando el método Learnfarm. Para este caso, seguiremos los consejos de Deeds y aunque es un trabajo de larga duración, los resultados merecen la pena. Pues acabarás obteniendo un archivo de experiencia de calidad.
Ls01
El primer banco de pruebas para HypnoS constará de 24 líneas de aperturas dónde en cada una de éstas, se usará la siguiente configuración de hardware, Software. Además os añado un ejemplo de script, para que podáis comprobar cómo se ejecuta la sesión o sesiones de refuerzo.
Hardware
Hp Proliant Dl 360p gen 8 2 Xe5 2697 V2
192gb DDR3 ECC
Storage 512Gb +2X128Gb+ 256Gb (SSD sata)
Software
Windows 10 pro Workstation
Cutechess-cli
Tbs 3,4,5,6 pieces + 20 first 7 pieces endgames by % of use
PGN suite by Deeds Selection (24 lines)
Time control = 60+1
hash size= 512
Threads = 4
Oppo for HypnoS
- Stockfish16.1
- Shashchess 34.6
- brainlearn 27.1
- Eman 9.90
Ejecutando gauntlets
En mi caso particular, al disponer de 24 cores y 48 threads vamos a configurar cuatro gauntlets, es decir cuatro torneos. Cada torneo es para entrenar una línea de las que hemos escogido de la web de Deeds. Dichos gauntlets se ejecutan con el siguiente script:
Gauntlet 1
@echo off
REM set openings to use
set opening=AOO1
REM set the window title
title HypnoS Learning
REM cutechess-cli setup
@cutechess-cli.exe ^
-event "HypnoS Learning" -site "HP Proliant DL360P Gen8 Server" ^
-engine conf="HypnoS 220324_1" ^
-engine conf="EMAN 9.90_1" ^
-engine conf="Brainlearn27_1" ^
-engine conf="Stockfish16.1_1" ^
-engine conf="ShashChess34.6_1" ^
-tournament gauntlet ^
-each tc=60+1 option.Hash=512 option.Threads=4 -tb C:\Syzygy6 -tbpieces 6 ^
-openings file=..\Openings\PGN\AOO1.pgn format=pgn order=random ^
-concurrency 1 -rounds 250 -games 2 ^
-repeat 2 -recover ^
-pgnout ..\Games\games.pgn fi ^
-ratinginterval 10
pause
Gauntlet 2
@echo off
REM set openings to use
set opening=A46
REM set the window title
title HypnoS Learning
REM cutechess-cli setup
@cutechess-cli.exe ^
-event "HypnoS Learning" -site "HP Proliant DL360P Gen8 Server" ^
-engine conf="HypnoS 220324_2" ^
-engine conf="EMAN 9.90_2" ^
-engine conf="Brainlearn27_2" ^
-engine conf="Stockfish16.1_2" ^
-engine conf="ShashChess34.6_2" ^
-tournament gauntlet ^
-each tc=60+1 option.Hash=512 option.Threads=4 -tb C:\Syzygy6 -tbpieces 6 ^
-openings file=..\Openings\PGN\A46.pgn format=pgn order=random ^
-concurrency 1 -rounds 250 -games 2 ^
-repeat 2 -recover ^
-pgnout ..\Games\games.pgn fi ^
-ratinginterval 10
pause
Gauntlet 3
REM set the window title
title HypnoS Learning
REM cutechess-cli setup
@cutechess-cli.exe ^
-event "HypnoS Learning" -site "HP Proliant DL360P Gen8 Server" ^
-engine conf="HypnoS 220324_3" ^
-engine conf="EMAN 9.90_3" ^
-engine conf="Brainlearn27_3" ^
-engine conf="Stockfish16.1_3" ^
-engine conf="ShashChess34.6_3" ^
-tournament gauntlet ^
-each tc=60+1 option.Hash=512 option.Threads=4 -tb C:\Syzygy6 -tbpieces 6 ^
-openings file=..\Openings\PGN\B001.pgn format=pgn order=random ^
-concurrency 1 -rounds 250 -games 2 ^
-repeat 2 -recover ^
-pgnout ..\Games\games.pgn fi ^
-ratinginterval 10
pause
Gauntlet 4
@echo off
REM set openings to use
set opening=B06
REM set the window title
title HypnoS Learning
REM cutechess-cli setup
@cutechess-cli.exe ^
-event "HypnoS Learning" -site "HP Proliant DL360P Gen8 Server" ^
-engine conf="HypnoS 220324_4" ^
-engine conf="EMAN 9.90_4" ^
-engine conf="Brainlearn27_4" ^
-engine conf="Stockfish16.1_4" ^
-engine conf="ShashChess34.6_4" ^
-tournament gauntlet ^
-each tc=60+1 option.Hash=512 option.Threads=4 -tb C:\Syzygy6 -tbpieces 6 ^
-openings file=..\Openings\PGN\B06.pgn format=pgn order=random ^
-concurrency 1 -rounds 250 -games 2 ^
-repeat 2 -recover ^
-pgnout ..\Games\games.pgn fi ^
-ratinginterval 10
pause
Como podemos comprobar en los scripts se están haciendo sesiones de refuerzo con los siguientes ECO: A00; A46;B06 yB00.
Conclusión
Con estas instancias o gauntlets simuláneos podremos terminar las 24 líneas de Ls01, la primera parte de sesiones de refuerzo del archivo de experiencia con cuatro entrenamientos. 2000 partidas por gauntlet, es decir, un total de 48.000 juegos. Por otra parte, os iré mostrando la evolución de los entrenamientos y las impresiones a medida que avance método de Learnfarm.
Jorge Ruiz
Estudioso de la filología hispánica y la antropología social africana