GitHub Copilot

herramienta de inteligencia artificial para autocompletar código

GitHub Copilot es una herramienta de inteligencia artificial basada en la nube desarrollada por GitHub y OpenAI para ayudar y asistir a los usuarios de Visual Studio Code, Visual Studio, Neovim y los entornos de desarrollo integrado (IDE) de JetBrains mediante el autocompletado de código.[1]​ Actualmente está disponible por suscripción para desarrolladores individuales. La herramienta fue anunciada por primera vez por GitHub el 29 de junio de 2021 y funciona mejor para los usuarios que codifican en los lenguajes Python, JavaScript, TypeScript, Ruby y Go.[2]

GitHub Copilot
Información general
Tipo de programa software
Desarrollador
Enlaces

Historia editar

El 29 de junio de 2021 GitHub anunció GitHub Copilot como una vista previa técnica en el entorno de desarrollo de Visual Studio Code.[1][3]​ Ese mismo año, en octubre, GitHub Copilot se lanzó como complemento en el mercado de JetBrains.[4]​ El 27 de octubre de 2021, GitHub lanzó el complemento GitHub Copilot Neovim como repositorio público.[5]​ Posteriormente, en marzo de 2022, GitHub anunció la disponibilidad de Copilot para Visual Studio 2022 IDE.[6]​ El 21 de junio de 2022, GitHub anunció que Copilot estaba fuera de la "vista previa técnica" y pasaba a estar disponible como un servicio basado en suscripción para desarrolladores individuales.[7]

Características editar

Cuando se le proporciona un problema de programación en lenguaje natural, Codex es capaz de generar una solución en código.[8]​ También es capaz de describir código de entrada en inglés y traducir código entre lenguajes de programación.[8]​ 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 autocompletado para fragmentos de código, secciones repetitivas de código y métodos y/o funciones completos.[2][9]​ GitHub informa que la función de autocompletar de Copilot es precisa aproximadamente la mitad del tiempo; 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 lenguajes y marcos de codificación desconocidos al reducir la cantidad de tiempo que los usuarios dedican a leer la documentación.[2]

Implementación editar

GitHub Copilot funciona con OpenAI Codex,[10]​ 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.[11]​ El modelo Codex también se entrena en gigabytes de código fuente en una docena de lenguajes de programación.

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.[12]

El GPT-3 de Open AI tiene licencia exclusiva para Microsoft, la empresa matriz de GitHub.[13]

Recepción editar

Desde el lanzamiento de Copilot, ha habido preocupaciones con su seguridad e impacto educativo, así como controversias sobre la licencia en torno al código que produce.[14][8]

Controversia de licencias editar

Si bien el director ejecutivo de GitHub, Nat Friedman, declaró en junio de 2021 que "entrenar sistemas de ML en datos públicos es un uso justo ",[15]​ una demanda colectiva presentada en noviembre de 2022 llamó a esto "pura especulación", afirmando que "ningún tribunal ha considerado la cuestión de si 'entrenar sistemas de ML en datos públicos es un uso justo'".[16]​ La demanda de Joseph Saveri Law Firm, LLP cuestiona la legalidad de Copilot en varios reclamos, que van desde el incumplimiento de contrato con los usuarios de GitHub hasta el incumplimiento de la privacidad bajo la CCPA por compartir PII.[17][16]

GitHub admite que una pequeña proporción de la salida de la herramienta puede copiarse palabra por palabra, lo que ha generado temores de que el código de salida no sea lo suficientemente transformador para ser clasificado como uso legítimo y pueda infringir los derechos de autor del propietario original.[14]​ En junio de 2022, Software Freedom Conservancy anunció que terminaría con todos los usos de GitHub en sus propios proyectos,[18]​ acusando a Copilot de ignorar las licencias de código utilizadas en los datos de entrenamiento.[19]​ En un mensaje de atención al cliente, GitHub declaró que "entrenar modelos de aprendizaje automático en datos disponibles públicamente se considera un uso justo en la comunidad de aprendizaje automático",  pero la demanda colectiva calificó esto como "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".[16]

Libros blancos de la FSF editar

El 28 de julio de 2021, la Free Software Foundation (FSF) publicó una convocatoria financiada para artículos técnicos sobre cuestiones filosóficas y legales en torno a Copilot.[20]​ Donald Robertson, Gerente de Licencias y Cumplimiento de la FSF, afirmó que "Copilot plantea muchas [...] preguntas que requieren un examen más profundo".[20]​ 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ónimo, eligió 5 artículos para destacar.[21]

Preocupaciones sobre la privacidad editar

El servicio de Copilot está basado en la nube y requiere una comunicación continua con los servidores de GitHub Copilot.[22]​ Esta arquitectura opaca ha alimentado las preocupaciones sobre la telemetría y la extracción de datos de pulsaciones de teclas individuales.[23][24]

Preocupaciones de seguridad editar

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 principales enumeraciones de debilidades de código de MITRE (por ejemplo, secuencias de comandos entre sitios, cruce de rutas) en 89 escenarios diferentes y 1689 programas 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 de código), diversidad de avisos (su capacidad para responder a la misma debilidad de código con variaciones sutiles) y diversidad de dominios (su capacidad de generar especificaciones de hardware de nivel de transferencia de registro en Verilog ).[25]​ El estudio encontró que en estos ejes en varios idiomas, el 39,33 % de las sugerencias principales y el 40,73 % del total de sugerencias generaron vulnerabilidades en el código. Además, descubrieron que los pequeños cambios no semánticos (es decir, los comentarios) realizados en el código podrían afectar la seguridad del código.[25]

