Copiloto de Microsoft GitHub: AI ofrece sugerencias de codificación

Desde la izquierda, el CEO de GitHub, Chris Wanstrath, el CEO de Microsoft, Satya Nadella, y el futuro CEO de GitHub, Nat Friedman, en la sede de GitHub en San Francisco.

Fuente: Microsoft.

Microsoft anunció el martes un sistema de inteligencia artificial que puede recomendar código para que los desarrolladores de software lo utilicen mientras escriben código.

Microsoft busca simplificar el proceso de programación, el área en la que la empresa se inició en 1975. Eso podría mantener satisfechos a los programadores que ya utilizan las herramientas de la empresa y atraer otras nuevas.

El sistema, llamado GitHub Copilot, se basa en el código fuente cargado en el servicio de código compartido GitHub, que Microsoft adquirió en 2018, así como en otros sitios web. Microsoft y GitHub lo desarrollaron con la ayuda de OpenAI, una empresa de investigación de inteligencia artificial que Microsoft respaldó en 2019.

Los investigadores de Microsoft y otras instituciones han estado tratando de enseñar a las computadoras a escribir código durante décadas. El concepto aún no se ha generalizado, a veces porque los programas para escribir programas no han sido lo suficientemente versátiles. El esfuerzo de GitHub Copilot es un intento notable en el campo, ya que se basa en un gran volumen de código en muchos lenguajes de programación y una gran potencia de computación en la nube de Azure.

Nat Friedman, director ejecutivo de GitHub, describe GitHub Copilot como una versión virtual de lo que los creadores de software llaman un programador en pareja, es decir, cuando dos desarrolladores trabajan codo a codo en colaboración en el mismo proyecto. La herramienta mira el código existente y los comentarios en el archivo actual y la ubicación del cursor, y ofrece una o más líneas para agregar. A medida que los programadores aceptan o rechazan sugerencias, el modelo aprende y se vuelve más sofisticado con el tiempo.

El nuevo software hace que la codificación sea más rápida, dijo Friedman en una entrevista la semana pasada. Cientos de desarrolladores de GitHub han estado usando la función Copilot todo el día mientras codifican, y la mayoría de ellos aceptan sugerencias y no desactivan la función, dijo Friedman.

La programación implica tener una idea sobre cómo hacer algo y luego implementarlo, y GitHub Copilot es bueno en la segunda parte, dijo Greg Brockman, cofundador de OpenAI y su director de tecnología.

«No quieres leer la documentación de la API de Twilio. Sabe todo eso. De hecho, es bastante confiable», dijo. Brockman llama a este trabajo programación de última milla, y dijo que hacer que las computadoras se encarguen de ello conduce a mejoras de velocidad.

El director de tecnología de Microsoft, Kevin Scott, lo ha visto de primera mano.

«Me puede evitar tener que revisar una gran cantidad de documentación para obtener una herramienta que haga algo que sé que es capaz de hacer, y eso es muy bueno para la productividad», dijo. «Ni siquiera puedo decirle la cantidad de horas que he perdido tratando de encontrar la manera correcta de hacer algo relativamente prosaico, simplemente navegando por la complejidad de estas herramientas».

Sin embargo, GitHub Copilot no es solo para veteranos del software como él.

«Es muy posible que sea una de esas cosas que hace que la programación en sí sea más accesible», dijo Scott.

Es compatible con casi todos los lenguajes de programación, pero ha sido diseñado para funcionar mejor con JavaScript, Python y TypeScript, dijo Friedman.

GitHub Copilot aparecerá por primera vez en Visual Studio Code de Microsoft, un producto de código abierto gratuito, y Microsoft planea incorporarlo en el producto comercial de Visual Studio en el futuro.

Un descendiente del GPT-3 de OpenAI

El modelo en el núcleo de GitHub Copilot, llamado Codex, es un descendiente de GPT-3, un modelo poderoso que OpenAI entrenó en grandes volúmenes de texto, dijo Brockman. Los ingenieros alimentaron el modelo con «muchos, muchos terabytes de código fuente público», dijo Friedman.

Esta no es la primera vez que Microsoft se apoya en OpenAI para ofrecer software inteligente. El mes pasado Microsoft mostró cómo actualizaría la aplicación Power Apps Studio, que las personas sin conocimientos técnicos usan para escribir aplicaciones, para que los usuarios puedan escribir palabras que describan los elementos que les gustaría agregar y que GPT-3 muestre opciones para el código necesario.

OpenAI reconoce el potencial de los modelos de IA para generar código con GPT-3, que presentó el año pasado. La empresa emergente dice en su sitio web que un servicio en línea que ofrece GPT-3 puede manejar la «finalización del código». Pero cuando OpenAI estaba entrenando el modelo por primera vez, la puesta en marcha no tenía la intención de enseñarle cómo ayudar a codificar, dijo Brockman. Se concibió más como un modelo de lenguaje de propósito general que podría, por ejemplo, generar artículos, corregir gramática incorrecta y traducir de un idioma a otro.

Durante los siguientes meses, la gente experimentó con el modelo para ver qué podía hacer, tanto útil como tonto: por ejemplo, un ingeniero creó un sitio web que podría diseñar un botón que se pareciera a una sandía. Brockman se acercó a Friedman, ya que estaba ejecutando un destino clave donde millones de programadores trabajan en código y las cosas procedían desde allí.

Los empleados de GitHub han intentado asegurarse de que GitHub Copilot generará un código seguro y de alta calidad. «Hemos construido varios mecanismos de seguridad en Copilot que creemos que son de vanguardia en términos de reducir las posibilidades de errores en varias áreas aquí, pero definitivamente no son perfectos», dijo Friedman.

La tecnología subyacente no será solo de Microsoft. OpenAI lanzará el modelo Codex este verano para que los desarrolladores externos lo incorporen a sus propias aplicaciones, dijo Brockman.

Microsoft podría algún día lanzar una versión del producto que las empresas podrían entrenar para comprender sus estilos de programación, dijo Scott. Por ahora, Microsoft solo ofrece el servicio que conoce el código almacenado en repositorios públicos.

MIRAR: Microsoft desarrolla hardware similar a Netflix para juegos