Hace unos meses Deepmind nos alegró la vida con AlphaGo Zero, una versión de AlphaGo entrenada desde cero, y con mucho menor uso de recursos. En aquel momento ya comenté que un siguiente paso sería reducir las necesidades del sistema hasta poder ejecutarlo en una máquina casera, concretamente estas eran mis palabras:
Por otro lado, hay que recordar que entrenar una red neuronal requiere muchísima más potencia computacional que usarla. Esto es, jugar miles de partidas para afinar cada peso individual de cada conexión neuronal es muy costoso; pero con esos pesos optimizados y fijos, jugar una partida sencilla ya no requiere gran coste.
La sorpresa nos la ha dado Facebook, presentando OpenGo, un programa que precisamente se aprovecha de lo que comentaba. OpenGo es un sistema que puede funcionar en un PC casero, siempre que tenga una GPU decente. Utilizando unos pesos (de la red neuronal) previamente calculados ya por Facebook, tiene una fuerza por encima de profesionales.
Para testear el sistema se enfrentó contra varios jugadores profesionales, en un torneo secreto con premio monetario. Kim Jiseok 9p, Shin Jinseo 9p, Park Yeonghun 9p y Choi Cheolhan 9p; todos del top 10 coreano. El resultado, 14 victorias para OpenGo, 0 para los profesionales.
OpenGo se basa en la librería PyTorch, de Machine Learning, que últimamente viene apoyada por Facebook. Comentan que suele ser un poco más rápida que su alternativa, Tensorflow (apoyada por Google, y base de AlphaGo). Sobre PyTorch se ha creado una librería de juegos, llamada ELF, y como ejemplo de juego se ofrece OpenGo. Por otro lado, se han optimizado los pesos de la red neuronal en las granjas de servidores de Facebook, con 2000 GPUs durante 2 semanas. Así que uno puede ejecutar la red neuronal ya experta en Go sin perder años entrenándola.
Personalmente no he podido probar OpenGo, básicamente porque no tengo un PC con GPU. Pero cualquiera de vosotros que tengáis una tarjeta gráfica potente: ahora tenéis la opción de jugar a Go (además de jugar a juegos 3D o minar bitcoins). Solo hace falta tener Linux, instalar PyTorch y unas cuantas dependencias, y ¡a disfrutar!
En resumen, Facebook adelanta a Google, con un programa ejecutable en una máquina de menos de 1000€, y además publicando el código fuente (cosa que Google/Deepmind parece receloso de hacer).
No voy a negar, que estaría genial que Google/DeepMind liberaran el código de AlphaGo o AlphaGo Zero.
Tampoco voy a negar que me guste que Facebook haya liberado openGo.
Pero no sé si realmente ahora importa mucho o no. Realmente Google y DeepMind pusieron la semilla. Consiguieron romper la barrera insuperable de vencer a jugadores profesionales, y explicaron en un par de artículos publicados, el cómo lo hicieron.
Gracias a ellos han surgido alternativas que intentan reproducir lo que hizo AlphaGo.
OpenGo de Facebook es una de ellas. También está LeelaZero. Y también estaba BetaGo. Seguramente haya más, y con el tiempo aparecerán otras más y mejores.
Hasta que google no sacó AlphaGo, Facebook, si que estaba interesado en el Go, pero seguía una aproximación mucho más clasica, basada en el algoritmo de MonteCarlo. Consiguiendo resultados nada despreciables a nivel de dan amater, pero muy lejos de vencer a un profesional.
¿Sería interesante ver partidas de AlphaGo vs OpenGo? Segurísimo que sí.
Pero estoy de acuerdo, que no tardaremos en tener aplicaciones de escritorio/ o incluso móvil (Ya hay un crazystone para móvil que juega a nivel de 6-7Dan amater, o eso dice). Con la que enfrentarnos para que nos apalicen una vez tras otra sin escrúpulos. Incluso, seguramente nos ayuden a progresar y mejorar nuestro juego.