Evaluando Leela Chess Zero

Software, versiones y novedades

Re: Evaluando Leela Chess Zero

Notapor juank » 18 May 2018 20:36

excelente trabajo alvaroi y Javier,

gracias por compartirlo.

por cierto, ha salido una alternativa al trabajo colaborativo para mejorar LCZero con Goolge Colab, se trata de Gogle Cloud Plataform,.. habrá que ver si se consigue un tutorial en español para poder usarlo y ayudar a éste ingente proyecto

https://github.com/glinscott/leela-ches ... nute-guide)

aquí una traducción con ggogle, que presisa supervición ¡?

https://translate.googleusercontent.com ... nute-guide)
Avatar de Usuario
juank
Avanzado
Avanzado
 
Mensajes: 638
Registrado: 13 Ene 2013 00:01

Re: Evaluando Leela Chess Zero

Notapor Javier Ros » 20 May 2018 10:03

juank escribió:excelente trabajo alvaroi y Javier,

gracias por compartirlo.

por cierto, ha salido una alternativa al trabajo colaborativo para mejorar LCZero con Goolge Colab, se trata de Gogle Cloud Plataform,.. habrá que ver si se consigue un tutorial en español para poder usarlo y ayudar a éste ingente proyecto

https://github.com/glinscott/leela-ches ... nute-guide)

aquí una traducción con ggogle, que presisa supervición ¡?

https://translate.googleusercontent.com ... nute-guide)


Parece que aunque la prueba de Google Cloud es gratis hay que autorizar un crédito de 300€ para un año en productos de Google Cloud.
Avatar de Usuario
Javier Ros
Avanzado
Avanzado
 
Mensajes: 556
Registrado: 20 Ene 2013 15:28
Ubicación: Sevilla

Re: Evaluando Leela Chess Zero

Notapor alvaroi » 20 May 2018 20:54

Igual habría que abrir otro hilo "Entender a LC0", porque es algo tan diferente a todo, que cuesta (al menos a mi) comprender cómo es capaz de alcanzar ese nivel de resultados a pesar de su bajísimo nivel táctico. ¿Es posible jugar a nivel de GM con un nivel táctico por debajo de 1600? Pues parece ser que sí, sorpendentemente. Como titular queda muy sensacionalista, pero hay que entender lo que hay detrás y cómo LC0 busca los movimientos y enfoca sus partidas.

Lo primero es dejar claro que LC0 utiliza un algoritmo probabilista, primo hermano del Monte Carlo, el PUCT (Predictor + Upper Confidence Bound tree search). Según se explica en git, LC0 valora una posición usando el conocimiento de "pesos" que acumula en su red neural, que aumenta con el entrenamiento. Una vez valorado, establece las jugadas que permiten expandir hacia el siguiente nivel del árbol, mediante la "política" de prioridades, establecida también por su red neural. El árbol se expande y así sucesivamente. Su análisis es muy transparente, de manera que podemos ver la valoración inicial de cada jugada (valor N) y el valor promedio de todos los nodos que se han evaluado para ese movimiento (valor V). Si un movimiento táctico del tipo "combinación", que empieza por un movimiento normalmente poco probable y con baja evaluación, después en el árbol contiene nodos con evaluación de probabilidad más alta, será elegido y resolverá la posición, pero si no, no. LC0 Quedará totalmente ciega hasta terminar su árbol de búsqueda (29 en mis pruebas) o hasta verse obligada a mover por el control de tiempo. Está claro que la red sigue su entrenamiento y queda mucho por ver, por lo que hemos de ser pacientes. Sin embargo, lo que centra mi atención es cómo es posible hacer tablas a todo un Komodo, Rybka y compañía, o ganar algunas a Shredder 12, o vapulear a Colossus, sin ver combinaciones que Mephisto III sí ve, o Polgar en ply 0. La conclusión es que LC0 juega un ajedrez de probabilidad y además queda claro que funciona, y muy bien. Pone en práctica la teoría de que la táctica, salvo excepciones, aparece cuando las piezas de un bando no están bien colocadas y las del otro sí. Es llamativo ver cómo, en muchas partidas, los rivales no tienen ninguna opción de combinar contra LC0, por lo que esa apabullante ventaja táctica no sirve. En cambio, cuando la posición se decanta a favor del rival y sí empiezan a aparecer esas opciones tácticas, LC0 cae muy rápido. Personalmente me llama la atención la eficacia del método de juego de LC0. Como jugador de ajedrez, me anima a estudiar su estilo. Su red neural, entrenando a base de millones de partidas contra ella misma, se va educando acerca de la manera más exitosa de ir colocando las piezas y valorar las posiciones. El valor PUCT es modificable, haciendo que LC0 se centre más o menos en movimientos menos probables, con lo que le ayuda un poco en táctica en estas fases iniciales de su entrenamiento. A efectos del aprendizaje, el valor se ha reducido a 0,60 en la versión 10.0. Configuraciones más altas parece que dan mejores resultados en partidas, cosa que hay que probar bien, pero las pruebas indican que 2.8 es, hoy por hoy, un valor adecuado.

Veamos un par de ejemplos de la misma apertura contra Risc II, LC0 CPU 10.0 con la red 312 y 1 núcleo de i7 990X. En la primera partida, LC0 juega con sus valores estándar y cae en una combinación sencilla. En la segunda, LC0 usa el valor puct 1.5, que le permite evitar esa posición (que sigue sin ver si se le obliga a jugar la línea), y Risc II termina perdiendo. En cambio, llama mucho la atención el hecho de que LC0 ve muy rápido y con mucha antelación toda la línea que permite escapar a su rey de los jaques y ganar, mientras que Risc II cree que son tablas hasta que el rey está a punto de escapar, y es entonces cuando se hunde su evaluación. Aquí van las partidas.

