05/07/2021

GitHub Copilot: la inteligencia artificial y el futuro de los programadores

El repositor de códigos pone a prueba un nuevo modelo de IA que aprende a programar.
Por Juan Vigs

GitHub (uno de los principales repositorios de código en el mundo) lanzó GitHub Copilot, una herramienta de inteligencia artificial (IA) que será capaz de recomendar porciones de código a partir de instrucciones en «idioma humano» o escribiendo el comienzo de una cabecera en distintos lenguajes de programación. Esta noticia explotó en las redes y generó un interrogante en el mundo de los desarrolladores de software: ¿será GitHub Copilot una herramienta que reemplace al 100% las tareas de los programadores en la actualidad?

Esta nueva herramienta, además de “autocompletar” inteligentemente nuestro código, puede llegar a generar una continuación de tareas repetitivas o generar test unitarios automáticamente (y esto es solo el comienzo), todo esto evaluando el contexto de nuestra aplicación y sirviéndose de la inmensa cantidad de código existente en GitHub. Según Nat Friedman (SEO de GitHub), estamos ante la 3ra ola de cambio de productividad encabezada por la IA, siendo la 1ra los compiladores o depuradores de código y la 2da el desarrollo Open Source.

¿Cómo surge GitHub Copilot?

Vayamos un poco hacia atrás. Dentro de todas las formas de IA, en 2017 aparecen los «transformers», una red neuronal que analiza eficientemente secuencias de datos, entre ellas el texto. A partir de la llegada de los transformers, el laboratorio de IA OpenAI puso el foco en el entrenamiento de modelos que utilizan estos transformers a escalas nunca antes vistas; así aparecen los modelos de lenguajes GPT, GPT-2 y GPT-3 que permiten autocompletar cualquier texto que un humano escriba, generando millones de secuencias de texto completamente coherentes. El modelo GPT-3 también permite interpretar código, es decir, con la misma inteligencia con la cual completa, por ejemplo, un chat o un artículo periodístico, también lo hace con un lenguaje de programación.

Se preguntarán entonces: ¿de dónde saca la información el modelo GPT-3 para entrenarse (como lo hizo con el texto) y poder generar funciones avanzadas de lenguajes de programación? La respuesta es: del repositorio nro 1, GitHub, es decir, de todo el código que los programadores venimos aportando durante años. Es a partir de todo ese conocimiento colectivo que este modelo de IA se sirve para aprender y funcionar como un «copiloto» y hacer pair-programing con los programadores.

¿Quiénes están detrás?

En marzo de 2019, OpenAI anunció que pasaría de ser una compañía sin fines de lucro a una organización con beneficio limitado, lo que permite atraer inversores que quieran apostar por su tecnología. Dos meses después, en julio de ese mismo año, Microsoft informó su asociación con OpenAI y, como Microsoft viene de comprar GitHub, ya tenemos el romance… ¿del siglo? IA + Computación + Datos. Los tres elementos que fueron necesarios para entrenar a GitHub Copilot.

De acá nace la evolución del GPT-3, llamado OpenAI Codex.

Vale aclarar que esta tecnología (que por ahora existe sólo en forma de plugin para Visual Studio Code) se encuentra en proceso de prueba e irán aceptando a usuarios de GitHub progresivamente.

Las primeras pruebas de este revolucionario sistema fueron muy positivas, arrojando un código correcto un 43% de las veces. Como toda IA, se encuentra en constante entrenamiento y aprendizaje, con lo cual, el futuro y alcance que pueda llegar a tener GitHub Copilot en el mundo del desarrollo es inimaginable.

Pero yendo a lo importante (para los programadores): ¿es GitHub Copilot un aliado nuestro en cuanto al mundo laboral o viene a reemplazar a largo plazo nuestra tarea?

Este tipo de preguntas angustiantes inundaron la web a partir de su lanzamiento y reflejan la preocupación de una gran cantidad de personas que se están iniciando en el área del desarrollo de software por la excesiva oferta laboral.

Hasta el momento, nada indica que GitHub Copilot reemplazará al 100% las tareas de un desarrollador, pero (pero, pero, pero), sí es evidente que, a partir de esto, se va a acelerar el flujo de trabajo de un programador experimentado y por lo tanto se van a reducir muchas horas de trabajo dentro del mercado laboral existente de la programación. Cómo afectará esto en el largo plazo en la oferta laboral es difícil de predecir, porque, como todo avance tecnológico de esta magnitud (y sobre todo en este área), produce al mismo tiempo nuevas tareas y nuevos desafíos. Podemos suponer que más bien tiende (en el mediano plazo) a transformar las relaciones laborales existentes para dar paso a nuevas, porque se van a reducir a cero las tareas repetitivas que hacemos actualmente y nos permitirá tener el tiempo para desarrollar otras tareas de mayor alcance, más creativas, nuevos lenguajes de programación, etc.

En definitiva, el trabajo de un programador en la actualidad no es simplemente escribir fragmentos de código mecánicamente, sino crear soluciones utilizando los lenguajes existentes y esto seguirá siendo tarea nuestra (y no de nuestro gerente).

GitHub Copilot muestra la contradicción entre un avance tecnológico que ha sido posible por el trabajo de miles de programadores y su apropiación por un monopolio privado que solo busca incrementar su beneficio empresario. Esta misma contradicción puede traer aparejada otra: que una herramienta capaz de aliviar el trabajo de los programadores y permitirles concentrarse en nuevas tareas, termine siendo una fuente de calamidades (mayor desempleo). Para que GitHub Copilot sea un aliado, es necesario liberar a la programación del corset que implican las relaciones sociales capitalistas de producción.

También te puede interesar: