La compañía de Google enfrentó su herramienta a una serie de desafíos complejos y obtuvo resultados similares a los de los ‘hackers’ e ingenieros que participaron en la competición
No es el primer
sistema capaz de programar: Copilot, de Microsoft, ya demostró el año pasado
que podía programar de forma solvente. Sin embargo, este sistema fue acusado de
aprovechar partes de código disponibles en GitHub, el repositorio de código
abierto con el que fue entrenado.
La forma de operar de
AlphaCode, según aseguran sus responsables, es más creativa. También copia
código de otros, pero a niveles similares a los que lo hacen cualquier
programador. El sistema se apoya en las llamadas redes neuronales profundas, el
modelo más aplicado en el avance del aprendizaje automático o deep learning.
Esta rama de la inteligencia artificial pone a trabajar al mismo tiempo a
varias capas de sistemas de IA y los conecta entre sí, tratando de imitar en la
medida de lo posible el funcionamiento de las neuronas del cerebro humano. En
este caso, AlphaCode se entrenó con montones de ejemplos de código sacados
también de GitHub y de la competición de hackers Codeforces. Cuando se le
expone un problema complejo, el sistema de DeepMind elabora una cantidad masiva
de soluciones distintas para luego seleccionar las diez mejores.
Los desarrolladores
de AlphaCode decidieron probar su sistema en una competición (la mencionada
Codeforces) con programadores e ingenieros, en la que se presenta una serie de
problemas y luego se puntúa las respuestas aportadas por los participantes. Los
resultados fueron muy buenos: se probó en diez rondas y se dieron cuenta de que
el programa sacaba una puntuación que se situaba en la media de la obtenida por
los humanos. Quedó entre el 54% de los que mejor lo hicieron de los 5.000
participantes. “Es la primera vez que un sistema computacional consigue un
nivel tan competitivo en una competición para programadores de élite”, subrayan
desde DeepMind.
“Los problemas a los
que se enfrentó no los había visto antes el modelo durante su entrenamiento.
Solucionar de forma creativa estos desafíos requiere una combinación de
pensamiento crítico, lógica, algoritmos, programación y entendimiento del
lenguaje natural”, añaden los desarrolladores de la herramienta.
AlphaCode está lejos de
poder ser usado en otros campos que no sean la programación competitiva: su
terreno es el de la investigación. “Sin embargo, el uso de sistemas de
generación de código en aplicaciones presenta muchas oportunidades para
programadores”, asegura el español Oriol Vinyals, investigador principal de
DeepMind, director de investigación en aprendizaje profundo de la compañía
londinense y responsable del programa AlphaCode . “Muchas de las herramientas
que se han desarrollado a través de investigación, como los compiladores, han
ayudado a los programadores a pensar a un nivel más alto de abstracción para
poder así centrar sus esfuerzos en la función del programa, en vez del código
en sí”, añade el experto.
La máquina vence al
jugador
DeepMind consiguió
fama mundial en 2016 gracias a AlphaGo, un sistema desarrollado por la compañía
que fue capaz de ganar a Lee Sedol, campeón surcoreano de Go y uno de los
mejores jugadores del mundo. Go es un juego de origen chino en el que la
intuición desempeña un papel clave considerado mucho más complejo que el
ajedrez. AlphaGo no solo derrotó 4 a 1 al gran campeón, sino que para hacerlo
inventó jugadas nunca antes vistas por los expertos.
Un año después, en
2017, hizo otra demostración de músculo con AlphaZero, un programa que derrotó
al mejor software de ajedrez que había en ese momento. Para que lo lograra
bastó que sus creadores le enseñaran las reglas del juego y le dejaran
practicar consigo mismo durante tan solo cuatro horas.
En 2019, otra de sus
creaciones, AlphaStar, derrotó 10 a 1 a los mejores jugadores del mundo de
StarCraft II, un popular videojuego de estrategia en tiempo real. El desafío
era especialmente complejo porque en este juego, en el que dos o más jugadores
tienen que desarrollar una pequeña economía de guerra y un ejército con el que
aplastar a los demás, cada uno solo ve la parte del mapa en la que tiene a sus
unidades. Es decir, la máquina no sabe qué está haciendo el contrincante y por
tanto debe tomar decisiones basadas en la intuición.
Fuente: El Pais.com