GitHub Copilot es una herramienta de finalización de código desarrollada por GitHub (propiedad de Microsoft ) y OpenAI (49% propiedad de Microsoft) que ayuda a los usuarios de los entornos de desarrollo integrados (IDE) Visual Studio Code , Visual Studio , Neovim y JetBrains completando automáticamente el código. [1] Actualmente disponible mediante suscripción para desarrolladores individuales y empresas, el software de inteligencia artificial generativa fue anunciado por primera vez por GitHub el 29 de junio de 2021 y funciona mejor para usuarios que codifican en Python , JavaScript , TypeScript , Ruby y Go . [2] En marzo de 2023, GitHub anunció planes para "Copilot X", que incorporará un chatbot basado en GPT-4 , así como soporte para comandos de voz, en Copilot. [3]
El 29 de junio de 2021, GitHub anunció GitHub Copilot para una vista previa técnica en el entorno de desarrollo de Visual Studio Code. [1] [4] GitHub Copilot se lanzó como complemento en el mercado JetBrains el 29 de octubre de 2021. [5] El 27 de octubre de 2021, GitHub lanzó el complemento GitHub Copilot Neovim como repositorio público. [6] GitHub anunció la disponibilidad de Copilot para Visual Studio 2022 IDE el 29 de marzo de 2022. [7] El 21 de junio de 2022, GitHub anunció que Copilot estaba fuera de la "vista previa técnica" y está disponible como un servicio basado en suscripción para desarrolladores individuales. [8]
GitHub Copilot es la evolución del complemento 'Bing Code Search' para Visual Studio 2013, que fue un proyecto de Microsoft Research lanzado en febrero de 2014. [9] Este complemento se integró con varias fuentes, incluidas MSDN y StackOverflow, para proporcionar alta calidad contextualmente. fragmentos de código relevantes en respuesta a consultas en lenguaje natural. [10]
Cuando se le presenta un problema de programación en lenguaje natural , Copilot es capaz de generar código de solución. [11] También es capaz de describir código de entrada en inglés y traducir código entre lenguajes de programación. [11]
Según su sitio web, GitHub Copilot incluye funciones de asistencia para programadores, como la conversión de comentarios de código en código ejecutable y autocompletar para fragmentos de código, secciones repetitivas de código y métodos y/o funciones completos . [2] [12] GitHub informa que la función de autocompletar de Copilot es precisa aproximadamente la mitad de las veces; con algún código de encabezado de función de Python, por ejemplo, Copilot autocompletaba correctamente el resto del código del cuerpo de la función el 43% de las veces en el primer intento y el 57% de las veces después de diez intentos. [2]
GitHub afirma que las funciones de Copilot permiten a los programadores navegar por marcos y lenguajes de codificación desconocidos al reducir la cantidad de tiempo que los usuarios dedican a leer la documentación . [2]
GitHub Copilot fue impulsado inicialmente por OpenAI Codex , [13] que es una versión de producción modificada del Generative Pre-trained Transformer 3 (GPT-3), un modelo de lenguaje que utiliza el aprendizaje profundo para producir texto similar al humano. [14] El modelo Codex se entrena adicionalmente con gigabytes de código fuente en una docena de lenguajes de programación.
El OpenAI Codex de Copilot está capacitado en una selección del idioma inglés, repositorios públicos de GitHub y otro código fuente disponible públicamente. [2] Esto incluye un conjunto de datos filtrado de 159 gigabytes de código Python procedente de 54 millones de repositorios públicos de GitHub. [15]
GPT-3 de OpenAI tiene licencia exclusiva para Microsoft , la empresa matriz de GitHub . [dieciséis]
En noviembre de 2023, Copilot se actualizó para utilizar el modelo GPT-4 de OpenAI . [17]
Desde el lanzamiento de Copilot, ha habido preocupaciones con respecto a su seguridad y su impacto educativo, así como también controversias sobre las licencias en torno al código que produce. [18] [11] [19]
Si bien el director ejecutivo de GitHub, Nat Friedman, declaró en junio de 2021 que "entrenar sistemas de aprendizaje automático con datos públicos es un uso legítimo ", [20] una demanda colectiva presentada en noviembre de 2022 calificó esto como "pura especulación" y afirmó que "ningún tribunal ha considerado la cuestión". de si 'entrenar sistemas de ML sobre datos públicos es un uso legítimo'". [21] La demanda de Joseph Saveri Law Firm, LLP cuestiona la legalidad de Copilot en varios reclamos, que van desde incumplimiento de contrato con los usuarios de GitHub hasta violación de la privacidad bajo la CCPA para compartir PII . [22] [21]
GitHub admite que una pequeña proporción del resultado de la herramienta puede copiarse palabra por palabra, lo que ha generado temores de que el código resultante no sea lo suficientemente transformador como para ser clasificado como uso legítimo y pueda infringir los derechos de autor del propietario original. [18] En junio de 2022, Software Freedom Conservancy anunció que pondría fin a todos los usos de GitHub en sus propios proyectos, [23] acusando a Copilot de ignorar las licencias de código utilizadas en los datos de entrenamiento. [24] En un mensaje de atención al cliente, GitHub declaró que "entrenar modelos de aprendizaje automático con datos disponibles públicamente se considera un uso legítimo en toda la comunidad de aprendizaje automático", [21] pero la demanda colectiva calificó esto de "falso" y además señaló que "Independientemente del nivel de aceptación de este concepto en 'la comunidad de aprendizaje automático', según la ley federal, es ilegal". [21]
El 28 de julio de 2021, la Free Software Foundation (FSF) publicó una convocatoria financiada para la presentación de libros blancos sobre cuestiones filosóficas y legales relacionadas con Copilot. [25] Donald Robertson, Gerente de Licencias y Cumplimiento de la FSF, afirmó que "Copilot plantea muchas [...] preguntas que requieren un examen más profundo". [25] El 24 de febrero de 2022, la FSF anunció que había recibido 22 artículos sobre el tema y, mediante un proceso de revisión anónima, eligió 5 artículos para destacar. [26]
El servicio Copilot está basado en la nube y requiere comunicación continua con los servidores de GitHub Copilot. [27] Esta arquitectura opaca ha alimentado preocupaciones sobre la telemetría y la extracción de datos de pulsaciones de teclas individuales. [28] [29]
Un artículo aceptado para su publicación en el Simposio IEEE sobre Seguridad y Privacidad en 2022 evaluó la seguridad del código generado por Copilot para las 25 enumeraciones de debilidades de código principales de MITRE (por ejemplo, secuencias de comandos entre sitios, recorrido de ruta) en 89 escenarios diferentes y 1689 programas. [19] Esto se hizo a lo largo de los ejes de diversidad de debilidades (su capacidad para responder a escenarios que pueden conducir a varias debilidades del código), diversidad de indicaciones (su capacidad para responder a la misma debilidad del código con una variación sutil) y diversidad de dominios (su capacidad para generar especificaciones de hardware de nivel de transferencia de registros en Verilog ). [19] El estudio encontró que en estos ejes en múltiples idiomas, el 39,33% de las sugerencias principales y el 40,73% del total de sugerencias condujeron a vulnerabilidades de código. Además, descubrieron que pequeños cambios no semánticos (es decir, comentarios) realizados en el código podrían afectar la seguridad del código. [19]
Un artículo de febrero de 2022 publicado por la Association for Computing Machinery evalúa el impacto que Codex, la tecnología utilizada por Github Copilot, puede tener en la educación de los programadores novatos. [11] El estudio utiliza preguntas de evaluación de una clase de introducción a la programación en la Universidad de Auckland y compara las respuestas del Codex con el desempeño de los estudiantes. [11] Los investigadores descubrieron que Codex, en promedio, obtuvo mejores resultados que la mayoría de los estudiantes; sin embargo, su rendimiento disminuyó en preguntas que limitaban las funciones que se podían usar en la solución (por ejemplo, condicionales , colecciones y bucles ). [11] Dado este tipo de problema, "sólo dos de las 10 soluciones [del Codex] produjeron el resultado correcto, pero ambas [...] violaron [la] restricción". El documento concluye que el Codex puede resultar útil para ofrecer una variedad de soluciones a los alumnos, pero también puede dar lugar a una dependencia excesiva y al plagio. [11]