¿La Inteligencia Artificial puede sustituir al programador?

 

Inteligencia Artificial (IA) hoy ya puede hacer que una palabra o un conjunto de palabras generen el código de un programa, que con una letra pueda predecir la instrucción que el programador piensa escribir y que leyendo el código de un programa pueda explicar en idioma natural lo que el programa hace. También asombra que un sistema de IA comenzó a realizar estas tareas cuando los investigadores buscaban otro objetivo, tal como le ocurrió a Pfizer con la Viagra.

Especial de Laszlo Beke

La profesión de programador es una de las más modernas y se ha tornado muy relevante en el mundo, estimándose que hay 24 millones desarrolladores hoy en día y se agregarían otros 5 millones para el año 2024. Simultáneamente, ha aparecido IA con la posibilidad de convertir cualquier idea en código de programación en forma automática. ¿Es esta una amenaza? ¿Podría más bien ser un refuerzo que facilite el trabajo de los programadores? Es fascinante conocer como esto ha ocurrido y el impacto que pueda tener incluso la aparición del “Ciudadano Desarrollador”.

Es importante comenzar con algunos antecedentes. Hace unos cuatro años, investigadores en laboratorios como OpenAI se comenzaron a diseñar redes neurales que analizaban inmensas cantidades de prosa, incluyendo miles de libros, artículos de Wikipedia y todo tipo de textos en Internet. A las redes se les proveyeron todos los idiomas y no se le enseñaron reglas de ninguno. Al logró identificar patrones en todo ese texto y las redes aprendieron a predecir la próxima palabra en una secuencia. Cuando alguién escribe unas pocas palabras estos “modelos de idioma universal” pueden completar los pensamientos con párrafos completos. De esta manera GPT-3, un invento de OpenAI, puede escribir sus propios twits, discursos, poesía y noticias.

IA está sorprendiendo con aplicaciones que ni nos imaginábamos y en este caso los asombrados fueron los investigadores del sistema. Este podía escribir sus propios programas de computación, cortos y simples. Como un niño, aparentemente había aprendido de una cantidad de programas publicados en Internet.

GPT-3

OpenAI es un laboratorio de IA, con una composición accionaria mixta: una parte comercial y otra sin fines de lucro. Allí se desarrolló el software GPT-3 (Transformador Generativo Pre-entrenado-3), el cual fue entrenado con una extraordinaria masa de texto. Se creó ese modelo de lenguaje, resultado del aprendizaje de la probabilidad de cual palabra específica se encontraría a continuación de palabras precedentes y también para predecir cual sería la próxima letra en un texto.

El acceso a GPT-3 es restringido, ya que se puede correr el riesgo de producir “fake news” en masa o inundar las redes sociales con “trolls” provocadores. El año pasado el laboratorio comenzó a vender su producto a empresas aprobadas para usos específicos. Múltiples empresas están usando GPT-3 para agregar IA al software que sus programadores usan para escribir código.

OpenAI Codex

OpenAI decidió extender la capacidad de GPT-3 con un nuevo sistema, OpenAI Codex y este es un descendiente directo de GPT-3 perfeccionado para tareas de programación. Su data de entrenamiento contiene material con lenguaje natural y miles de millones de líneas de código provenientes de fuentes públicas disponibles, incluyendo código en los repositorios públicos de GitHub. OpenAI Codex es más poderoso en Python, pero también es experto en más de una docena de lenguajes incluyendo JavaScript, Go, Perl, PHP, Ruby, Swift and TypeScript e incluso Shell.

OpenAI Codex traduce lenguaje natural a código, es especiamente fuerte generando programas simples cómo respuesta a descripciones cortas en inglés. Igualmente funciona en el otro sentido, explicando código complejo en inglés simple. También traduce de un lenguaje de programación a otro. Puede ayudar a novatos o a “Ciudadanos Desarrolladores” a aprender a codificar y es una herramienta que terminará promoviendo la productividad. En este punto, se estima que OpenAI Codex ya produce el código correcto el 37% del tiempo.

GitHub Copilot

Github es el principal hospedaje de código fuente con 56 millones de usuarios y tiene más de 28 millones de repositories públicos (lugares donde se almacenan paquetes de software). Github, que es propiedad de Microsoft, compró una licencia para el uso de GPT en Septiembre y decidió entrenar el software en el código fuente que almacena. OpenAI Codex es el modelo que empodera a GitHub Copilot, el cual se construyó en sociedad con Github hace solo un mes. Copilot que puede proveer buenas soluciones, aun cuando se requiere hacer adaptaciones ocasionalmente. Los codificadores que lo usen están aprovechando la sabiduría colectiva de programadores profesionales, cuyos programas residen en GitHub.

Iniciativas en marcha

Tabnine- El software puede detectar que un usuario empezó a escribir código para órdenes de compra, comienza a sugerir código para nombres y precios de productos y código para crear campos para cantidades, pagos y entregas.

Visual Studio – Microsoft liberó una versión con un nueva funcionalidad IA predictiva que completa lo que programador escribe.

Kite– su funcionalidad AI predictiva reduce el número de tecleos en 50%.

SourceAI – El usuario escribe una solicitud de código en lenguaje natural y recibe el programa en varios lenguajes.

Debuild – Personas que no conocen programación escriben en inglés simple el programa que desean crear y lo escribe para ellos.

New York University – Desarrolla un proceso de detección de errores (bugs) en los programas. El objeto es entrenar al modelo para que detecte los errores involuntarios y también las vulnerabilidades insertadas a propósito. Es importante, ya que adicionalmente el uso de IA puede generar errores extremadamente sutiles que pueden resultar muy difíciles de identificar.


Se hace referencia a AI is transforming the coding of computer programsWhy coders love the AI that could put them out of a job y A.I. Can Now Write Its Own Computer Code. That’s Good News for Humans. También aparece en mi Portal https://bit.ly/2XDyccD. La imagen es cortesía de pxfuel.