Hace 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 abrí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
"los modelos de programación [mediante IA] más potentes es que no están disponibles públicamente: esto impide la aplicación de dichos modelos fuera de las empresas más grandes, y limita la investigación en este campo para las organizaciones con menos recursos".
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.
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:
"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".
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.
"Hasta cierto punto, esperamos que nuestros esfuerzos de código abierto puedan convencer a otros para que sigan nuestro ejemplo. La clave reside en que la comunidad debería poder entrenar a estos modelos por sí misma… …[pero]nuestro modelo ya ha forzado el límite de lo que se puede entrenar en un solo servidor: cualquier modelo mayor requiere ya un clúster de servidores, lo que aumenta drásticamente el costo".
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.
Comments