Incidentes Asociados

El mundo de la ingeniería de software ha estado alborotado en los últimos días tras el lanzamiento de GitHub Copilot, un asistente de programación basado en el aprendizaje automático. Copilot tiene como objetivo ayudar a los desarrolladores a trabajar de manera más rápida y eficiente mediante la sugerencia automática de líneas de código y/o funciones completas.
Sin embargo, la cuestión de cómo GitHub Copilot genera estas sugerencias ha sido objeto de cierta controversia. En resumen, el modelo de aprendizaje automático de Copilot se ha entrenado en código público. Esto plantea dos preguntas:
- ¿Necesita GitHub permiso del propietario de los derechos de autor del código para capacitar a Copilot en ese código?
- Las sugerencias de Copilot se basan en una gran cantidad de código público, algunos de los cuales están cubiertos por fuertes [licencias copyleft] (https://fossa.com/blog/all-about-copyleft-licenses/). ¿El uso de Copilot contará como la creación de un trabajo derivado del código original con licencia copyleft?
Para responder a estas preguntas (y colocar a Copilot en el contexto legal apropiado), recurrimos a Kate Downing, una abogada de propiedad intelectual que se especializa en ayudar a las empresas de software a navegar en áreas como el cumplimiento del código abierto.
¿GitHub Copilot está cometiendo una infracción de derechos de autor?
Antes de explorar las ramificaciones del cumplimiento de la licencia de GitHub Copilot, comenzaremos con un tema que va directamente al corazón de si GitHub puede capacitar a Copilot en código disponible públicamente sin el permiso del titular de los derechos de autor.
Según Downing, la respuesta depende en cierta medida de dónde esté alojado ese código. Si está en GitHub, claramente no habría una infracción de derechos de autor.
“Si consulta los Términos de servicio de GitHub, independientemente de la licencia que utilice, otorga a GitHub el derecho a alojar su código y utilizar su código para mejorar sus productos y características”, dice Downing. “Entonces, con respecto al código que ya está en GitHub, creo que la respuesta a la cuestión de la infracción de derechos de autor es bastante sencilla”.
Las cosas no son tan claras en un escenario en el que Copilot está capacitado en un código alojado fuera de GitHub. En esa situación, la cuestión de la infracción de derechos de autor dependería en gran medida del concepto de uso legítimo.
“Si Copilot está siendo capacitado en código fuera de GitHub, aceptamos que al menos parte de lo que están viendo es trabajo protegido por derechos de autor”, dice Downing. “Entonces, la pregunta es si es un uso justo. Ahora, en última instancia, no puede concluir definitivamente que algo es de uso justo hasta que vaya a la corte y un juez esté de acuerdo con su evaluación. Pero creo que hay un caso sólido de que el uso del código de Copilot es muy transformador, un punto que favorecería el argumento del uso justo.
“Hay un precedente para este tipo de situación. Tomemos el caso de Google Books, por ejemplo. Google escaneó millones de libros, proporcionó a las personas que estaban investigando la capacidad de buscar en el libro y proporcionó al usuario un pequeño fragmento del texto que el usuario estaba buscando en el libro mismo. De hecho, el tribunal consideró que se trataba de un uso legítimo. El uso fue muy transformador. Permitió a la gente buscar en millones de libros. No sustituyó al libro en sí. Realmente no les quitó nada a los titulares de los derechos de autor; de hecho, facilitó el acceso de los lectores a la obra y abrió un mercado más amplio para los autores de libros. Y fue un gran valor agregado además del corpus protegido por derechos de autor.
“Creo que esos argumentos son realmente fuertes y aplicables al ejemplo de Copilot, pero como dije, nada es realmente un uso justo hasta que un tribunal decida que ese es el caso. Entonces, a pesar de que tenemos un precedente en esa dirección, sigue siendo una pregunta abierta”.
Para resumir:
- Downing no cree que GitHub está infringiendo los derechos de autor al capacitar a Copilot en el código alojado en GitHub.
- Para el código no alojado en GitHub (y, por lo tanto, no se rige por los términos de servicio de GitHub): Downing cree que hay un caso sólido de que Copilot usa dicho código de una manera transformadora, lo que respaldaría un argumento de uso justo de que no hay infracción de derechos de autor. Sin embargo, en última instancia, no podemos estar completamente seguros de una forma u otra hasta que el asunto se resuelva en un tribunal de justicia.
¿Qué pasa con el copiloto de GitHub y el cumplimiento de la licencia?
Como mencionamos, GitHub entrena a Copilot en numerosas piezas de código público, muchas de las cuales están cubiertas por fuertes licencias de copyleft (es decir, [GPL v2] (https://fossa.com/blog/open-source-software-licenses-101- gpl-v2/), GPL v3). Las licencias copyleft requieren que los trabajos derivados (del código con licencia copyleft) tengan la misma licencia que el código original.
En otras palabras, si una organización crea y distribuye una pieza de software (llamémoslo "Producto de Jim") que incluye código con licencia GPL v3, es probable que el "Producto de Jim" también deba tener licencia GPL v3 (hay un puñado de excepciones). Esto, por supuesto, tiene el potencial de ser problemático.
La pregunta, entonces, es si los usuarios de GitHub Copilot crearán inadvertidamente obras derivadas de código con licencia copyleft. Como lo ve Downing, la respuesta a la pregunta del trabajo derivado depende de la naturaleza precisa de las sugerencias de Copilot.
“Esto es realmente específico de cada caso y aún está por verse”, dice Downing. “Mucho depende de la minuciosidad y la duración de las sugerencias de Copilot. Cuanto más compleja y larga sea la sugerencia, más probable es que tenga algún tipo de expresión sujeta a derechos de autor. Si una sugerencia es lo suficientemente breve, el hecho de que repita algo en el código de otra persona puede no convertirla en una expresión protegida por derechos de autor.
“Este es el caso debido a la forma en que funcionan los lenguajes de programación. En ciertos lenguajes, hay nombres de clase específicos y hay nombres de funciones específicos. Hay muchas piezas que se reutilizan a lo largo del código, casi como bloques de lego. Entonces, si la sugerencia es bastante pequeña, probablemente no tenga ninguna expresión protegida por derechos de autor en primer lugar; la sugerencia puede ser puramente funcional (es decir, esta es la única forma de hacer x en este idioma).
“También está la cuestión de si lo que se está produciendo es en realidad una copia de lo que está en el corpus. Eso es un poco confuso en este momento. GitHub informa que Copilot produce principalmente material nuevo y solo regurgita copias del código aprendido el 0,1 % de las veces. Pero hemos visto ciertos ejemplos en línea de las sugerencias y esas sugerencias incluyen cantidades bastante grandes de código y código que claramente se está copiando porque incluso incluye comentarios del código fuente original”.
Para resumir:
- Copilot está lejos de ser un producto terminado, y la complejidad, longitud y minuciosidad de sus sugerencias de código parecen variar.
- Por esta razón, y el hecho de que las sugerencias de código deben ser lo suficientemente originales para cumplir con el estándar de expresión protegida por derechos de autor, es difícil evaluar con confianza si el uso de Copilot resultaría en la creación de un trabajo derivado.
Una visión práctica del copiloto y la ley
Como era de esperar, dado que GitHub Copilot tiene solo unas pocas semanas, todavía hay más preguntas que respuestas cuando se trata de posibles infracciones de derechos de autor y cumplimiento de licencias. Dicho esto, Downing sugiere que los usuarios de Copilot consideren tomar ciertas precauciones simples y directas para protegerse contra posibles problemas de cumplimiento de la licencia.
“Advierto a cualquiera que use Copilot en este momento para ayudar a escribir código que preste mucha atención a la naturaleza de las sugerencias de Copilot”, dice Downing. "En la medida en que vea un fragmento de código sugerido que claramente se regurgitó de otra fuente, tal vez todavía tenga comentarios adjuntos, por ejemplo, use su sentido común y no use ese tipo de sugerencias".