Aproximadamente un mes, la compañía de inteligencia artificial DeepMind (filial de Google/Alphabet) anunció al mundo la creación de AlphaCode, una IA capaz de rendir como un desarrollador promedio al enfrentarse a problemas de programación.
Esto fue, por supuesto, bien recibido en la industria tecnológica, pues habría toda una serie de posibilidades a la hora de ejercer como asistente de usuarios (no necesariamente programadores) humanos. Sin embargo, el problema de modelos de IA como AlphaCode es, como explica un grupo de investigadores de la Univ. Carnegie Mellon, que
De hecho, un estudio realizado en 2020 por la startup AI21 Labs establecía el coste de entrenar un modelo generador de código con 1.500 millones de parámetros (es decir, aproximadamente la mitad de complejo de PolyCoder) en los 80.000-1,6 millones de dólares. Por su parte, soluciones como GitHub Copilot cuenta con 12.000 millones de parámetros.
-Por otro lado, PolyCoder fue creado para democratizar la investigación en IAs programadoras
Y por esto, estos investigadores (Frank Xu, Uri Alon, Graham Neubig y Vincent Hellendoorn) venían trabajando desde hace un tiempo en una IA programadora de código abierto, accesible para todo tipo de usuarios y organizaciones, que fuera capaz de democratizar la creación e investigación de IAs programadoras, un campo hasta ahora dominado por DeepMind y OpenAI.
Y ahí es donde entra PolyCoder, su nuevo modelo generador de código automatizado que se basa en el popular GPT-2 y que ha sido entrenado con 631 GB de datos y 38,9 millones de archivos de código (procedentes de repositorios de GitHub) para ‘aprender’ a codificar en 12 lenguajes de programación.
Es capaz de generar código en C, C#, C++, Go, Java, JavaScript, PHP, Python, Ruby, Rust, Scala y TypeScript, aunque sus propios creadores destacan que destaca particularmente escribiendo código en C. De hecho, es capaz de codificar en C con mayor precisión que el resto de modelos conocidos, incluido Codex (el modelo IA que está detrás de la función CoPilot de GitHub).
Una particularidad de PolyCoder es que no sólo fue entrenado con archivos de código, sino también con información en lenguaje natural extraída de Stack Overflow, el sitio web de preguntas y respuestas para desarrolladores:
Por ejemplo, los conjuntos de datos usados para entrenar Codex no se han puesto a disposición del público y la salida de su API sigue un modelo de ‘caja negra’, impidiendo así a los investigadores ajustar el modelo de IA o estudiar ciertos aspectos del mismo, como su interpretabilidad.
Otro de los objetivos de estos investigadores a la hora de crear PolyCoder como código abierto es evitar que esta clase de modelos puedan ser empujados a generar programas con bugs o con código malicioso (como ya ocurre con CoPilot), sobre todo si se traducen en vulnerabilidades difíciles de detectar.