GitHub Copilot y el blanqueo de código abierto

Este artículo es una traducción del artículo «GitHub Copilot and open source laundering» publicado por Drew Devault bajo la licencia CC BY-SA 2.0.

Aviso: soy el fundador de una empresa que compite con GitHub. También soy un desarrollador de y defensor desde hace mucho tiempo del software libre, con un amplio conocimiento de las licencias y la filosofía del software libre. No voy a nombrar a mi empresa en esta publicación para reducir el alcance de mi conflicto de interés.

Hemos visto una explosión del aprendizaje automático en la última década, junto a la explosión en la popularidad del software libre. Al mismo tiempo que el software libre ha dominado el software y ha encontrado su lugar en casi todos los nuevos productos de software, el aprendizaje automático ha aumentado dramáticamente en sofisticación, facilitando interacciones más naturales entre humanos y ordenadores. Sin embargo, pese a su auge paralelo en la computación, estos dos dominios permanecen filosóficamente distantes.

Aunque algunas empresas llamadas con nombres osados podrían sugerir lo contrario, el área del aprendizaje automático no ha disfrutado de casi ninguna de las libertades promovidas por el movimiento del software libre y de código abierto. Gran parte del código con relación con el aprendizaje natural está disponible públicamente, y hay muchos artículos de acceso abierto disponibles para que los lea cualquiera. Sin embargo, la clave para el aprendizaje automático es el acceso a conjuntos de datos de gran calidad y a muchísimo poder computacional para procesar esos datos, y estos dos recursos todavía están guardados bajo llave por casi todos los participantes de este área1.

La barrera esencial de entrada para proyectos de aprendizaje automático es superar estos dos problemas, que normalmente son muy difíciles de conseguir. Para producir un conjunto de datos de alta calidad bien catalogado se requieren generalmente miles de horas de trabajo2, una tarea que puede llegar a costar millones de dólares. Por tanto, cualquier enfoque que baje esta cifra es muy deseable, incluso si el coste es hacer compromisos éticos. Con Amazon toma la forma de explotación de la economía de los pequeños encargos. Con GitHub toma la forma de incumplir los términos de las licencias de software libre. En este proceso han creado una herramienta que facilita el blanqueo a gran escala de software libre como software no libre para sus clientes, a quienes GitHub ofrece negación plausible mediante un algoritmo inescrutable.

El software libre no es un regalo sin condiciones. Existen condiciones para su uso y reutilización. Incluso las denominadas licencias de software «liberales» imponen requisitos de reutilización, como la atribución. Citando la licencia de MIT:

Por la presente se concede el permiso [...] sujeto a las siguientes condiciones:

El anterior aviso de copyright y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.

O la igualmente «liberal» licencia de BSD:

Se permite la redistribución y el uso en forma de código fuente y binario, con o sin modificación, siempre que se cumplan las siguientes condiciones:

Las redistribuciones del código fuente deben conservar el aviso de derechos de autor anterior, esta lista de condiciones y el siguiente descargo de responsabilidad.

Al otro lado del espectro, las licencias copyleft, como la Licencia Pública General de GNU o la Licencia Pública de Mozilla, van más allá y no solo les exigen atribución a las obras derivadas, sino que estas también se publiquen con la misma licencia. Citando la GPL:

Puede transmitir un trabajo basado en el Programa, o las modificaciones para producirlo a partir del Programa, en forma de código fuente bajo los términos de la sección 4, siempre que también cumpla todas estas condiciones:

[...]

Debe licenciar el trabajo completo, en su totalidad, bajo esta Licencia a cualquier persona que entre en posesión de una copia.

Y la Licencia Pública de Mozilla:

Toda distribución del Software Amparado en Forma de Código Fuente, incluyendo cualquier Modificación que Usted cree o a la que contribuya, debe realizarse bajo los términos de esta Licencia. Debe informar a los destinatarios de que la Forma de Código Fuente del Software Cubierto se rige por los términos de esta Licencia, y cómo pueden obtener una copia de la misma. Usted no puede intentar alterar o restringir los derechos de los destinatarios en la Forma de Código Fuente.

Las licencias de software libre imponen obligaciones a los usuarios mediante los términos que cubren la atribución, el sublicenciamiento, la distribución, patentes, marcas registradas y relaciones con leyes como la Digital Millennium Copyright Act. La comunidad del software libre no es desconocedora de las dificultades para hacer cumplir estas obligaciones, que algunos grupos ven demasiado onerosas. Pero por lo onerosas que le parezcan estas obligaciones a alguno, uno está, no obstante, obligado a cumplirlas. Si crees que la fuerza del derecho de autor debería proteger tu programa privativo, entonces tienes que estar de acuerdo en que protege igualmente las obras de código abierto, a pesar de la inconveniencia o coste asociados con esta verdad.

El Copilot de GitHub está entrenado con programas que se rigen por estos términos, y falla al respetarlos, y permite que clientes accidentalmente fallen al respetar ellos mismos estos términos. Algunos argumentan sobre los riesgos de una «sorpresa copyleft», en la que alguien incorpora un trabajo licenciado por la GPL en su producto y se sorprende al darse cuenta de que está obligado a publicar su producto bajo los términos de la GPL también. Copilot institucionaliza este riesgo, y cualquier usuario que desee usarlo para desarrollar software no libre debería ser bien recomendado para no hacerlo, o sino podría verse obligado a cumplir esos términos, quizás en última instancia a liberar sus obras bajo los términos de una licencia que no es deseable para sus objetivos.

En esencia, la discusión se reduce a si el modelo constituye o no una obra derivada de sus entradas. Microsoft argumenta que no lo es. Sin embargo, estas licencias no son específicas en cuanto a los medios de derivación; el enfoque clásico de copiar y pegar de un proyecto a otro no tiene por qué ser el único medio para que se apliquen estos términos. El modelo existe como resultado de la aplicación de un algoritmo a estas entradas, por lo que el propio modelo es una obra derivada de sus entradas. El modelo, utilizado después para crear nuevos programas, transmite sus obligaciones a esas obras.

Todo esto supone la mejor interpretación del argumento de Microsoft, con una fuerte dependencia del hecho de que el modelo se convierte en un programador de propósito general, habiendo aprendido significativamente de sus entradas y aplicando este conocimiento para producir un trabajo original. Si un programador humano adoptara el mismo enfoque, estudiando software libre y aplicando esas lecciones, pero no el código en sí, a proyectos originales, yo estaría de acuerdo en que su conocimiento aplicado no está creando obras derivadas. Sin embargo, no es así como funciona el aprendizaje automático. El aprendizaje automático es esencialmente un motor glorificado de reconocimiento y reproducción de patrones, y no representa una auténtica generalización del proceso de aprendizaje. Quizás sea capaz de una cantidad limitada de originalidad, pero también es capaz de degradarse al simple caso de copiar y pegar. He aquí un ejemplo de Copilot reproduciendo, textualmente, una función que se rige por la GPL, y que por tanto se regiría por sus términos:

Continúa leyendo GitHub Copilot y el blanqueo de código abierto