La inteligencia artificial aprende a programar, ¿sustituirá a los desarrolladores?
OpenAI ha presentado Codex, su nuevo sistema de inteligencia artificial que desarrolla código de programación partiendo de una sencilla indicación en lenguaje natural.
En los dos últimos años el mundo ha sido testigo de una explosión sin precedentes en el desarrollo de sistemas de inteligencia artificial. Están surgiendo modelos de procesamiento del lenguaje natural que consiguen escribir con el mismo estilo que autores de renombre, traducen a varios idiomas con soltura y hacen sus pinitos en el mundo de la programación
La organización OpenAI está detrás de los avances más comentados, aunque empresas como Google y proyectos de investigación públicos la siguen de cerca con sus creaciones. Los sistemas desarrollados por Open AI generan música, compiten en videojuegos y crean obras de arte.
Ahora sus investigadores han presentado Codex, un programa de inteligencia artificial que puede revolucionar el mundo de la programación. Se presenta como el ayudante perfecto para los creadores de código, la clave para acelerar la creación de miles de aplicaciones y programas que acabarán llegando a los móviles de toda la población. Pero, su futuro es tan prometedor que parece amenazar miles de empleos.
Sam Altman, CEO de OpenAI, describe así el nuevo sistema basado en redes neuronales: «Creo que Codex se acerca a lo que la mayoría de nosotros realmente esperamos de los ordenadores: decimos lo que queremos y ellos lo hacen».
Origen de Codex
Codex nace de dos sucesos clave estos últimos años: la creación de GPT-3 y la colaboración entre OpenAI y Microsoft. A finales de 2020, nacía GPT-3, la tercera versión de un modelo de procesamiento de lenguaje natural (PNL), el campo de la inteligencia artificial que estudia la comunicación entre las personas y las máquinas con el lenguaje que usan los humanos.
Sus algoritmos están entrenados para reconocer patrones en los datos y aprender a través de los ejemplos. Para ello Open AI recurrió a 175.000 millones de parámetros con los que ‘enseñar a comunicarse a GPT-3’, por decirlo de una forma sencilla. Se convirtió inmediatamente en el modelo más grande de la historia.
Miles de textos, de todos los formatos, recopilados de Internet, de páginas como Wikipedia para que GPT-3 analizara y aprendiera a expresarse como los humanos. El resultado sorprendió por su versatilidad, aunque no está exento de errores que hay que ir corrigiendo.
Entre sus múltiples capacidades está la de generar código, «se dieron cuenta de que era bastante hábil en hacer muchas cosas distintas, y una de ellas era desarrollar código, algo que trajo mucha cola, porque era una de las tareas que se pensaban que iba a ser difícil de automatizar a corto plazo», explica a OMICRONO Nerea Luis, doctora en Ciencias de la computación y Cofundadora de T3chFest.
De entre los miles de textos que recibió esta inteligencia artificial, se colaron algunos códigos de programación, abriendo una nueva oportunidad de desarrollo. Un caso de uso más factible y menos controvertido que los textos de noticias falsas que podía generar a petición del usuario. Open AI tomó varias decisiones, restringir el acceso a GPT-3 para protegerla de un uso conflictivo y explotar esta nueva capacidad.
Así la organización llega a un acuerdo con Microsoft, por el que el gigante tecnológico tiene la exclusividad para acceder al código fuente de GPT-3 a cambio de una inversión de mil millones de dólares y la posibilidad de usar GitHub, el repositorio de código más grande que Microsoft compró en 2018, para los proyectos de investigación de OpenAI.
Codex y GitHub Copilot
Bajo esta colaboración surgen dos nuevas herramientas, Codex y GitHub Copilot. Ambas pensadas para proporcionar apoyo a los programadores y nutridas con la inmensa base de datos de GitHub, repleta de software.
GitHub Copilot ha salido un poco antes que Codex y algunos usuarios están recibiendo acceso para trabajar con él. Ejemplo de ello son los vídeos del canal DocCSV de Carlos Santana, experto en inteligencia artificial, donde se puede ver cómo la inteligencia artificial de Microsoft sirve de ayuda a la hora de desarrollar un código.
Codex por el contrario solo se ha podido ver en vídeos oficiales de OpenAI. La compañía ha demostrado el potencial de esta inteligencia artificial en YouTube, los investigadores le dan indicaciones en lenguaje natural y ella desarrolla el software para generar un sencillo juego de ordenador.
Incluso es capaz de traducir de un lenguaje de programación a otro. Su principal campo de trabajo es Python, pero también es competente en más de una docena de lenguajes, como JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript y Shell.
Su principal ventaja es el ahorro de tiempo que puede suponer para los profesionales, explica Nerea Luis: «En vez de ponerte con el editor de código y buscar cómo se hace esto y luego copiarlo, pegarlo o escribirlo de cero si sabes, directamente te saltas este paso».
Al igual que la tecnología ya ayuda a terminar las frases en los correos electrónicos, los desarrolladores contarán en el futuro con el apoyo de un ayudante virtual capaz de hacer por ellos las tareas más rutinarias y tediosas.
Una ayuda más que una amenaza
Estas demostraciones tanto de Codex como de GitHub Copilot provocan que inmediatamente surja una duda en la cabeza de la mayoría de observadores: ¿Se quedarán los programadores sin empleo? La respuesta a esta pregunta parece estar clara entre los que más entienden el sistema: no.
Nerea Luis manda un mensaje tranquilizador, la inteligencia artificial no vuela sola. «Yo esta idea la tengo bastante clara, es difícil que esto vaya a suplantar el trabajo de un programador, creo que todavía estamos en un punto en el que cualquiera no puede usar esto y de repente hacer magia» explica.
Para ella, Codex será un gran compañero para los desarrolladores, una herramienta con la que agilizar la parte inicial de los proyectos, las tareas más repetitivas o para la «integración de nuevos servicios, lo que nosotros llamamos APIs, aquí va a ser fundamental y va a ahorrar un montón de tiempo».
El criterio sigue siendo responsabilidad del profesional de carne y hueso. En esto coincide claramente con la postura de la propia empresa, OpenAI habla de dos fases en todo proyecto de programación: en la primera los humanos siguen encontrando las necesidades o problemas y diseñando una solución. Después, en la segunda fase, Codex genera el código para dar vida a esa idea.
Hay que tener en cuenta que estos en ningún momento este tipo de generadores está entendiendo lo que está haciendo, no cuentan con la comprensión lectora de los humanos, solo replican textos en base a millones de ejemplos que han recibido. «Son no deterministas, es decir, ante la misma pregunta te pueden dar dos respuestas diferentes, igual las dos válidas o quizás una es incorrecta» dice Nerea Luis.
En los lenguajes de programación esa ambigüedad desaparece,»pero como tú sí le estás escribiendo en lenguaje natural, ahí sí que hay un tema de interpretación que podría dar lugar a errores» explica.
Aún así, la base que proporcionan estos modelos es realmente prometedora. «Una de las cosas que ha hecho bien Open AI es ser valientes y sacarlo para probarlo con casos de uso reales, es la única forma de darte cuenta de esos fallos, si no lo haces con un sistema inteligente es imposible que aprenda a largo plazo» explica Nerea Luis.