- La communauté QEMU a récemment modifié sa politique. L’utilisation de générateurs de code IA (par ex. Copilot, ChatGPT, etc.) ainsi que la soumission de code via ces outils sont interdites
define policy forbidding use of AI code generators
- L’intérêt pour l’utilisation de générateurs de code IA a récemment fortement augmenté, mais l’interprétation de la licence de leurs productions n’est pas largement acceptée dans l’industrie
- Les principaux fournisseurs affirment qu’il n’y a pas de problème et qu’il est possible de choisir librement une licence, mais ils sont en situation de conflit d’intérêts
- Comme les générateurs de code IA sont conçus à partir de données d’entraînement issues de licences variées, aucun consensus n’existe encore dans l’industrie sur les questions de licence des productions
- QEMU exige, via le DCO (Developer Certificate of Origin), que les contributeurs disposent clairement du droit de contribuer leur code au titre de la licence du projet
- Il est explicitement indiqué que, dans le cas d’un code utilisant un générateur de code IA, il est difficile de démontrer le respect des clauses b/c du DCO
- QEMU introduit donc une politique selon laquelle si l’utilisation d’un générateur de code IA est clairement établie ou soupçonnée, la contribution de code au projet QEMU ne sera pas autorisée
Souplesse de la politique et gestion des exceptions
- Le développement logiciel assisté par IA en est encore à ses débuts, et il est probable que les questions juridiques soient résolues à l’avenir
- À mesure que les outils progressent, certains pourront probablement être utilisés en toute sécurité dans des projets open source à l’avenir
- Pour l’instant, une politique stricte et prudente est appliquée en priorité, avec une possible évolution si nécessaire par la suite
- Les demandes d’exception seront examinées au cas par cas afin de décider de leur acceptation
1 commentaires
Avis Hacker News
CONTRIBUTING.mdla politique suivante sur les contributions de code via LLMLLM-Generated Contribution Policy
La bibliothèque Color est remplie de mathématiques complexes et de décisions subtiles. Chaque issue ou PR doit être rédigée à partir d’une compréhension approfondie par son auteur, et pour les PR en particulier, le développeur doit attester une DCO pour chaque commit. Si une PR a été rédigée avec l’aide d’un LLM, cela doit être explicitement indiqué dans le message de commit et dans la PR. Si une aide d’un LLM est détectée sans preuve déclarative, la PR sera rejetée. Tout contenu généré par LLM soumis sans relecture sera systématiquement rejeté
Dans
En tant que personne seule responsable du projet, j’essaie de garder un équilibre, mais personnellement je n’apprécie pas les contributions de code via LLMSECURITY.md, j’ai aussi l’intention d’ajouter une LLM-Generated Security Report Policy, selon laquelle aucun signalement de sécurité généré par LLM ne sera acceptéJ’ai du mal à imaginer que quelqu’un puisse soumettre une PR sans même comprendre son propre code. Cela me frustre un peu que, à cause de ces politiques, même mon usage du LLM au niveau de l’autocomplétion puisse être restreint à cause de personnes comme ça.
J’aimerais bien confier à Copilot des tâches de refactoring automatique, mais à chaque essai cela casse tout dans la plupart des cas, et comme il régénère souvent des blocs entiers, je finis par perdre plus de temps qu’en le faisant moi-même.
Ce qui est amusant, c’est que si je suis en train d’introduire un bug pendant que je tape, Copilot a souvent tendance à compléter ce bug lui aussi. Il autocomplète même des erreurs de contexte évidentes, comme des fautes de frappe dans les noms de variables
Je ne peux absolument pas lui confier mon travail de haut niveau, mais pour des tâches répétitives et peu critiques, l’IA me fait gagner du temps. Par exemple, si je donne à Claude Code un fichier CSV de résultats de benchmark de base de données et que je lui demande de relier différents graphiques et analyses d’outliers, il boucle rapidement un travail conceptuellement simple mais long à cause de la recherche de bibliothèques ou de la mise en place de l’environnement
Je réfléchis à ce que veut dire « comprendre » du code. Un de mes projets consiste à ajouter complètement un nouveau backend de stockage à un système existant d’orchestration de VM. Comme je ne connais pas le code existant et que je n’ai pas vraiment le temps de tout implémenter moi-même, je construis tout de même un cluster de test et je fais tourner divers scénarios, ce qui me donne une compréhension suffisante de la vue d’ensemble du point de vue conception et tests
Moi aussi, en tant que mainteneur open source, j’imagine très bien à quel point les PR pleines de « slop » LLM de mauvaise qualité peuvent être stressantes. Au final, que l’auteur comprenne ou non son code, le mainteneur doit de toute façon le relire.
À l’avenir, il faudra sans doute trouver des moyens d’utiliser correctement ces outils et de signaler aux autres développeurs le niveau de qualité du code soumis. Ce que m’a appris un bug subtil trouvé dans les premiers portages de ZFS sur Linux, c’est qu’un test rigoureux est extrêmement important, autant qu’une relecture et une écriture ligne par ligne par des humains
Dotnet Runtime, de son côté, adopte l’IA de manière très proactive. On peut s’en moquer de l’extérieur, mais il faut noter que d’excellents ingénieurs comme Stephen Toub et David Fowler la soutiennent.
Aux entreprises, je conseillerais de chercher un partenaire vraiment tourné vers l’avenir la prochaine fois qu’IBM viendra leur vendre des services IA.
En tant que personne originaire de Caroline du Nord, j’espère que IBM et Red Hat prendront la bonne direction
Je comprends ceux qui évitent l’IA à cause du risque juridique, mais je me demande aussi si certains ne s’inquiètent pas trop. Ceux qui croient avoir réellement réduit une possibilité à zéro n’ont probablement pas encore assez réfléchi
case, Copilot peut détecter le motif et réduire énormément la saisieMon cerveau aussi a appris à partir de beaucoup de code source fermé, et je pointe le fait que le débat occidental sur le copyright autour de l’IA ressemble à une forme de NIMBY. À force de rejeter des technologies formidables au nom de ces hypothèses juridiques, on pourrait finir par faire s’effondrer la civilisation occidentale elle-même
Indépendamment d’une interdiction des contributions IA, je pense qu’il faudrait au contraire définir clairement des zones où l’IA est autorisée. Par exemple, la configuration de la CI de QEMU n’est pas un domaine central pour la sécurité. Pour des contributions portant sur de nouveaux cas de test ou environnements intéressants, il serait tout à fait possible d’autoriser l’IA sous certaines conditions
Au final, « on n’en accepte pas pour l’instant » reste le choix le moins complexe et le moins dramatique pour tout le monde
Sont joints comme références la licence de QEMU et la liste des licences non libres
Mais je me demande s’il existe un moyen pratique de distinguer du code généré par IA d’un code simplement recopié quelque part par un humain. Dans l’open source, comme tout le monde peut contribuer, les humains sont eux aussi influencés par d’autres sources de code
De mon point de vue actuel, le code généré par IA n’a pas tant une identité indépendante qu’il n’est un outil de plus entre les mains d’un humain
Et l’auteur trouve que même cette analogie a déjà été trop tirée en longueur
C’est un peu comme si je dessinais un bonhomme bâton puis qu’on me disait : « tu n’as peut-être pas le droit de soumettre ce dessin, car il pourrait copier le bonhomme bâton de quelqu’un d’autre »
Le vrai but de cette politique semble surtout être de se ménager une excuse pour le jour où quelqu’un soumettra malgré tout quelque chose mélangé à du code IA : on pourra alors dire « on n’y pouvait rien ». J’ai du mal à croire que ses rédacteurs ignorent eux-mêmes à quel point elle est vide de sens
Au-delà des enjeux juridiques, il existe clairement aussi beaucoup d’autres problèmes liés à l’usage de code IA