Un grupo de investigadores de la Universidad Carnegie Mellon han creado un modelo de inteligencia artificial capaz de generar código de forma autónoma. Dicha tecnología ha recibido el nombre de PolyCoder y comprende 12 lenguajes de programación diferentes, pero donde más destaca, según ellos, es en el uso de C.
A simple vista, esta noticia no supone ninguna novedad. El año pasado, surgieron otras iniciativas similares como la integración de GPT-3 en Power Fx para convertir el lenguaje natural en código o el asistente GitHub Copilot de OpenAI, basado en Codex, mejorando con creces los resultados del anterior. Su principal objetivo no es el de sustituir a los programadores, sino el de asistirles en el proceso de codificación para permitirles centrarse en otras tareas menos rutinarias.
Un proyecto más humilde, pero más accesible
Sin embargo, si algo diferencia a este proyecto de los anteriores es que tiene el objetivo de democratizar la creación y la investigación de modelos de inteligencia artificial de este tipo, ya que es de código abierto. Para sus responsables, esta es la principal ventaja de la herramienta, disponible para que cualquiera pueda ver los entresijos de su funcionamiento y acceder a los datos con los que ha sido entrenada.
Y es que, si bien Copilot, aún con sus fallas de seguridad, es aparentemente un proyecto mucho más ambicioso que PolyCoder, sus datos no son públicos, por lo que no pueden ser analizados por la comunidad de programadores para aprender a desarrollar tecnología parecida por su cuenta. La herramienta de Frank Xu, Uri Alon, Graham Neubig y Vincent Hellendoorn llega para darles esa posibilidad.
«A pesar del gran éxito de los modelos de código de lenguaje grande, los modelos más fuertes no están disponibles públicamente. Esto impide la aplicación de estos modelos fuera de las empresas con buenos recursos y limita la investigación en este campo para las organizaciones con pocos recursos,» comentan los investigadores.
Entrenado en 12 lenguajes, pero especializado en C
PolyCoder se basa en el modelo GPT-2, creado por OpenAI en 2019, entrenado con una base de datos de 631 GB y 38,9 millones de archivos código escrito en 12 lenguajes de programación. Entre ellos, encontramos a idiomas como Python, Java, JavaScript, PHP, Ruby, Rust, Scala, TypeScript, Go, C++ y C#, pero, según los investigadores, a día de hoy C es en el que mejor se desenvuelve. Tanto es así que afirman que es capaz de superar a todos los modelos anteriores, incluido Codex, en el uso de este lenguaje.
Además de esto, Stack Overflow, página de referencia para desarrolladores, se ha convertido en otra de sus fuentes de aprendizaje, aprovechando el texto sobre programación escrito en lenguaje natural que contiene para adiestrarla mejor.
«Un enfoque prometedor para desarrollar modelos sólidos de generación de código parece pasar por entrenarlos en diversas fuentes de conocimiento de programación, no sólo código de una amplia mezcla de lenguajes de programación, sino también texto de toda la web relacionado con programación,» explica el grupo.
Desgraciadamente, señalan que el modelo que han utilizado “ya ha forzado el límite de lo que se puede entrenar en un solo servidor”, por lo que para seguir perfeccionándolo necesitarían contar con un clúster de servidores, lo que se traduciría en mayores gastos.
Aun así, siempre es de agradecer que haya profesionales que apuesten por este tipo de iniciativas. A fin de cuentas, no son parte de una gran empresa, sino investigadores con recursos limitados que intentan aportar su granito de arena a la comunidad. Con su modelo de código abierto, esperan convencer a otros para seguir sus pasos. Su misión es que “la comunidad pueda entrenar a estos modelos por su cuenta”.