Unas vacaciones muy ñoñas con Leela (lc0) la hija Open Source de Alpha Zero

by gab on febrero 27, 2019

Hay mucho palabrerío alrededor del tema inteligencia artificial, pero uno de los momentos que recuerdo más interesantes en el 2018 fue cuando me enteré que AlphaZero, un proyecto de DeepMind (hija adoptiva de Google) estaba jugando ajedrez.

Aquí está una noticia comentada.
Aquí está el paper original.
Si quieren, pueden ver alguno de las partidas analizadas aquí, es muy entretenido.

La magia de Alpha Zero está, justamente, en el Zero. Zero es por cero “influencia” de conocimiento o “bias” humano en la creación del motor de ajedrez. Alpha Zero aprendió sola a jugar ajedrez (también Go, que fue lo que en realidad la volvió famosa). Jugando sola, a partir de las reglas y una concienzuda y constante configuración por parte de los programadores, armó en algunas pocas horas (utilizando una importante cantidad de servidores especializados de Google) un conocimiento sobre ajedrez monstruoso, sin necesidad de intervención humana. Cero.

El resultado más interesante del proyecto, es que juega divertido, y gana. Muchos adjetivos humanos se utilizaron para describir su estilo de juego (creativo, agresivo, poco convencional, hasta “alien”). Cuando se enfrentó a uno de los grandes programas de ajedrez, Stockfish (que es un proyecto genial en sí mismo), le venció por un margen muy abultado

Un año después, publicaron un artículo revisado, expandido, con mucha información complementaria y algunas aclaraciones respondiendo varias de las críticas que recibieron desde la publicación del paper original.

También lo volvió a vencer en una revancha, con mejores condiciones que deberían haber favorecido un poco más a Stockfish, que las originales del primer enfrentamiento

Para mi, esa historia fue muy interesante de descubrir, porque entendí que este tipo de motores de ajedrez usan un acercamiento más parecido a cómo los humanos toman las decisiones, una suerte de “intuición probabilística” fruto de la creación de un modelo que se ajusta muy bien a una realidad particular (ajedrez), que se opone diametralmente a la fuerza bruta analítica de los motores de ajedrez tradicionales. Hay un artículo interesante para profundizar en este tema si quieren profundizar en este aspecto: AlphaZero: How Intuition Demolished Logic.

No sé si lo notaron, pero escribí “este tipo de motores de ajedrez” y tal vez se pregunten por qué usé esa frase…. Porque Alpha Zero marcó el camino, y un año después… descubrí a Leela Chess Zero, o, como la han llamado: “Una alpha zero para el pc”.

Bienvenidos a mis vacaciones ñoñas.


No pude resistirme y tuve que tenerla! (No era fácil, pero tampoco fue tan difícil): Leela Chess Zero está disponible en Github

Tiene tres componentes:

– Cliente: Para ser parte de la comunidad y ayudar a entrenar a Leela poniendo tus GPUs a disposición.
– Motor: Lo que hace que Leela funcione dentro de programas de ajedrez que permiten cargar motores para analizar partidas, por ej.
– Redes de evaluación: que es la red que el motor utiliza para evaluar posiciones para saber por dónde agarrar durante una partida

El cliente está disponible para Windows, Mac y Linux, las Redes de evaluación se usan cross-platform, sin embargo, el motor hay que compilarlo.

¡Que no los asuste, es relativamente fácil! Aquí les dejo el instructivo de cómo compilar Leela Chess Zero. Es un poco peor en Linux que en Windows, y peor en Windows que Mac… Confieso que compilé en Mac… Posiblemente lo haga para Windows también, después les cuento

La verdad que no me puse mucho a ver las partidas, porque al nivel que juegan soy incapaz de interpretar nada útil de las partidas. Sin embargo, sí me llamó la atención que las partidas de Leela en mi computadora tienden a ser muy largas, le gusta mucho mover el rey, avanzar mucho los peones y poner los caballos en lugares extraños.
Aquí hay un artículo, pero es de cuando recién empezaba, a los dos meses… un año después, la Leela de hoy no es nada que ver con la de aquel entonces.

Qué se viene de mejoras

En esto están trabajando los Devs, les dejo un super artículo hablando de lo nuevo que descubrieron en el paper re-editado de Alpha Zero.
Y otro acerca del reciente campeonato entre Stockfish y Leela (de cuando iba ganando Leela, pero en realidad perdió al final). Estuve siguiendo el campeonato y estuvo muy parejo, aunque Stockfish ganó por 1 punto (10 vs 9 en 100 partidos). Hay mucha Leela para educar aún, pero es en este momento, y luego de tan solo un año de desarrollo y entrenamiento, es ya uno de los grandes motores de ajedrez del mundo. Stockfish no había conocido tantas derrotas seguidas en mucho tiempo

Es doblememente impresionante si nos ponemos a pensar que está basado en un desarrollo e investigaciones que hace más de un año costó millones de dólares y fue totalmente una innovación disruptiva… y un año después una tecnología similarmente poderosa está disponible para todo el mundo, de código abierto, gratuita y habiendo sido creada con apoyo de una inmensa comunidad…

Regalos que Internet nos da.

[Si quieren leer algo más, pueden seguir profundizando con una entrevista a uno de los programadores:

O, en otro orden de cosas, cómo Deep Mind ahora nos gana también en StarCraft II]

Personalmente quedo con la sensación de que quedé luego de un comentario que me hizo mi padre tras ver la película “Juegos de Guerra”

<SPOILER ALERT> 😛
Para los que no la recuerden, una supercomputadora toma el control de el arsenal nuclear de EEUU y solo la amistad con un adolescente, la llevan a analizar el juego del ta-te-ti en un dramático final de tercer acto. Luego de jugar millones de partidas de este limitado juego, la computadora descubría que no se podía ganar al ta-te-ti, y por eso se daba cuenta que la guerra no se podía ganar. Para las rotativas, desactiva los misiles. ¡Final feliz!
</SPOILER ALERT>

No recuerdo cómo fue que llegó a hacerme el comentario, pero sí recuerdo claramente que mi padre me dijo, luego de la película, que en el ajedrez iba a pasar algo parecido. Es imposible de ganar, pero que simplemente no había suficiente capacidad de cálculo para descubrirlo aún.

Parecería que tenía razón… todo parece indicar, que el ajedrez, perfectamente jugado, tiende a las tablas.
Que increíble, ¿no?

Después voy a escribir un artículo de cómo colaborar con el proyecto Leela, porque hay varias formas sencillas de hacerlo (lo sé porque lo estoy haciendo!).


Muy ñoñas vacaciones, indeed.