En junio pasado, GitHub y OpenAI, propiedad de Microsoft, lanzaron Copilot, un servicio que brinda sugerencias para líneas completas de código dentro de entornos de desarrollo como Microsoft Visual Studio. Disponible como una extensión descargable, Copilot funciona con un modelo de IA llamado Codex que está entrenado en miles de millones de líneas de código público para sugerir líneas de código y funciones adicionales dado el contexto del código existente. Copilot también puede presentar un enfoque o solución en respuesta a una descripción de lo que un desarrollador quiere lograr (p. ej., “Di hola mundo”), basándose en su base de conocimientos y contexto actual.
Si bien Copilot estaba disponible anteriormente en una vista previa técnica, estará disponible de forma general a partir de este verano, anunció Microsoft en Build 2022. Copilot también estará disponible de forma gratuita para los estudiantes, así como para los contribuyentes de código abierto “verificados”. Sobre el último punto, GitHub dijo que compartirá más en una fecha posterior.
La experiencia de Copilot no cambiará mucho con la disponibilidad general. Como antes, los desarrolladores podrán recorrer las sugerencias de Python, JavaScript, TypeScript, Ruby, Go y docenas de otros lenguajes de programación y aceptarlos, rechazarlos o editarlos manualmente. Copilot se adaptará a las ediciones que realicen los desarrolladores, combinando estilos de codificación particulares para autocompletar modelos repetitivos o patrones de código y recomendar pruebas unitarias que coincidan con el código de implementación.
Las extensiones de Copilot estarán disponibles para Noevim y JetBrains además de Visual Studio Code, o en la nube en GitHub Codespaces.
Una característica nueva que coincide con el lanzamiento general de Copilot es Copilot Explain, que traduce el código en descripciones en lenguaje natural. Descrito como un proyecto de investigación, el objetivo es ayudar a los desarrolladores novatos o aquellos que trabajan con una base de código desconocida.
“A principios de este año, lanzamos Copilot Labs, una extensión de Copilot separada desarrollada como campo de pruebas para aplicaciones experimentales de aprendizaje automático que mejoran la experiencia del desarrollador”, dijo a TechCrunch Ryan J. Salva, vicepresidente de producto en GitHub, en una entrevista por correo electrónico. “Como parte de Copilot Labs, lanzamos ‘explicar este código’ y ‘traducir este código’. Este trabajo encaja en una categoría de capacidades experimentales que estamos probando que le dan un vistazo a las posibilidades y nos permite explorar casos de uso. Tal vez con ‘explicar este código’, un desarrollador está sopesando una base de código desconocida y quiere comprender rápidamente lo que está sucediendo. Esta función le permite resaltar un bloque de código y pedirle a Copilot que lo explique en un lenguaje sencillo. Una vez más, Copilot Labs tiene la intención de ser de naturaleza experimental, por lo que las cosas podrían romperse. Los experimentos de Labs pueden o no progresar en funciones permanentes de Copilot”.
La nueva función de Copilot, Copilot Explain, traduce el código a explicaciones en lenguaje natural. Créditos de imagen: Copiloto
Debido a la naturaleza complicada de los modelos de IA, Copilot sigue siendo un sistema imperfecto. GitHub advierte que puede producir patrones de codificación inseguros, errores y referencias a API obsoletas, o modismos que reflejen el código menos que perfecto en sus datos de entrenamiento. El código que Copilot sugiere no siempre puede compilarse, ejecutarse o incluso tener sentido porque en realidad no prueba las sugerencias. Además, en raras ocasiones, las sugerencias de Copilot pueden incluir datos personales como nombres y correos electrónicos textualmente de su conjunto de entrenamiento y, peor aún, texto “sesgado, discriminatorio, abusivo u ofensivo”.
GitHub dijo que implementó filtros para bloquear correos electrónicos cuando se muestran en formatos estándar y palabras ofensivas, y que está en proceso de crear un filtro para ayudar a detectar y suprimir el código que se repite desde los repositorios públicos. “Si bien estamos trabajando arduamente para mejorar Copilot, el código sugerido por Copilot debe probarse, revisarse y examinarse cuidadosamente, como cualquier otro código”, dice el descargo de responsabilidad en el sitio web de Copilot.
Si bien Copilot presumiblemente ha mejorado desde su lanzamiento en la vista previa técnica el año pasado, no está claro cuánto. Desde entonces, las capacidades del modelo subyacente, Codex, un descendiente de GPT-3 de OpenAI, han sido igualadas (o incluso superadas) por sistemas como AlphaCode de DeepMind y el código abierto. policodificador.
“Estamos viendo progreso en Copilot generando mejor código… Estamos utilizando nuestra experiencia con [other] herramientas para mejorar la calidad de las sugerencias de Copilot, por ejemplo, dando peso adicional a los datos de entrenamiento escaneados por CodeQL, o analizando sugerencias en tiempo de ejecución”, afirmó Salva. “CodeQL” se refiere al motor de análisis de código de GitHub para automatizar los controles de seguridad. “Estamos comprometidos a ayudar a los desarrolladores a ser más productivos al mismo tiempo que mejoramos la calidad y la seguridad del código. A largo plazo, creemos que Copilot escribirá un código más seguro que el programador promedio”.
La falta de transparencia no parece haber disminuido el entusiasmo por Copilot, que Microsoft dijo hoy sugiere que alrededor del 35% del código en lenguajes como Java y Python fue generado por los desarrolladores en la vista previa técnica. Decenas de miles han usado regularmente la herramienta durante la vista previa, afirma la compañía.
Source link