[Event "40/2 Evaluando LC0"]
[Site "?"]
[Date "2018.05.19"]
[Round "1"]
[White "Risc II ARM2/14 1024Kb, Mephisto"]
[Black "Lczero CPU 10.0 id312-2955 i7 990X"]
[Result "1-0"]
[BlackElo "2500"]
[ECO "C92"]
[Opening "Spanish"]
[Variation "Closed, Karpov Variation, 10.d4 Bf6 11.a4"]
[WhiteElo "2265"]
[TimeControl "40/7200:40/7200:40/7200"]
[Termination "abandoned"]
[PlyCount "64"]
[WhiteType "human"]
[BlackType "human"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8.
c3 O-O 9. h3 Nd7 10. d4 Bf6 11. a4 Bb7 12. axb5 axb5 13. Rxa8 Qxa8 14. d5
Ne7 15. Na3 Ba6 16. Be3 g6 17. Qd3 Qb7 18. c4 bxc4 19. Bxc4 Ra8 20. Bxa6
Qxa6 21. Qxa6 Rxa6 22. Nb5 c6 23. dxc6 Rxc6 24. Rd1 Nc8 25. Ra1 Kf8 26. Nd2
Bd8 27. Ra8 Ke8 28. Rxc8 Rxc8 29. Nxd6+ Ke7 30. Nxc8+ Ke6 31. b4 f5 32. b5
Ba5 {Las Negras abandonan} 1-0

[Event "40/2 Evaluando LC0"]
[Site "?"]
[Date "2018.05.19"]
[Round "2"]
[White "Risc II ARM2/14 1024Kb, Mephisto"]
[Black "Lczero CPU 10.0 id312-2955 PUCT 1.5"]
[Result "0-1"]
[BlackElo "2500"]
[ECO "C92"]
[Opening "Spanish"]
[Variation "Closed, Karpov Variation, 10.d4 Bf6 11.a4"]
[WhiteElo "2265"]
[TimeControl "40/7200:40/7200:40/7200"]
[Termination "abandoned"]
[PlyCount "92"]
[WhiteType "human"]
[BlackType "human"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8.
c3 O-O 9. h3 Nd7 10. d4 Bf6 11. a4 Bb7 12. axb5 axb5 13. Rxa8 Qxa8 14. d5
Ne7 15. Na3 Ba6 16. Be3 g6 17. Qd3 Qb7 18. c4 bxc4 19. Bxc4 Bxc4 20. Nxc4
Bg7 21. Ra1 Ra8 22. Rxa8+ Qxa8 23. Bg5 f6 24. Bh4 Qa4 25. Nfd2 Bh6 26. Nb3
Kf7 27. f3 f5 28. Kh2 Ke8 29. Nca5 Bf4+ 30. g3 g5 31. gxf4 gxh4 32. fxe5
Nxe5 33. Qe2 fxe4 34. fxe4 N7g6 35. Qe3 Qa2 36. Qc1 Nf3+ 37. Kh1 Nge5 38.
Kg2 Qa4 39. Qxc7 Qxe4 40. Qc8+ Kf7 41. Qe6+ Kg7 42. Qe7+ Kh6 43. Qf8+ Kg5
44. Qd8+ Kf4 45. Qf8+ Ke3 46. Nc4+ Nxc4 0-1

Posiciones tácticas de combinación, como la 94 del test de Colditz, son un obstáculo imposible para LC0.

[Event "Test Colditz (94)"]
[Site "Colditz"]
[Date "????.??.??"]
[Round "?"]
[White ""]
[Black ""]
[Result "0-1"]
[BlackElo ""]
[SetUp "1"]
[FEN "4rrk1/1bp2ppp/p7/1p1q4/3P1B2/2P3P1/PP5K/RN1Q2R1 b - - 0 1"]
[Termination "normal"]
[PlyCount "2"]
[WhiteType "program"]
[BlackType "program"]

1. ... Re1 2. c4 $19 (2. Qg4 Qh1+ 3. Rxh1 Rxh1#) 0-1

La red 253 agota su árbol de búsqueda hasta el nivel 29 sin ver la solución. Mephisto III la resuelve en 12'45", examinando 1775 posiciones. Roma 68000 en 5 segundos. Chocante. La red 317 resuelve la posición más allá de la profundidad 27 (versión GPU) y más de 15 minutos. Con PUCT más elevado, 2.8, la red 317 la resuelve en 2 minutos en profundidad 24.

En cambio veamos la posición C13 del test de Frontera, una de las posiciones "coco" del test. Aquí LC0 ni siquiera escoge el "cebo" en b2 en nivel 1, nunca. "Sabe" por la información de su red que tomar ese peón no pinta bien, y no se mete. Tremendo. Aquí vemos el terrible potencial de este sistema. Pura "intuición". Veamos el análisis para esta posición:

FEN: r1b1r1k1/1ppn1p1p/3pnqp1/4b3/p1P1P3/5P2/PPNQNBPP/1R2RBK1 b - - 0 1

Lczero GPU 10.0 id317-2975:
7 00:00 2 59 -2,92 g6-g5 Cc2-e3
8 00:00 3 118 -2,26 g6-g5 Cc2-e3 h7-h5
8 00:00 4 176 -2,15 g6-g5 Cc2-e3 h7-h5 Ce3-d5
10 00:00 13 667 -0,87 Cd7-c5 b2-b3 a4xb3 a2xb3 Ta8-a2
11 00:00 15 778 -0,76 Cd7-c5 Ce2-c3 c7-c6 Af2-e3 g6-g5 Cc3-e2
11 00:00 24 1k -0,58 Cd7-c5 b2-b3 a4xb3 a2xb3 Ta8-a2 b3-b4 Cc5-a4
12 00:00 32 2k -0,35 Cd7-c5 b2-b3 a4xb3 a2xb3 Ta8-a2 b3-b4 Cc5-a4 Tb1-b3
13 00:00 75 4k -0,25 Cd7-c5 b2-b3 a4xb3 a2xb3 Ta8-a2 Af2-e3 g6-g5 b3-b4 Cc5-d7
14 00:00 103 5k -0,20 Cd7-c5 b2-b3 a4xb3 a2xb3 Ta8-a2 b3-b4 Cc5-a4 Tb1-b3 Ca4-b6 Ce2-c3
16 00:00 333 15k -0,09 Cd7-c5 b2-b3 a4xb3 a2xb3 Ta8-a2 Dd2-d1 Ce6-g5 Ce2-c1 Ta2-b2 Tb1xb2 Ae5xb2
16 00:00 448 19k -0,06 c7-c6 b2-b3 a4xb3 a2xb3 h7-h5 Af2-e3 g6-g5 Cc2-d4 Cd7-c5 b3-b4 Cc5-d7
18 00:00 1k 35k +0,02 h7-h5 Cc2-b4 c7-c6 Cb4-d3 Cd7-c5 Cd3xe5 d6xe5 Dd2-c3 g6-g5 Ce2-g3 h5-h4 Cg3-f5 Ce6-d4
18 00:00 1k 39k +0,03 h7-h5 b2-b3 a4xb3 a2xb3 Ta8-a2 Dd2-d1 c7-c6 Ce2-c1 Ta2-a8 b3-b4 g6-g5
20 00:00 3k 50k +0,11 h7-h5 b2-b3 a4xb3 a2xb3 g6-g5 Cc2-d4 h5-h4 Cd4xe6 f7xe6 Af2-e3 h4-h3 Ae3xg5 Df6-g7 f3-f4
20 00:00 3k 51k +0,12 h7-h5 b2-b3 a4xb3 a2xb3 g6-g5 Cc2-e3 c7-c6 Ce3-f5 Ce6-g7 Cf5xg7 Df6xg7 Af2-e3 Cd7-c5 Ae3xg5 Ta8-a3 Ag5-f4
20 00:00 3k 51k +0,12 h7-h5 b2-b3 a4xb3 a2xb3 g6-g5 Cc2-e3 c7-c6 Ce3-f5 Ce6-g7 Cf5xg7 Df6xg7 Af2-e3 Cd7-c5 Ae3xg5 Ta8-a3 Ag5-f4
20 00:00 4k 52k +0,12 h7-h5 b2-b3 a4xb3 a2xb3 g6-g5 Cc2-e3 c7-c6 Ce3-f5 Ce6-g7 Cf5xg7 Df6xg7 Af2-e3 Ae5-f6 Ce2-g3 Af6-c3 Dd2xd6
21 00:00 6k 56k +0,12 h7-h5 b2-b3 a4xb3 a2xb3 Df6-g7 Cc2-d4 Cd7-c5 b3-b4 Cc5-d7 Cd4xe6 f7xe6 Ce2-d4 g6-g5 Cd4-b5 Te8-e7
21 00:00 7k 56k +0,12 h7-h5 b2-b3 a4xb3 a2xb3 Df6-g7 Cc2-d4 Cd7-c5 b3-b4 Cc5-d7 Cd4xe6 f7xe6 Ce2-d4 g6-g5 Cd4-b5 Te8-e7
21 00:00 7k 56k +0,10 h7-h5 b2-b3 a4xb3 a2xb3 Df6-g7 Af2-e3 Ta8-a2 Ce2-c1 Ta2-a8 Cc1-e2 Ta8-a2 Ce2-c1 Ta2-a8 Cc1-e2
21 00:00 9k 56k +0,10 h7-h5 b2-b3 a4xb3 a2xb3 Ta8-a2 Dd2-d1 Ta2-a8 Dd1-d2 b7-b6 Cc2-d4 Ac8-b7 Cd4xe6 f7xe6 f3-f4
23 00:00 24k 56k +0,16 h7-h5 b2-b3 a4xb3 a2xb3 Df6-g7 b3-b4 Ta8-a2 Dd2-d3 b7-b6 Ce2-c1 Ta2-a4 Dd3-b3 Ta4-a8 Cc1-d3 g6-g5 Cc2-e3 Ce6-d4
Qf4 -> 0 (V: 7.85%) (N: 0.07%) PV: Qf4
Qxf3 -> 0 (V: 7.85%) (N: 0.08%) PV: Qxf3
Kf8 -> 0 (V: 7.85%) (N: 0.08%) PV: Kf8
Qf5 -> 1 (V: 3.78%) (N: 0.24%) PV: Qf5 exf5
Qh4 -> 1 (V: 6.77%) (N: 0.22%) PV: Qh4 Bxh4
Bc3 -> 1 (V: 11.00%) (N: 0.25%) PV: Bc3 Nxc3
Ra5 -> 1 (V: 13.14%) (N: 0.32%) PV: Ra5 Qxa5
Bg3 -> 1 (V: 13.52%) (N: 0.21%) PV: Bg3 hxg3
Bd4 -> 1 (V: 13.65%) (N: 0.29%) PV: Bd4 Nexd4
Ra7 -> 1 (V: 15.76%) (N: 0.70%) PV: Ra7 Bxa7
Nd4 -> 1 (V: 17.66%) (N: 0.31%) PV: Nd4 Ncxd4
Bxh2+ -> 1 (V: 25.31%) (N: 0.19%) PV: Bxh2+ Kxh2
Kg7 -> 1 (V: 30.78%) (N: 0.11%) PV: Kg7 Ncd4
Kh8 -> 1 (V: 33.47%) (N: 0.16%) PV: Kh8 Ncd4
Bf4 -> 1 (V: 37.72%) (N: 0.28%) PV: Bf4 Nxf4
Qg5 -> 2 (V: 38.82%) (N: 0.36%) PV: Qg5 Be3 Qf6
b5 -> 3 (V: 29.73%) (N: 0.87%) PV: b5 cxb5 Bb7 Nb4
Nf4 -> 3 (V: 38.04%) (N: 0.50%) PV: Nf4 Nc3 c6 Bd4
d5 -> 5 (V: 30.36%) (N: 1.09%) PV: d5 exd5 Ng7 f4
Re7 -> 8 (V: 39.29%) (N: 1.10%) PV: Re7 Ne3 c6 Ng4 Qg7 f4
Nef8 -> 9 (V: 40.70%) (N: 1.12%) PV: Nef8 b3 Ne6 b4
Nd8 -> 9 (V: 42.04%) (N: 0.87%) PV: Nd8 Ne3 c6 Ng4 Qe7 f4
Ng7 -> 12 (V: 45.58%) (N: 0.84%) PV: Ng7 Ne3 c6 Ng4 Qe7 Nxe5 dxe5
Qd8 -> 12 (V: 45.90%) (N: 0.80%) PV: Qd8 Nc3 c6 Rbd1 Qf6
Rd8 -> 14 (V: 43.49%) (N: 1.15%) PV: Rd8 Ne3 c6 Ng4 Qe7 f4
Rf8 -> 15 (V: 42.82%) (N: 1.37%) PV: Rf8 Ne3 c6 Ng4 Qe7 f4
Nb8 -> 17 (V: 41.24%) (N: 1.84%) PV: Nb8 b3 axb3 axb3 Ra2 Nc1 Bc3
Rb8 -> 22 (V: 41.66%) (N: 2.37%) PV: Rb8 b3 axb3 axb3 Ra8 b4 Ra2 Nc1
Ra6 -> 24 (V: 42.85%) (N: 2.30%) PV: Ra6 Ne3 c6 Ng4 Qe7 f4
Nb6 -> 25 (V: 43.51%) (N: 2.19%) PV: Nb6 b3 axb3 axb3 Ra2 Nc1 Bc3 Qd1 Bxe1
h6 -> 27 (V: 41.75%) (N: 2.78%) PV: h6 Ne3 c6 Ng4 Qg7 Nxh6+
a3 -> 28 (V: 42.34%) (N: 2.80%) PV: a3 b3 c6 Rbd1 h5 Be3 g5
Bxb2 -> 28 (V: 50.40%) (N: 0.36%) PV: Bxb2 Ne3 a3 Nd5 Qd8 Nec3 c6
Qh8 -> 29 (V: 47.68%) (N: 1.25%) PV: Qh8 Ncd4 Ndc5 Nxe6 Bxe6 Nd4 Bd7 Nb5
Nec5 -> 39 (V: 45.60%) (N: 2.54%) PV: Nec5 b3 axb3 axb3 Ra2 Qd1 Ne6 Nb4
Qg7 -> 39 (V: 47.02%) (N: 1.99%) PV: Qg7 b3 axb3 axb3 Ra2 Be3 Ndc5 b4
c5 -> 55 (V: 45.60%) (N: 3.65%) PV: c5 Ne3 h5 Nd5 Qh8 f4 Bg7
Ndf8 -> 58 (V: 43.61%) (N: 4.94%) PV: Ndf8 Ne3 c6 Ng4 Qg7 f4 Nxf4
Qe7 -> 67 (V: 49.66%) (N: 1.75%) PV: Qe7 Nc3 c6 Be3 g5 Nd4 Nxd4 Bxd4
Ng5 -> 85 (V: 47.53%) (N: 4.04%) PV: Ng5 Ncd4 Nc5 Nc3 c6 Be3 Nge6 Nde2 g5 Rbd1
b6 -> 91 (V: 45.06%) (N: 6.55%) PV: b6 Ne3 h5 Nd5 Qd8 Rbd1 Bb7 Nec3 g5
g5 -> 323 (V: 47.04%) (N: 16.69%) PV: g5 Ne3 h5 Nd5 Qd8 Rbd1 c6 Ne3 Qf6 Nf5 Ndc5
Ndc5 -> 604 (V: 50.21%) (N: 12.28%) PV: Ndc5 b3 axb3 axb3 Ra2 Qd1 c6 Nc1 Ra8 b4 Na4
c6 -> 635 (V: 51.00%) (N: 7.07%) PV: c6 b3 axb3 axb3 Ra2 Nc1 Bc3 Qd1 Bxe1 Bxe1 Ra8 Qxd6 Ndc5 b4
h5 -> 26396 (V: 52.27%) (N: 9.05%) PV: h5 b3 axb3 axb3 Qg7 b4 Ra2 Qd3 c5 Qb3 Ra8 g3 h4 f4 hxg3 hxg3 Bf6
stm Black winrate 51.94%
23 00:02 29k 13k +0,17 h7-h5 b2-b3 a4xb3 a2xb3 Df6-g7 b3-b4 Ta8-a2 Dd2-d3 c7-c5 Dd3-b3 Ta2-a8 g2-g3 h5-h4 f3-f4 h4xg3 h2xg3 Ae5-f6

Vemos que el valor N es muy bajo, castigando la jugada sin calcular absolutamente nada. Recibe pocas visitas en el análisis (28), frente a la elegida h5 (26396).

Si analizamos la posición C13b, en la que se obliga a capturar en b2, y que en el test pone las cosas más fáciles a los programas, queda claro lo que LC0 opina.

FEN: r1b1r1k1/1ppn1p1p/3pnqp1/8/p1P1P3/5P2/PRNQNBPP/4RBK1 b - - 0 1

Lczero GPU 10.0 id317-2975:
7 00:00 2 11 -2,30 Df6xb2 Ce2-c3
8 00:00 3 22 -1,32 Df6xb2 Ce2-c3 c7-c6
8 00:00 4 33 -1,18 Df6xb2 Ce2-c3 c7-c6 Te1-b1
9 00:00 5 43 -1,10 Df6xb2 Ce2-c3 c7-c6 Te1-b1 Db2xb1
9 00:00 7 65 -1,41 Df6xb2 Ce2-c3 c7-c6 Te1-b1 Db2xb1 Cc3xb1
10 00:00 9 86 -1,58 Df6xb2 Ce2-c3 c7-c6 Te1-b1 Db2xb1 Cc3xb1 Cd7-c5
11 00:00 15 151 -1,92 Df6xb2 Ce2-c3 c7-c6 Te1-b1 Db2xb1 Cc3xb1 Cd7-c5 Cb1-c3
11 00:00 18 183 -2,26 Df6xb2 Ce2-c3 c7-c6 Te1-b1 Db2xb1 Cc3xb1 Cd7-c5 Cb1-c3 Te8-d8
13 00:00 54 564 -3,08 Df6xb2 Ce2-c3 c7-c6 Te1-b1 Db2xb1 Cc3xb1 Cd7-c5 Dd2xd6 Te8-d8 Dd6-e5
14 00:00 130 1k -3,87 Df6xb2 Ce2-c3 c7-c6 Te1-b1 Db2xb1 Cc3xb1 Cd7-c5 Cb1-c3 Te8-d8 Af2-h4 Td8-e8
15 00:00 251 3k -4,15 Df6xb2 Ce2-c3 c7-c6 Te1-b1 Db2xb1 Cc3xb1 Cd7-c5 Cc2-e3 Te8-d8 Af2-h4 g6-g5
16 00:00 414 4k -4,27 Df6xb2 Ce2-c3 c7-c6 Te1-b1 Db2xb1 Cc3xb1 Cd7-c5 Cb1-c3 Te8-d8 Af2-h4 Td8-e8 Ah4-f6
19 00:00 2k 18k -4,35 Cd7-e5 Dd2-c3 Ce6-c5 Af2-d4 c7-c6 Tb2-b1 Df6-e7 Ce2-f4 De7-g5 Cf4-e2
20 00:00 5k 31k -4,31 Cd7-e5 Dd2-c3 c7-c6 Tb2-b1 g6-g5 Ce2-g3 Ce6-g7 Cc2-e3 h7-h5 Cg3-f5 Cg7xf5 e4xf5
21 00:04 8k 2k -4,34 Cd7-e5 Dd2-c3 c7-c6 Tb2-b1 g6-g5 Ce2-g3 Ce6-g7 Cc2-e3 h7-h5 Cg3-f5 Cg7xf5 e4xf5 Ac8xf5 Tb1xb7
21 00:07 9k 1k -4,33 Cd7-e5 Dd2-c3 c7-c6 Tb2-b1 g6-g5 Ce2-g3 Ce6-g7 Cc2-e3 h7-h5 Cg3-f5 Cg7xf5 e4xf5 Ac8xf5 Tb1xb7 Af5-c8
Qc3 -> 1 (V: 2.50%) (N: 0.27%) PV: Qc3 Qxc3
Qf5 -> 1 (V: 2.91%) (N: 0.24%) PV: Qf5 exf5
Qh4 -> 1 (V: 3.13%) (N: 0.45%) PV: Qh4 Bxh4
Qf4 -> 1 (V: 4.01%) (N: 0.19%) PV: Qf4 Nxf4
Qd4 -> 1 (V: 4.58%) (N: 0.23%) PV: Qd4 Nexd4
Qxf3 -> 1 (V: 6.33%) (N: 0.19%) PV: Qxf3 gxf3
Nd4 -> 2 (V: 6.61%) (N: 0.47%) PV: Nd4 Bxd4 Ne5
Kf8 -> 2 (V: 15.31%) (N: 0.18%) PV: Kf8 Rbb1 Ne5
Qg5 -> 3 (V: 12.06%) (N: 0.35%) PV: Qg5 Qxg5 Nxg5
Kh8 -> 3 (V: 14.04%) (N: 0.23%) PV: Kh8 Rbb1 Kg8 Nc3
Kg7 -> 3 (V: 14.44%) (N: 0.23%) PV: Kg7 Rbb1 Kg8 Nc3
Ra5 -> 8 (V: 13.18%) (N: 0.78%) PV: Ra5 Ncd4 b6 Nc3
Ra7 -> 9 (V: 13.70%) (N: 0.76%) PV: Ra7 Bxa7 Qxb2 Nc3 b6 Rb1 Qxb1 Nxb1
Nd8 -> 9 (V: 13.98%) (N: 0.75%) PV: Nd8 Nc3 c6 Rbb1 Ne6 Rbd1
Qe5 -> 10 (V: 14.08%) (N: 0.87%) PV: Qe5 Rbb1 b6 Nc3 Bb7 Nd5
Ng7 -> 10 (V: 15.07%) (N: 0.63%) PV: Ng7 Rbb1 Ne5 Nc3 c6
Nb8 -> 12 (V: 14.20%) (N: 0.99%) PV: Nb8 Rbb1 Nc6 Nc3 Ne5
Qd8 -> 12 (V: 15.03%) (N: 0.81%) PV: Qd8 Rbb1 Ne5 Nc3 g5
Nef8 -> 13 (V: 14.06%) (N: 1.09%) PV: Nef8 Rbb1 Ne5 Nc3 c6
Nb6 -> 14 (V: 14.92%) (N: 0.94%) PV: Nb6 Rxb6 cxb6 Nc3 Nc7 Bxb6 Ne6
Nf4 -> 14 (V: 16.82%) (N: 0.51%) PV: Nf4 Nxf4 Qxb2 Bd4 Qxa2 Nd5 Re5 Nxc7
Re7 -> 17 (V: 14.21%) (N: 1.34%) PV: Re7 Rbb1 Re8 Nc3 Ne5 Nd5 Qd8
Rb8 -> 18 (V: 14.64%) (N: 1.31%) PV: Rb8 Ncd4 Ne5 Nc3 c6 Nxa4
c5 -> 20 (V: 15.36%) (N: 1.20%) PV: c5 Rbb1 Ne5 Nc3 Nf4 Bg3 g5
Qg7 -> 20 (V: 16.26%) (N: 0.89%) PV: Qg7 Rbb1 Ne5 Nc3 g5 Nd4
Nec5 -> 22 (V: 16.31%) (N: 0.98%) PV: Nec5 Rbb1 Ne5 Nc3 c6 f4 Ng4
Ng5 -> 27 (V: 16.45%) (N: 1.09%) PV: Ng5 Bd4 Ne5 Qc3 Ngxf3+ gxf3 Qxf3 Bxe5
Ndf8 -> 30 (V: 14.30%) (N: 2.33%) PV: Ndf8 Rbb1 Nd7 Nc3 Ne5 Nd5 Qd8 f4
Ndc5 -> 33 (V: 14.95%) (N: 2.21%) PV: Ndc5 Rbb1 Nd7 Nc3 Ne5 Nd5 Qd8
Rf8 -> 33 (V: 16.46%) (N: 1.37%) PV: Rf8 Rbb1 Ne5 Nc3 c6 Nd4 a3 Rbd1
d5 -> 34 (V: 17.77%) (N: 0.65%) PV: d5 cxd5 Qxb2 dxe6 Rxe6 Nc3 Rd6 Bd4 c5
Ra6 -> 36 (V: 15.49%) (N: 2.06%) PV: Ra6 Rbb1 Ne5 Nc3 c6 Bg3 h5 f4
Qe7 -> 36 (V: 16.45%) (N: 1.49%) PV: Qe7 Ne3 c6 Rd1 a3 Rbb1 Ndc5
Rd8 -> 36 (V: 17.03%) (N: 1.10%) PV: Rd8 Rbb1 Ne5 Nc3 c6 Red1 g5 Nd4
h6 -> 45 (V: 16.63%) (N: 1.71%) PV: h6 Rbb1 Ne5 Nc3 g5 Nd5 Qd8 Nd4
b5 -> 46 (V: 17.79%) (N: 0.88%) PV: b5 Rxb5 Ba6 Ra5 Bxc4 Rxa8 Rxa8 Ne3
Qh8 -> 54 (V: 17.38%) (N: 1.37%) PV: Qh8 Ncd4 Ne5 Nc3 a3 Rbb1
b6 -> 72 (V: 16.80%) (N: 2.52%) PV: b6 Rbb1 Ne5 Nc3 Bb7 Nd5 Bxd5 cxd5 Nc5 Nd4
a3 -> 72 (V: 16.91%) (N: 2.36%) PV: a3 Rbb1 Ne5 Nc3 c6 Bg3 h5 f4
h5 -> 88 (V: 17.24%) (N: 2.44%) PV: h5 Rbb1 Ne5 Nc3 c6 Nd4 a3 Rbd1 h4
c6 -> 187 (V: 18.47%) (N: 1.36%) PV: c6 Rbb1 Ne5 Ned4 Nc5 Rbd1 g5 Ne3 h6 Ndf5
g5 -> 278 (V: 18.36%) (N: 2.60%) PV: g5 Rbb1 Ne5 Ne3 c6 Nf5 Nxc4 Qb4 b5
Qxb2 -> 1118 (V: 16.36%) (N: 47.13%) PV: Qxb2 Nc3 c6 Rb1 Qxb1 Nxb1 Ndc5 Nc3 Rd8 Bh4 Re8 Ne3 h5 Bf6
Ne5 -> 7963 (V: 18.88%) (N: 8.47%) PV: Ne5 Qc3 c6 Rbb1 g5 Ng3 Nf4 Bd4 h5 Ne3 h4 Ngf5 h3 g3 Nh5
stm Black winrate 18.36%
22 00:09 10k 1k -4,33 Cd7-e5 Dd2-c3 c7-c6 Tb2-b1 g6-g5 Ce2-g3 Ce6-f4 Af2-d4 h7-h5 Cc2-e3 h5-h4 Cg3-f5 h4-h3 g2-g3 Cf4-h5

El test se considera resuelto al evaluar por debajo de 0 o al desechar. LC0 valora negativamente desde el segundo 0, por lo que C13 no es una casualidad. Finalmente la rechaza un poco después. Es brillante, bajo mi punto de vista, esta capacidad.

Komodo, un programa genial con un árbol de búsqueda tradicional, resuelve C13 de esta manera:

FEN: r1b1r1k1/1ppn1p1p/3pnqp1/4b3/p1P1P3/5P2/PPNQNBPP/1R2RBK1 b - - 0 1

Komodo 11.01 64bit:
1 00:00 1 1k +0,72 Ae5xb2
2 00:00 63 63k +0,89 Ae5xb2 Cc2-e3
3 00:00 215 215k +0,61 Ae5xb2 Ce2-d4 a4-a3 Cd4xe6
4 00:00 431 431k +0,61 Ae5xb2 Ce2-d4 a4-a3 Cd4xe6 Te8xe6
5 00:00 748 748k +0,61 Ae5xb2 Ce2-d4 a4-a3 Cd4xe6 Te8xe6
6+ 00:00 1k 1.103k +0,67 Ae5xb2 Cc2-d4 a4-a3
6 00:00 1k 1.336k +0,70 Ae5xb2 Ce2-d4 a4-a3 Cd4xe6 Te8xe6 Af1-d3
7- 00:00 2k 2.094k +0,64 Ae5xb2 Cc2-d4
7- 00:00 3k 3.207k +0,48 Ae5xb2 Cc2-b4
7- 00:00 3k 3.482k +0,53 a4-a3 b2xa3
7- 00:00 6k 6.427k +0,17 a4-a3 b2xa3
7+ 00:00 9k 9.089k +0,51 Cd7-c5 Cc2-b4 c7-c6
7- 00:00 10k 10.029k +0,28 Cd7-c5 Cc2-e3
7- 00:00 11k 11.228k +0,31 c7-c6 Cc2-e3
7 00:00 14k 14.236k +0,16 c7-c6 Tb1-d1 Ae5xb2 Cc2-e3 h7-h5 Dd2xd6 Ab2-e5
8+ 00:00 21k 1.372k +0,22 c7-c6 Tb1-d1 Ae5xb2
8 00:00 22k 1.409k +0,22 c7-c6 Tb1-d1 Ae5xb2 Cc2-e3 h7-h5 Dd2xd6 Ab2-e5 Dd6-d3
9- 00:00 33k 2.085k +0,16 c7-c6 Tb1-d1
9+ 00:00 38k 1.205k +0,28 Ae5xb2 Cc2-e3 a4-a3
9 00:00 40k 1.290k +0,24 Ae5xb2 Cc2-b4 a4-a3 Cb4-d3 Cd7-e5 Cd3xb2 a3xb2 Dd2xb2 Ac8-d7 Ce2-d4
10+ 00:00 44k 1.412k +0,30 Ae5xb2 Cc2-b4 a4-a3
10+ 00:00 46k 1.456k +0,39 Ae5xb2 Cc2-b4 a4-a3
10+ 00:00 48k 1.525k +0,51 Ae5xb2 Cc2-b4 a4-a3
10 00:00 56k 1.186k +0,65 Ae5xb2 Cc2-d4 a4-a3 Cd4xe6 f7xe6 Ce2-d4 Cd7-c5 Tb1-d1 Ta8-a4 Cd4-b5 Df6-g7 Af1-e2
11- 00:00 67k 1.425k +0,59 Ae5xb2 Ce2-d4
11+ 00:00 75k 1.601k +0,66 Ae5xb2 Ce2-d4 Ce6xd4
11- 00:00 82k 1.318k +0,57 Ae5xb2 Cc2-b4
11 00:00 90k 1.437k +0,61 Ae5xb2 Cc2-b4 a4-a3 Cb4-d3 Cd7-e5 Cd3xb2 a3xb2 Ce2-d4 Ta8xa2 Tb1xb2 Ta2xb2 Dd2xb2 Ce6-c5 Db2-d2 Ac8-d7 Af2-g3
12+ 00:00 106k 1.351k +0,67 Ae5xb2 Cc2-b4 a4-a3
12+ 00:00 125k 1.337k +0,76 Ae5xb2 Cc2-b4 a4-a3
12 00:00 131k 1.402k +0,76 Ae5xb2 Cc2-b4 a4-a3 Cb4-d3 Cd7-e5 Cd3xb2 a3xb2 Ce2-d4 Ta8xa2 Tb1xb2 Ta2xb2 Dd2xb2 Ce6-c5 Af2-e3 Ac8-d7 Cd4-b5
13+ 00:00 153k 1.397k +0,82 Ae5xb2 Cc2-b4 a4-a3
13- 00:00 158k 1.447k +0,75 Ae5xb2 Cc2-b4
13- 00:00 185k 1.315k +0,47 Ae5xb2 Cc2-b4
13 00:00 229k 1.332k +0,36 Ae5xb2 Cc2-b4 a4-a3 Cb4-d3 Cd7-e5 Cd3xb2 a3xb2 Ce2-c3 Ce6-f4 Af2-g3 g6-g5 Ag3xf4 g5xf4 Dd2xb2 Df6-g5 Db2-f2
14- 00:00 262k 1.398k +0,30 Ae5xb2 Cc2-b4
14+ 00:00 300k 1.373k +0,37 Ae5xb2 Cc2-b4 a4-a3
14- 00:00 328k 1.398k +0,28 Ae5xb2 Cc2-b4
14- 00:00 363k 1.367k +0,12 Ae5xb2 Cc2-b4
14+ 00:00 476k 1.385k +0,26 Ae5xb2 Cc2-b4 Ab2-e5
14 00:00 553k 1.362k +0,36 Ae5xb2 Cc2-b4 Ab2-e5 Cb4-d3 Df6-g7 Cd3xe5 Cd7xe5 Ce2-d4 b7-b6 Af1-e2 a4-a3 Te1-d1 Dg7-f6 Cd4xe6 Ac8xe6 Td1-c1 Ta8-a4 Af2-d4
15- 00:00 631k 1.346k +0,30 Ae5xb2 Cc2-b4
15+ 00:00 688k 1.376k +0,37 Ae5xb2 Cc2-b4 Ab2-e5
15- 00:00 727k 1.368k +0,28 Ae5xb2 Tb1xb2
15- 00:00 894k 1.362k -0,10 Ae5xb2 Tb1xb2
15+ 00:01 1.481k 1.354k +0,26 Cd7-c5 Cc2-e3 Ce6-g5
15- 00:01 1.503k 1.354k +0,07 Cd7-c5 Cc2-e3
15 00:01 1.621k 1.365k +0,10 Cd7-c5 Cc2-e3 Ce6-g5 Ce3-d5 Df6xf3 Dd2xg5 Df3xf2+ Rg1xf2 Cc5xe4+ Rf2-g1 Ce4xg5 Cd5xc7 Ac8-d7 Cc7xa8 Te8xa8 Tb1-d1 a4-a3 b2-b4 Ta8-a4 Ce2-d4 Ta4xb4 Cd4-b5 Tb4-b2 Cb5xd6
16- 00:01 1.671k 1.371k +0,04 Cd7-c5 Cc2-e3
16 00:01 1.886k 1.371k +0,02 Cd7-c5 Cc2-e3 Ce6-g5 Ce3-d5 Df6xf3 Dd2xg5 Df3xf2+ Rg1xf2 Cc5xe4+ Rf2-g1 Ce4xg5 Cd5xc7 Ac8-d7 Tb1-d1 a4-a3 Cc7xe8 Ta8xe8 b2xa3 h7-h6 Ce2-g3 Ad7-a4 Td1-b1 Aa4-c6
17- 00:01 2.064k 1.390k -0,04 Cd7-c5 Cc2-e3
17+ 00:01 2.431k 1.402k +0,03 Cd7-c5 Cc2-e3 Ce6-g5
17- 00:01 2.477k 1.403k -0,05 Cd7-c5 Cc2-e3
17+ 00:01 2.722k 1.405k +0,05 Cd7-c5 Cc2-e3 Ce6-g5
17- 00:02 2.882k 1.419k -0,08 Cd7-c5 Cc2-e3
17 00:02 3.183k 1.424k +0,03 Cd7-c5 Cc2-e3 Ce6-g5 Ce3-d5 Df6xf3 Dd2xg5 Df3xf2+ Rg1xf2 Cc5xe4+ Rf2-g1 Ce4xg5 Cd5xc7 Ac8-d7 Tb1-d1 a4-a3 b2-b4 Ta8-c8 Cc7xe8 Tc8xe8 c4-c5 Cg5-e4 c5xd6 Ce4xd6 Td1-d3

La jugada, cebo, es "buena" mientras no se demuestre lo contrario, que sucede finalmente en el ply 15, cosa que Komodo hace muy rápido, pero que era una proeza para los programas de 1989, año de creación del test por Ángel Vega. Ésta es la fuerza de LC0 y lo que hace que pueda vencer ya a programas de un nivel muy alto, que tienen que analizar y descubrir las jugadas estratégicas que no ganan material a base de puro cálculo. Veremos más ejemplos de esto en otros mensajes.

Por comparar, Mephisto Gideon Pro (Risc II) necesita llegar al ply 10, para lo que un ARM2 de 1992 necesitaba su tiempo (unas 3000 posiciones por segundo). Para esta prueba lo ha hecho en Arena con un i7 990X. Un monstruo de cpu si lo comparamos con el ARM2, pero que nos sirve para ver hasta dónde debía profundizar un ya excelente programa de aquellos años.

FEN: r1b1r1k1/1ppn1p1p/3pnqp1/4b3/p1P1P3/5P2/PPNQNBPP/1R2RBK1 b - - 0 1

Mephisto Gideon Pro:
1 00:00 1 1k +0,69 Ae5xb2
2 00:00 152 152k +0,64 Ae5xb2 Dd2-h6
3 00:00 3k 2.509k +0,65 Ae5xb2 Cc2-d4 Ce6xd4 Tb1xb2
4 00:00 7k 6.845k +0,45 Ae5xb2 Cc2-b4 a4-a3 Cb4-d5 Df6-g7 Te1-d1
5 00:00 28k 27.784k +0,45 Ae5xb2 Cc2-b4 a4-a3 Cb4-d5 Df6-g7 Te1-d1
6 00:00 138k 137.690k +0,26 Ae5xb2 Tb1xb2 Df6xb2 Ce2-c3 Cd7-e5 Te1-b1 Ce5xf3+ g2xf3
7 00:00 616k 615.584k +0,46 Ae5xb2 Cc2-e3 a4-a3 Ce3-d5 Df6-d8 Te1-d1 Cd7-e5
8 00:00 1.529k 1.528.550k +0,30 Ae5xb2 Tb1xb2 Df6xb2 Ce2-c3 Cd7-e5 Te1-b1 Ce6-g5 Af1-e2 Cg5xf3+ g2xf3
9 00:02 4.512k 2.256k +0,20 Ae5xb2 Tb1xb2 Df6xb2 Ce2-c3 Cd7-e5 Te1-b1 Ce6-g5 Af1-e2 Ce5xf3+ Ae2xf3 Cg5xf3+ g2xf3
10 00:12 28.728k 2.394k -1,30 Ae5xb2 Tb1xb2 Df6xb2 Ce2-c3 a4-a3 Te1-b1 Ta8-a5 Tb1xb2 a3xb2 Cc2-b4
10 00:22 51.699k 2.350k -0,21 Cd7-b6 Af2xb6 c7xb6 Cc2-b4 Df6-h4 g2-g3 Dh4-g5 Tb1-d1 Dg5xd2

El entrenamiento continúa y las redes van claramente aumentando su fuerza. El debate sobre la táctica está encima de la mesa, como es natural. En el equipo de desarrollo de LC0 hay programadores con mucha experiencia en ajedrez computado. La probabilidad se impone a base de acumular partidas, y si LC0 no considera esas jugadas relevantes, es porque su entrenamiento le dice que no lo son. Por lo que he podido ver en las pruebas que llevo hechas, su estrategia es "jugar aquello que me aporta probabilidad de ganar", no "jugar lo más eficiente". Veremos ejemplos de este aspecto también.

La prioridad del equipo de desarrollo es entrenar la red, para lo que el algoritmo actual es el ideal. Imagino que una vez logrado este objetivo, dotarán a LC0 de un sistema de búsqueda que explote las ventajas de la red y que le dé una fuerza táctica adecuada.
usuario fics: alvaroi
alvaroi
Veterano
Veterano
 
Mensajes: 222
Registrado: 13 Ene 2013 22:52

Re: Evaluando Leela Chess Zero

Notapor Javier Ros » 20 May 2018 23:35

Impresionantes las aportaciones de Alvaro!!

Al final he leido y entendido que Google Cloud te da 300$ y parece que no te cobran nada en el período de prueba.
Tras un par de tropezones he conseguido ponerlo en marcha.
Aquí va una traducción "mejorada" de las instrucciones:

Esta guía te permitirá tener clientes Leela Chess Zero corriendo en la nube en 10 minutos o menos. Estos clientes ejecutarán juegos de entrenamiento de autoaprendizaje y ayudarán a hacer que Leela sea más fuerte. Esta guía está dirigida a todos y no supone ninguna comprensión técnica.

Si nunca antes has tenido una cuenta de Google Cloud, entonces esto es algo que puedes hacer de forma gratuita.

Tenga en cuenta que, si participa en la versión de prueba gratuita, NO se le cobrará si se queda sin créditos y se olvida de suspender la prueba

Debes tener una cuenta de Google (correo gmail)
Crea una cuenta gratis en Google Cloud Platform: [url]Google Cloud Platform[/url]
Te pedirá tarjeta de crédito, en mi caso ya la tenía metida por alguna compra anterior en Play Store de Google

Una vez que haya creado una cuenta, navegue a Google Cloud Compute. En la interfaz, esto también se muestra como "Compute Engine".

Crea una VM (Virtual Machine)
Aquí debería tener la opción de crear una instancia de VM. Haga clic en Crear.
En la página Crear una instancia, tiene muchas opciones. Puede ignorar la mayoría de estos por ahora. Estos son los que debe modificar:

1) Tipo de máquina: aquí puede seleccionar su memoria y la cantidad de CPU. Haga clic en el menú desplegable y seleccione 8 vCPU / 7.2 GB de memoria / n1-highcpu-8. Esto cambiará la cantidad de núcleos (CPU) a 8 (el máximo de prueba gratuita) y la memoria asignada a 7.2 GB (el mínimo).

Yo no he conseguido correr la GPU porque tras rellenar todo me dice que en mi región no puedo correr GPU a pesar de haber elegido una región que parece lo permite.

2) Boot Disk Disquete de arranque: seleccione 'Ubuntu 16.04 LTS'
Ahora haga clic en el menú desplegable 'Administración, discos, redes, claves SSH'.

En Startup Script 'Guión de inicio' copie y pegue lo siguiente:

#! /bin/bash
mkdir /lczero
rm -rf /lczero/*
curl -s -L https://github.com/glinscott/leela-ches ... ses/latest | egrep -o '/glinscott/leela-chess/releases/download/v.*/client_linux' | head -n 1 | wget --base=http://github.com/ -i - -O /lczero/client_linux
chmod +x /lczero/client_linux
git clone https://github.com/glinscott/leela-chess.git /lczero/leela-chess
apt-get -qq update
apt-get install -y cmake g++ libboost-all-dev libopenblas-dev opencl-headers ocl-icd-libopencl1 ocl-icd-opencl-dev zlib1g-dev
sed -i '0,/\*\//s//\*\/ #define FEATURE_USE_CPU_ONLY/' /lczero/leela-chess/src/config.h
make -j -C /lczero/leela-chess/src/
cp /lczero/leela-chess/src/lczero /lczero/lczero

Es importante seleccionar Preemptible instance On para que el coste de 159$ por mes baje a 48$ al mes, es decir 6 meses corriendo 8 CPU, lo peor de esto es que hay que volve a lanzar el proceso una vez al día. Si lo dejas en Off no hay que arrancarlo cada día.

Le das a Crear y listo

Una vez que su instancia se ha creado, ahora puede administrarla mediante SSH en la VM. Para hacer esto, haga clic en el botón 'SSH' en la página 'Instancias de VM'. Esto debería abrir una ventana de terminal para que pueda comunicarse con su máquina virtual. Si inicia sesión en la instancia por primera vez, entonces hay una cosa que debe hacer.

Ejecute el comando:
sudo cp -r / lczero / * .
(con el punto y aparte incluido).

Si obtiene el error: lczero: no existe tal archivo o directorio, entonces el script probablemente no ha terminado de ejecutarse. Si esto sucede, espere unos minutos y ejecute los comandos como si estuviera iniciando sesión por primera vez.

Primero, para verificar que todo esté funcionando, ejecute
./client_linux .
(con el punto y aparte incluido).
Se le pedirá que cree un nombre de usuario y contraseña. Este nombre de usuario te permitirá rastrear la cantidad de juegos que has contribuido en la página principal.

Es conveniente darle tiempo hasta que termine el script antes de ejecutar
sudo cp -r / lczero / * .
y
./client_linux .
Avatar de Usuario
Javier Ros
Avanzado
Avanzado
 
Mensajes: 556
Registrado: 20 Ene 2013 15:28
Ubicación: Sevilla

Re: Evaluando Leela Chess Zero

Notapor Javier Ros » 21 May 2018 09:20

Esta mañana me he conectado para ver como iba mi instancia de VM y he visto que se había parado.

Terminando de leer la letra pequeña, resulta que cuando cuando cierras el terminal creado por SSH la instancia se para.
Acabo de probar la orden para mantener la instancia viva y no me funciona. Las instrucciones dicen:

Ahora querrá iniciar el cliente persistentemente, para que pueda salir de la ventana SSH y el cliente jugará juegos de entrenamiento sin ninguna intervención suya. Para hacer esto, primero salga del cliente actual presionando control-C.
Para iniciar el cliente ejecutando persistentemente, ejecute nohup ./client_linux &. Esto ejecutará el cliente en segundo plano para que pueda cerrar la sesión del terminal y el cliente continuará ejecutándose. Cada vez que ejecuta este comando, un nuevo cliente comenzará a ejecutarse y en su máquina virtual. Con la configuración anterior, podrá ejecutar 7 clientes simultáneamente, así que ingrese el comando 6 veces más.
Para ver cuántos clientes tiene en ejecución, puede usar el comando jobs -l. Esto debería mostrarle a los clientes junto con su identificación. Para detener cualquiera de estos clientes, use kill JOB_ID donde JOB_ID es la identificación de 4-5 dígitos encontrada al usar trabajos -l. (Si se ha vuelto a conectar después de cerrar sesión, use ps ax | grep client_linux en su lugar).

Como la orden nohup ./client_linux &. no funciona, lo que he hecho es abrir siete ventanas de terminal y en cada una ejecutas

./client_linux & .

que si funciona. Mientras no cierres las ventanas seguirá funcionando.
Menos da una piedra.
Avatar de Usuario
Javier Ros
Avanzado
Avanzado
 
Mensajes: 556
Registrado: 20 Ene 2013 15:28
Ubicación: Sevilla

Re: Evaluando Leela Chess Zero

Notapor Javier Ros » 21 May 2018 11:13

Finalmente, me he dado cuenta de que sobraba el punto final en la orden

nohup ./client_linux &

esto causaba un mensaje de error, pero realmente funcionaba.

O sea que haciendo Control-C podemos ejecutar

jobs -l

la respuesta será

[1] 3978 Running
[2] 4699 Running

y ver cuantos procesos de cliente estamos ejecutando y si son menos de 7 (habiendo puesto en marcha 8 CPU) podemos añadir con la orden nohup y si son más debemos finalizarlos mediante

kill 3978

ó kill 4699
Avatar de Usuario
Javier Ros
Avanzado
Avanzado
 
Mensajes: 556
Registrado: 20 Ene 2013 15:28
Ubicación: Sevilla

Re: Evaluando Leela Chess Zero

Notapor alvaroi » 21 May 2018 19:52

¡Habrá que probar eso Javier!

En cuanto al tema de tocar el valor del parámetro PUCT, las primeras pruebas difieren de lo publicado en el foro de google de LC0, y funciona mejor el valor normal. Probaré un valor intermedio.
15"/jugada. Versiones 10.0 GPU y Komodo 1 núcleo de i7 990X.
Motor___________________________________________Puntuación_____Ko_________Lc_________Lc______S-B
1: Komodo 2.03 64bit SSE42-dc_____________________16,5/20 ·········· 111=1===== 11=1111111 102,00
2: Lczero GPU 10.0 id317-2975_____________________10,5/20 000=0===== ·········· ==11=1=11= 72,00
3: Lczero GPU 10.0 id317-2975 PUCT 2.8 FPU -0.08___3,0/20 00=0000000 ==00=0=00= ·········· 34,50
usuario fics: alvaroi
alvaroi
Veterano
Veterano
 
Mensajes: 222
Registrado: 13 Ene 2013 22:52

Re: Evaluando Leela Chess Zero

Notapor alvaroi » 26 May 2018 19:57

Otra pequeña prueba con la versión GPU id330 contra programas con 1 núcleo y LC0 con PUCT algo más alto, que se ve claramente que no funciona bien. La mejor opción es la que usa para los entrenamientos, aunque en táctica resulte inferior. Esto va en la línea de la baja incidencia que la táctica "de problema" tiene en el juego de LC0. Algunas partidas pierde por eso, pero menos que las que gana de la otra manera.

Ritmo: 15 minutos / partida. Suite de aperturas idéntica a los torneos anteriores. (o-deville__random.pgn de la web de Arena)
Partidas jugadas con la misma posición de salida con blancas y negras en rondas impares y pares. CPU i7 990X sin tablebases de finales.

Motor______________________________________Puntuación____Ko_______Lc_______De_______Lc_______Pr____S-B
1: Komodo 2.03 64bit SSE42-dc_________________27,0/32 ········ 1=1==1=1 1=11111= ===11111 1111111= 351,50
2: Lczero GPU 10.0 id330-3030_________________17,5/32 0=0==0=0 ········ 0011=1=0 =11====1 =101=111 230,00
3: Deep Shredder 12 UCI_______________________15,5/32 0=00000= 1100=0=1 ········ 1=0=10== 1=11=1=1 197,00
4: Lczero GPU 10.0 id330-3030 PUCT 1.0________12,0/32 ===00000 =00====0 0=1=01== ········ 0=01011= 178,25
5: Prodeo 2.2__________________________________8,0/32 0000000= =010=000 0=00=0=0 1=10100= ········ 119,75


Interesante ver que Prodeo 2.2 ya no puede con LC0 GPU id330. Y que LC0 se habla de tú a tú con Shredder 12 (1 núcleo). No está nada mal. Contra Komodo 2.03 1 núcleo ya se logran algunas tablas, pero la victoria queda lejos. Es una buena referencia para ir estudiando los progresos. Volverá a la parrilla de oponentes cuando LC0 mejore algunos cientos de puntos en su propia escala.

La siguiente prueba, con la misma suite de aperturas, será con más núcleos para todos los programas y comparando la versión GPU con la CPU para ver la incidencia de la capacidad de cálculo en los resultados de LC0.
usuario fics: alvaroi
alvaroi
Veterano
Veterano
 
Mensajes: 222
Registrado: 13 Ene 2013 22:52

Re: Evaluando Leela Chess Zero

Notapor alvaroi » 04 Jun 2018 14:53

Continuando con las pruebas, otra tanda de partidas, siempre con la misma suite de aperturas.
CPU i7 990X usando 4 núcleos. Prodeo no es multiprocesador. Ritmo 15'/partida. GPU v10.0 sobre GTX980.

Motor_________________________________Puntuación____Se_______De_______Lc_______Pr_______Lc_____S-B
1: Senpai 1.0 JV x64_____________________23,5/32 ········ 0=11==1= ==11111= ==1101=1 11=11==1 324,50
2: Deep Shredder 12 UCI__________________21,5/32 1=00==0= ········ =====1=0 11=11111 1=11111= 269,75
3: Lczero GPU 10.0 id330-3030____________17,0/32 ==00000= =====0=1 ········ 111===01 =11==1=1 224,00
4: Prodeo 2.2____________________________10,5/32 ==0010=0 00=00000 000===10 ········ 11010101 149,50
5: Lczero CPU 10.0 id330-3030_____________7,5/32 00=00==0 0=00000= =00==0=0 00101010 ········ 122,25


Está claro que la diferencia de potencia de cálculo entre GPU y CPU resulta determinante. No esperaba tanto impacto porque en las pruebas tácticas no ayuda, pero viendo los resultados, es evidente su importancia en las partidas.

También parece claro que Deep Shredder 12 con 4 núcleos es un buen rival para evaluar los progresos de Leela. Senpai es también un buen rival para un futuro cercano. El resto de programas punteros está aún muy lejos en fuerza y no tiene demasiado sentido usarlos por ahora.
usuario fics: alvaroi
alvaroi
Veterano
Veterano
 
Mensajes: 222
Registrado: 13 Ene 2013 22:52

Re: Evaluando Leela Chess Zero

Notapor alvaroi » 04 Jun 2018 15:03

Una vez ya centrada la selección de rivales para ir controlando los progresos de Leela, veamos los resultados de la red 364.
Misma suite de aperturas. Ritmo 15'/partida. i7 990X usando 4 núcleos. GPU 10.0 GTX980.

Motor.........................Puntuación................De...........................Lc
1: Deep Shredder 12 UCI..........17,5/30 ······························ 11100==01100==1110====0=11=11=
2: Lczero GPU 10.0 id364-3042....12,5/30 00011==10011==0001====1=00=00= ······························
usuario fics: alvaroi
alvaroi
Veterano
Veterano
 
Mensajes: 222
Registrado: 13 Ene 2013 22:52

AnteriorSiguiente

Volver a PROGRAMAS

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 2 invitados

x