Un nuevo sistema creado por DeepMind supera una competición de código informático con resultados similares a los de un participante medio. Podría revolucionar un sector esencial en nuestra economía.
La inteligencia artificial podría estar a punto de romper una de las barreras que aún separaban a las personas de las máquinas, como es la capacidad de programar código y así crear, precisamente, otras máquinas. Se trata, además, de una de las actividades más importantes en nuestra sociedad y nuestra economía, para la cual siempre se ha considerado que hace falta tener cierta inventiva, y no sólo mucho conocimiento. El nuevo sistema ha sido desarrollado por DeepMind, empresa adscrita a Google, y ha demostrado ser capaz de competir en certámenes de programación al mismo nivel que los humanos.
El programa, llamado AlphaCode, ha logrado un rendimiento que le sitúa en la media de los expertos humanos que participan en estas competiciones. No puede vencer al campeón del mundo, como en el ajedrez u otros juegos, pero sí muestra un nivel sorprendente. Además, programar código no es un juego con un conjunto de reglas preestablecidas, sino que a menudo requiere tirar de inventiva y romper algunas normas para poder innovar.
La nueva inteligencia artificial ha respondido a los retos que se plantean en una competición de código, en la cual los participantes se enfrentan a una descripción técnica de un problema y deben desarrollar un programa que lo resuelva. Los resultados de AlphaCode se corresponden a los del mejor 54,3% de los humanos. No es aún genial, pero sí muy competente. La nueva tecnología se ha presentado en Science y uno de sus principales autores es el español Oriol Vinyals, director de investigación en DeepMind.
Los creadores del sistema destacan que «puede generar soluciones innovadoras a problemas no vistos», y aseguran que «no hay evidencia de que AlphaCode copiara partes importantes de soluciones previas o explotara las debilidades en la estructura del problema». Es decir, sus respuestas fueron legítimas y adecuadas a lo que se pedía. «Nuestro modelo era realmente capaz de resolver problemas que no había visto nunca antes, incluso cuando estos problemas requerían un considerable razonamiento».
AlphaCode aprende por sí mismo a resolver los problemas que encuentra, sin estar programado para escribir código. La máquina responde a cada reto generando millones de posibles soluciones y después filtra y valida cada una de ellas hasta quedarse con sólo 10 respuestas. No tiene conocimiento incorporado sobre cómo resolver las tareas, sino que revisa y agrupa un número inmenso de datos hasta dar con un código capaz de resolver el problema.
En otras palabras, AlphaCode no comprende -en el sentido humano- qué le han pedido, pero analiza todos los datos y aprende rápido a contestar con una precisión asombrosa. Hasta la fecha, sólo las personas habían sido capaces de escribir código en respuesta a un problema novedoso, de manera que estamos ante un nuevo hito para la inteligencia artificial. El avance, según confían sus autores, podría cambiar la forma en que se programa, ya que ahora las personas contaremos con la ayuda de la inteligencia artificial. «Esta línea de trabajo presenta emocionantes aplicaciones que pueden mejorar la productividad de los programadores y hacer la programación accesible a una nueva generación», concluyen.
Junto al informe que presenta el avance, Science publica un análisis sobre los límites y posibilidades de esta clase de tecnologías. «La principal desventaja de estos enfoques impulsados por datos es que, como no tienen conocimiento incorporado de los requerimientos del código, son dados a cometer errores ‘triviales’: generan código que en muchos casos no se ejecuta o no resuelve la tarea en cuestión», comenta a EL MUNDO Zico Kolter, catedrático de Computación en la Universidad Carnegie Mellon y autor del análisis.
«AlphaCode sortea este problema al generar muchas soluciones candidatas para cada problema y después eliminar las que no se ejecutan o no superan un simple test», añade. Sin embargo, esta solución no es la panacea: «Podría ser aún peor: en muchos casos, generará código que ‘parece correcto’, e incluso supere los test sencillos, pero que en realidad no resuelva adecuadamente el problema».
En definitiva, que la máquina no sepa lo que está haciendo tiene un coste, pero también importantes ventajas. La principal es «su simplicidad y su rendimiento», asegura Kolter. «No requiere conocimiento diseñado complejo para apoyar al sistema, y su rendimiento aumenta a medida que obtiene más datos o computación». En áreas bien definidas, como es la programación de código, «esta podría ser, definitivamente, la mejor opción», apunta este experto. «Además, no hay realmente una alternativa convincente en este punto: la generación de código ‘no puramente impulsada por datos’ no consigue en la actualidad resultados tan potentes en este dominio».