AlphaCode, el sistema de Inteligencia Artificial (IA) para desarrollar código informático desarrollado por DeepMind, puede alcanzar un rendimiento medio de nivel humano en concursos de programación, según un estudio publicado en Science. Esto podría desplazar el trabajo de los programadores a la formulación de problemas para que los resuelva la IA.
Gonzalo Génova - AlphaCode
Gonzalo Génova
Profesor titular de Lenguajes y Sistemas Informáticos
La automatización de la producción de software comenzó a la vez que la propia programación de ordenadores. Un paso muy significativo fue la invención por Grace Hopper de los lenguajes de alto nivel y los compiladores. Un compilador traduce un programa escrito en lenguaje de alto nivel, más comprensible para una persona, en el código directamente ejecutable en el ordenador (lenguaje máquina). No obstante, la compilación es solo un proceso de traducción: al programador no se le ahorra ni la comprensión del problema ni la formulación de su solución en un lenguaje de programación; como mucho, se le ahorran algunos detalles concretos de la máquina en la que correrá el programa (por ejemplo, la representación de números y cadenas de caracteres en la memoria del ordenador), permitiendo así una formulación más abstracta del problema y su solución. Los avances han continuado hacia el desarrollo de lenguajes de programación cada vez más abstractos y entornos de desarrollo que facilitan la tarea del programador de múltiples maneras, ayudando a evitar los errores más comunes en la programación.
En otra línea paralela, el desarrollo de la traducción automática entre lenguajes no formales, como el inglés y el español, ha experimentado un desarrollo prodigioso en los últimos años. Los sistemas conversacionales van mucho más allá, puesto que responder a una pregunta, obviamente, exige mucho más que ser capaz de traducirla de un idioma a otro. No obstante, gracias a la ingente cantidad de información en línea de la que disponemos hoy día y a muy ingeniosas técnicas de inteligencia artificial, es posible automatizar el proceso de responder preguntas formuladas en lenguaje natural, y así simular conversaciones hasta un punto que puede resultar muy difícil distinguir si estamos hablando con una persona o con una máquina.
El presente trabajo, realizado por un equipo internacional de 26 investigadores de DeepMind, capitaneados por el español Oriol Vinyals, demuestra lo mucho que se ha avanzado recientemente en estas dos direcciones. El sistema desarrollado, AlphaCode, es capaz de generar un programa de ordenador en un lenguaje de alto nivel a partir de la formulación de un problema en lenguaje natural. Es decir, la misma tarea que habitualmente realiza un programador humano.
Ciertamente, AlphaCode no programa de la misma forma que una persona (un proceso que en realidad tampoco comprendemos muy bien cómo ocurre), pero eso no hace que los resultados sean menos impresionantes. Podemos tal vez describir el proceso humano de resolución de problemas en tres pasos principales: comprender el problema, razonar la solución, y escribir y probar el programa resultante. Pero este proceso no es fácilmente automatizable, de modo que el equipo de Vinyals ha trabajado en una línea muy diferente: el sistema genera millones de programas diferentes y se queda solo con los 10 mejores. Pero hay que tener en cuenta que la fuerza bruta no es suficiente: solo una minúscula fracción de todas las posibles secuencias de caracteres son programas correctos (¡un simple carácter cambiado puede dar al traste con todo!), y de estos también solo una fracción pequeñísima aportan una solución válida.
Es cierto que el punto de partida de AlphaCode está en miles de millones de líneas de código escritas por programadores humanos, a partir de los cuales se crea un modelo lingüístico, de modo vagamente similar a como funcionan los sistemas automáticos de traducción en lenguaje natural. Así resulta un modelo lingüístico enorme, que consta en una de sus versiones hasta de 41.000 millones de parámetros. Pero AlphaCode también incluye muchas otras técnicas, como el filtrado, agrupamiento y selección de soluciones similares (incluso similares solo parcialmente). Y, por supuesto, la comprobación de que el resultado satisface el enunciado del problema propuesto; se descartan incluso las soluciones correctas pero que son computacionalmente menos eficientes.
El sistema ha sido evaluado en la plataforma de competición de programadores humanos Codeforces, en una serie de 10 competiciones con más de 5.000 participantes cada una. La puntuación promedio alcanzada lo sitúa en un nivel medio de los concursantes (54,3 % de los programadores humanos quedan por encima), que a su vez son un grupo relativamente selecto de programadores. Según los propios autores del trabajo, esto equivale aproximadamente al nivel de un programador principiante con un año de experiencia. Un resultado ciertamente impresionante.
Pero eso no es todo: los investigadores aseguran que AlphaCode no se comporta como un loro que repite lo que ha escuchado, sino más bien como un cuervo capaz de solucionar problemas con inteligencia. La prueba es que el código generado no se parece al código en el que se ha inspirado (esos miles de millones de líneas) más de lo que se parece el código de cualquier programador humano. Es decir, las soluciones encontradas no estaban, tal cual, en los datos de entrenamiento del sistema: AlphaCode puede resolver problemas que nunca antes ha visto, incluso si son problemas que en un humano requerirían una buena cantidad de razonamiento intelectual.
Los autores señalan, por fin, que las aplicaciones directas de AlphaCode fuera del contexto de las competiciones serían más bien limitadas, pero indirectamente sí puede contribuir a mejorar la productividad de los programadores humanos, y también puede colaborar en su educación. No olvidan tampoco señalar los riesgos y beneficios del sistema. Por citar algunos beneficios, el código generado es más fácilmente interpretable y modificable que una red de neuronas artificiales, y también sería más fácil generalizarlo y evitar determinados sesgos. Por el contrario, el sistema no es fácilmente reproducible en otros centros de investigación, ya que la generación del modelo lingüístico requiere una enorme capacidad de computación y un nada desdeñable consumo de energía (175 MWh, equivalente al consumo anual de 16 hogares norteamericanos medios). Finalmente, los autores son muy pragmáticos en su interpretación de los resultados, sin adentrarse en interpretaciones filosóficas equívocas sobre qué es ser inteligente, o en qué medida AlphaCode es verdaderamente inteligente.
- Artículo de investigación
- Revisado por pares
Yujia Li et al.
- Artículo de investigación
- Revisado por pares