- La comunidad de QEMU actualizó recientemente su política. Se prohíbe el uso de generadores de código con IA (por ejemplo, Copilot, ChatGPT, etc.) y el envío de código producido mediante esas herramientas
define policy forbidding use of AI code generators
- Recientemente ha aumentado de forma acelerada el interés por el uso de generadores de código con IA, pero la interpretación de licencias de los resultados producidos por esas herramientas aún no es ampliamente aceptada en la industria
- Los principales proveedores sostienen que no hay problema y que se puede elegir libremente la licencia, pero existe un conflicto de interés por su parte
- Como los generadores de código con IA se crean a partir de datos de entrenamiento bajo diversas licencias, todavía no existe consenso en la industria sobre los problemas de licencia de sus resultados
- QEMU exige en el DCO (Developer Certificate of Origin) que quien contribuye tenga claramente el derecho de aportar código bajo la licencia del proyecto
- Se menciona explícitamente que, en el caso de código hecho con generadores de código con IA, es difícil demostrar el cumplimiento de las cláusulas b/c del DCO
- Por ello, se introdujo una política que no permite contribuciones de código al proyecto QEMU cuando el uso de generadores de código con IA sea evidente o exista sospecha clara
Flexibilidad de la política y manejo de excepciones
- El desarrollo de software asistido por IA aún está en una etapa inicial, por lo que es muy probable que las cuestiones legales se resuelvan en el futuro
- Se prevé que, a medida que las herramientas evolucionen, algunas puedan llegar a usarse de forma segura en proyectos de código abierto
- Por ahora se aplica primero una política estricta y segura, con posibilidad de flexibilizarla más adelante si hace falta
- Las solicitudes de excepción se revisarán caso por caso para decidir si se permiten
1 comentarios
Comentarios en Hacker News
CONTRIBUTING.mdla siguiente política sobre contribuciones de código con LLMPolítica de contribuciones generadas con LLM
La biblioteca Color es una biblioteca llena de matemáticas complejas y decisiones sutiles. Todo issue o PR debe estar redactado bajo el entendimiento profundo del propio remitente, y en particular, en el caso de PR, el desarrollador debe certificar el DCO de cada commit. Si se usó ayuda de un LLM para redactar un PR, debe indicarse explícitamente en el mensaje del commit y en el PR. Si se detecta ayuda de LLM sin evidencia declarada, el PR será rechazado. Todo contenido generado por LLM enviado sin revisión será rechazado automáticamente
También planeo poner en
Desde la posición de alguien que lleva un proyecto por su cuenta, trato de mantener un equilibrio, pero personalmente no prefiero contribuciones de código con LLMSECURITY.mduna LLM-Generated Security Report Policy, según la cual no aceptaré en ningún caso reportes de seguridad generados por LLMMe cuesta muchísimo imaginar que alguien pueda enviar un PR sin entender siquiera su propio código. Sí me molesta un poco que, por culpa de esa gente, las Policies terminen limitando incluso cuando yo uso LLM solo a nivel de autocompletado.
Me gustaría poder encargarle a Copilot tareas de refactorización automática, pero cuando lo pruebo casi siempre rompe todo, y como tiende a regenerar bloques completos, al final me hace más lento que hacerlo a mano.
Algo curioso es que si estoy escribiendo un bug, muchas veces Copilot completa ese bug tal cual. Incluso autocompleta errores obvios de contexto, como variables con nombres mal escritos
El trabajo de alto nivel que hago jamás podría delegárselo a una IA, pero las tareas repetitivas y de poca importancia sí las está absorbiendo para acelerar el ritmo. Por ejemplo, si le paso a Claude Code un archivo CSV con resultados de benchmarks de base de datos y le pido que conecte distintos gráficos con análisis de outliers, termina rápido algo conceptualmente fácil pero que consume mucho tiempo en buscar librerías o hacer setup
He estado pensando qué significa realmente “entender” código. Uno de mis proyectos consiste en meter un backend de almacenamiento completamente nuevo en un sistema existente de orquestación de VM. Como no conozco el código existente y tampoco me sobra el tiempo para implementarlo yo directamente, he estado armando un clúster de pruebas y corriendo varios escenarios, así que sí tengo bien claro el panorama general desde el diseño y las pruebas
Yo también, como mantenedor de open source, puedo imaginar lo estresante que es recibir PR de “slop” de LLM de baja calidad. Al final, el mantenedor tiene que revisar el código sí o sí, lo entienda o no el autor.
Creo que en adelante habrá que encontrar formas de aprovechar bien estas herramientas y, al mismo tiempo, de dar señales a otros desarrolladores sobre el nivel de calidad del código que se está enviando. Algo que aprendí de bugs sutiles encontrados en el port inicial de ZFS para Linux es que las pruebas exhaustivas son tremendamente importantes, tanto como la revisión y autoría línea por línea por parte de humanos
Dotnet Runtime está adoptando la IA de forma activa. Desde fuera quizá algunos se burlen, pero hay que notar que lo apoyan ingenieros excelentes como Stephen Toub y David Fowler.
A las empresas les recomendaría que, cuando IBM llegue la próxima vez a venderles servicios de IA, busquen un socio realmente orientado al futuro.
Como alguien de North Carolina, deseo que IBM y RedHat encuentren el rumbo correcto
Entiendo a quien evita la IA por riesgo legal, pero también me pregunto si no se está exagerando. Quien crea haber reducido una posibilidad a cero probablemente todavía no lo ha pensado lo suficiente
case, Copilot detecta el patrón y reduce muchísimo la cantidad de entrada manualMi cerebro también ha sido entrenado con muchísimo código closed source, así que señalo que la discusión de copyright sobre IA tiene algo de NIMBY occidental. Me preocupa que, si seguimos rechazando tecnología increíble por estos “qué tal si” legales, la civilización occidental misma pueda terminar debilitándose
Separado de la política de prohibir contribuciones con IA, incluso haría falta delimitar con claridad “en estas partes sí se puede usar IA”. Por ejemplo, el setup de CI de QEMU no es un área central de seguridad. Para contribuciones de casos de prueba o entornos nuevos e interesantes, perfectamente podría permitirse IA bajo ciertas condiciones
En definitiva, “por ahora no lo aceptamos” es la opción menos compleja y menos dramática para todos
Como material relacionado, se adjuntan enlaces a la licencia de QEMU y a la lista de licencias no libres
Pero me pregunto si hay alguna forma práctica de distinguir entre código generado por IA y código que un humano copió de alguna parte. En el open source cualquiera puede contribuir, y del mismo modo los humanos también pueden verse influidos por otras fuentes al escribir código
Desde la perspectiva actual, me parece que el código generado por IA no tiene tanto una identidad independiente como que se parece más a una herramienta en manos de humanos
Ya hasta siento que esta analogía se alargó demasiado como para seguir usándola
Es como si yo dibujara un muñequito de palitos y alguien dijera: “quizá copiaste ese dibujo de palitos de otra persona, así que no tienes derecho a enviarlo”
El objetivo real de la política es, al final, construir una justificación para poder decir “no había nada que hacer” cuando inevitablemente alguien termine enviando algo mezclado con código de IA. No creo que quienes redactaron la política ignoren que en el fondo es inútil
Además de los temas legales, claramente hay muchos otros problemas al usar código de IA