Preocupaciones educativas editar

Un documento 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.[8]​ 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 de Codex con el desempeño de los estudiantes.[8]​ Los investigadores encontraron que Codex, en promedio, se desempeñó mejor que la mayoría de los estudiantes; sin embargo, su rendimiento disminuyó en las preguntas que limitaban las funciones que se podían usar en la solución (por ejemplo, condicionales, colecciones y bucles).[8]​ Dado este tipo de problema, "solo dos de las 10 soluciones [del Codex] produjeron el resultado correcto, pero ambas [...] violaron [la] restricción". El documento concluye que Codex puede ser útil para proporcionar una variedad de soluciones a los alumnos, pero también puede conducir a un exceso de confianza y plagio.[8]

Referencias editar

  1. a b Gershgorn, Dave (29 de junio de 2021). «GitHub and OpenAI launch a new AI tool that generates its own code». The Verge (en inglés estadounidense). Consultado el 6 de julio de 2021. 
  2. a b c d e «GitHub Copilot · Your AI pair programmer». GitHub Copilot (en inglés estadounidense). Consultado el 7 de abril de 2022. 
  3. «Introducing GitHub Copilot: your AI pair programmer». The GitHub Blog (en inglés estadounidense). 29 de junio de 2021. Consultado el 7 de abril de 2022. 
  4. «GitHub Copilot - IntelliJ IDEs Plugin | Marketplace». JetBrains Marketplace. Consultado el 7 de abril de 2022. 
  5. Copilot.vim, GitHub, 7 de abril de 2022, consultado el 7 de abril de 2022 .
  6. «GitHub Copilot now available for Visual Studio 2022». The GitHub Blog (en inglés estadounidense). 29 de marzo de 2022. Consultado el 7 de abril de 2022. 
  7. «GitHub Copilot is generally available to all developers». The GitHub Blog (en inglés estadounidense). 21 de junio de 2022. Consultado el 21 de junio de 2022. 
  8. a b c d e f g Finnie-Ansley, James; Denny, Paul; Becker, Brett A.; Luxton-Reilly, Andrew; Prather, James (14 de febrero de 2022). «The Robots Are Coming: Exploring the Implications of OpenAI Codex on Introductory Programming». Australasian Computing Education Conference. ACE '22 (en inglés estadounidense) (New York, NY, USA: Association for Computing Machinery): 10-19. ISBN 978-1-4503-9643-1. doi:10.1145/3511861.3511863. 
  9. Sobania, Dominik; Schweim, Dirk; Rothlauf, Franz (2022). «A Comprehensive Survey on Program Synthesis with Evolutionary Algorithms». IEEE Transactions on Evolutionary Computation 27: 82-97. ISSN 1941-0026. doi:10.1109/TEVC.2022.3162324. 
  10. Krill, Paul (12 de agosto de 2021). «OpenAI offers API for GitHub Copilot AI model». InfoWorld (en inglés). Consultado el 7 de abril de 2022. 
  11. «OpenAI Releases GPT-3, The Largest Model So Far». Analytics India Magazine (en inglés estadounidense). 3 de junio de 2020. Consultado el 7 de abril de 2022. 
  12. «OpenAI Announces 12 Billion Parameter Code-Generation AI Codex». InfoQ (en inglés). Consultado el 7 de abril de 2022. 
  13. «OpenAI is giving Microsoft exclusive access to its GPT-3 language model». MIT Technology Review (en inglés). Consultado el 7 de abril de 2022. 
  14. Nat Friedman [@natfriedman]. «In general: (1) training ML systems on public data is fair use». X (antes Twitter) (tuit) (en inglés). Archivado desde el original el |urlarchivo= requiere |fechaarchivo= (ayuda). 
  15. a b c Butterick, Matthew (3 de noviembre de 2022). «GitHub Copilot litigation». githubcopilotlitigation.com. Joseph Saveri Law Firm. Consultado el 12 de febrero de 2023. 
  16. Vincent, James (8 de noviembre de 2022). «The lawsuit that could rewrite the rules of AI copyright». The Verge (en inglés estadounidense). Consultado el 7 de diciembre de 2022. 
  17. «Give Up GitHub: The Time Has Come!». Software Freedom Conservancy (en inglés). Consultado el 8 de septiembre de 2022. 
  18. «If Software is My Copilot, Who Programmed My Software?». Software Freedom Conservancy (en inglés). Consultado el 8 de septiembre de 2022. 
  19. a b «FSF-funded call for white papers on philosophical and legal questions around Copilot». Free Software Foundation. 28 de julio de 2021. Consultado el 11 de agosto de 2021. 
  20. «Publication of the FSF-funded white papers on questions around Copilot». Free Software Foundation. 24 de febrero de 2022. 
  21. «GitHub Copilot - Your AI pair programmer». GitHub. Consultado el 18 de octubre de 2022. 
  22. «CoPilot: Privacy & DataMining». GitHub. Consultado el 18 de octubre de 2022. 
  23. «Who does that server really serve?». gnu.org. Consultado el 18 de octubre de 2022. 
  24. a b Error en la cita: Etiqueta <ref> no válida; no se ha definido el contenido de las referencias llamadas :4