Commentaires : Github : des utilisateurs veulent attaquer Microsoft qui utilise leur code pour alimenter son IA

Bonjour,

L’exemple donné par MattS32 n’est pas suffisant pour parler de plagiat.

Donner un exercice pour faire une rotation de tableau à une classe d’étudiant de 30 élèves et vous aurez quasiment le même code à force, donc pour un problème simple les solutions ne sont pas infinies, mais finies et la solution optimale a de grandes chances de revenir souvent. Même chose pour les commentaires.

L’expression i++ est couramment utilisé dans un code de surcroit dans une boucle, dois-je citer le bouquin de Ritchie à chaque fois ???

Bref, ce n’est pas sur une fonction de ce type que l’on peut parler de plagiat, il faut regarder l’usage de l’ensemble du code.

Ensuite, l’IA est une aide à l’autocomplétion, en conséquence le changement de variables n’est pas forcément l’action de l’IA.

Cependant, il est clair qu’il faut surveiller ce genre de chose, voir demander à Microsoft d’inclure le fait que la communauté dans son ensemble à participer à la réalisation du code. Il est difficile de nommer l’exactitude de l’origine des sources.

Le truc, c’est que ce n’est pas une ligne de code qui fait pencher pour un pliagiat, mais la succession de certaines opérations qui ne sont pas forcément évidentes, le nom des variables (après tout, tu pourrais nommer tes variables x45fGSOFEncijfre_FSDOGROJ, mais le simple fait que tu choisisses un nom particulier, c’est dans ton droit d’auteur), etc…

Le problème, c’est que lorsque 2 codes se ressemblent, et que tu attaques en justice, ledit code est présenté à un jury qui piges que dalle dans le pourquoi ou la difficulté d’écrire ce code, mais qui va, très justement d’ailleurs, comparer les 2 textes et décider si plagiat il y a.

Il n’y a qu’à voir la jurisprudence, type Oracle vs Google (dans Android) par exemple, où c’était clair que Google avait copié Oracle pour les API de son langage « Java ». Il a fallu 11 ans et arriver jusqu’à la Cour Suprême pour que finalement, on donne à Google l’excuse d’un « fair use » c’est à dire que, pour écrire une fonction qui fait la même chose (et qui est compatible binairement avec la JVM), il est normal que la ligne de code soit identique.

C’est à dire que pour n’importe quelle boite qui n’est pas un multi-nationale côté en Bourse, le jugement va simplement être « c’est pareil, c’est du plagiat, tu craches… », impossible de remonter jusqu’à la Cour Suprême.

Et j’imagine même pas si ça arrive sur des juridictions croisées, type droit d’auteur en France pour une entreprise américaine en mode Copyright.

Le vrai problème, c’est que « l’AI » ici, c’est pas de l’intelligence, c’est un perroquet à qui on a appris la grammaire. Il sait renommer 2 ou 3 variables et faire en sorte que le code compile, mais il pige que dalle à ce qu’il fait. Donc le responsable, c’est pas le perroquet, mais le M. Loyal qui l’anime ici, donc Microsoft. Sauf que Microsoft ne souhaitant pas être responsable du code vomi par l’animal, se dédouane sur l’entreprise qui utilisera le code en question. Or, comme l’entreprise n’a aucun moyen de savoir d’où provient ledit code, elle est démunie (et c’est sur elle que tomberont les vautours).

Un peu comme lorsque le FSD de Telsa se plante et tue 2 ou 3 personnes au passage et que la responsabilité t’est assignée. Beh ouais, comment-ça, t’as pas deviné/anticipé que la voiture allait subitement tourner à 90° et accélérer comme un taureau fou?

Attention justement, c’est une situation très différente. Dans le cas de cette affaire, la « copie » par Google se limitait bien à l’API (les signatures des fonctions), pas à son implémentation (le code complet des fonctions) et à du code de test de l’API, et c’est pour ça que le juge a reconnu un « fair use » : parce que Google avait bien réimplémenté de son côté tout le code des fonctions de l’API.

Dans le cas présent, pour avoir les mêmes conditions que dans l’affaire Google/Oracle, ça serait si c’était juste la ligne « cs *cs_transpose(const cs *A, csi values) » qui était recopiée du code de Tim Davis, pas le reste de la fonction. Je pense pas que Tim Davis s’en serait plaint si ça c’était limité à ça.

Oui, je ne discute pas de la conclusion (qui me paraît évidente), mais du chemin pour que Google parvienne à l’obtenir (11 ans de procédure, terminé en 2021, Google plusieurs fois condamné pour contrefaçon, etc…).

Ici, c’est pareil. Même si la ligne de code est identique parce que c’est, logiquement, la meilleure manière de l’écrire, qui aura le courage (et la santé financière) de se taper 11 ans de procédure ?
Je ne parle même pas, lorsqu’il s’agit de l’implémentation d’un fonction dont le contenu est identique, alors là, c’est plus du tout du fair use.

Bref, en gros, c’est un bourbier monstre que d’utiliser cet outil, à mon humble avis.

Pour ceux qui se demande encore si c’est une chose récurrente ou pas. Franchement ça me fait de la peine.

Les IA fonctionne sur un mécanisme de convergence des solutions vers la solution la plus efficiente en suivant certains critères. On ne sait pas quelle critères et utiliser pour github copilot mais sûrement des choses simples comme le nombre d’étoiles du projets, nombre de téléchargements du projet, qualité du code (y a des logiciels qui scan la qualité du code depuis longtemps), vitesse d’exécution du code, nombre de téléchargements, activités des développeurs (plus y a de dev actifs sur un projet open source, plus les codes seront review par la communauté et donc mieux écrit), ainsi que la couverture des tests.

La réalité c’est que ça fait longtemps qu’on prône dans le dev le fait de réaliser des fonctions qui ne réalise qu’une seule action et qui sont très très courte (quelque ligne). Pour que ce soit simple de réaliser des tests unitaires etc…

Dans une optique ou le code choisi pour entraîner l’IA été près trié par des algorithmes et/ou humain qui ont pris les codes qui respecte le plus les bonnes pratiques que ce soit indirectement (en regardant les projets open source les plus actifs donc naturellement tendant vers le mieux car review et conseiller par énormément de dev) ou directement en demandant à des experts de trié du code (peu probable parce qui va payer 200k€ plus un seul dev pour trier 1000ligne par jour alors qu’il faudrait en trié des millions voir milliards au total pour entraîner une IA si on parle en milliards de ligne et qu’on considère un expert payer pour la tâche qui toucherait 200k€/an et pourrait analyser que 365 000ligne de code par an pour en garder au final que 10% pour entraîner l’IA car faut trié le code de qualité bah ça fait 36 500ligne par an et faut un milliard de ligne de code ptdr donc t’on IA coûterait environ 30 000 an de salaire de cette expert théorique soit juste 6milliard ce qui en soit est limite une somme possible mais on parle aussi de 30 000ans xD donc bon faudrait 5000 ou 10 000expert de haut niveau dans le monde en analyse de code utiliser juste pour trier du code pendant 3 a 6 ans ? Faut pas non plus être devin pour se dire que c’est impossible. Les entreprises même Microsoft and co galère à recruter des talents c’est pour ça que les salaires sont haut. Donc je doute même qu’une entreprise seul dans le monde actuel puisse avoir recruter 5000experts dev sans parler d’une niche dans le dev lui même).

Quand bien même dans les deux cas le résultat sera le même, le code choisi sera des codes qui respecte la qualité d’être testable par des tests unitaires et faisant qu’une seule chose etc… Donc bon si tu copie mot pour mot du code de 2-3ligne a chaque fois bah oui forcément tu respectes aucune licence. Donc oui ce genre de technologie ce sont des énormes trou juridique et a mon sens ça n’a rien de légal. Autant la technologie a quelques choses de bien quand même car elle aide les développeurs autant faut pas se mentir aucun dev a envie de se retrouver au chômage dans 5ans parce que les IA pourrons coder l’App entière en 3min… Et que tout les applications seront identiques au design près. Enfin bref

En plus de ça il est évident que le code a été près trié via les critères que j’ai donné :
le nombre d’étoiles du projets, nombre de téléchargements du projet, qualité du code (y a des logiciels qui scan la qualité du code depuis longtemps), vitesse d’exécution du code, nombre de téléchargements, activités des développeurs (plus y a de dev actifs sur un projet open source, plus les codes seront review par la communauté et donc mieux écrit), ainsi que la couverture des tests.

Qui sont au final très liée à la forte activité open source d’un projet et sa popularité. Donc aussi a des devs extrêmement impliqué et qui ont du temps devant eux. Autant dire que ça serait du suicide d’utiliser ce type de code alors qu’en face tu as une armée de devs avec des idéaux et du temps pour suspectée, analysée ton code et t’attaquer en justice, devs qui ont le rappelle communique beaucoup entre eux et pourrait limite attaqué tout le code source a plusieurs ou obtenir des infos interne leur permettant de savoir que X entreprises utilise X logiciel IA. Personnellement, je ne m’y risquerait pas en tant qu’entreprise mais chacun sa vie après tout.

Et puis voilà y a aussi des outils anti plagiat et là on va me dire oui mais ça marche pas si on change trop le texte et c’est vrai mais en même temps que se passerait t’il si ce type d’outil n’était pas utiliser sur le code lisible par un humain mais le code tokeniser. Ou qu’on lui assigne des règles pour ignoré les renommage de variables etc…? Bah y a de fortes chances que ce type d’outil puisse facilement prouver le plagiat et permettre des attaques en justice de masse…

Honnêtement je pense que github copilot c’est une étape, ensuite Microsoft fera un nouveau language propriétaire et tout les codes de tout les langages qu’à choisi copilot et qui en plus on été le plus populaire dans les choix des devs qui utilise l’IA seront traduit et formerons une IA pour le nouveau language de programmation en question, en rendant le language propriétaire et utilisable que par leur propre entreprise honnêtement ils auront un avantage stratosphérique vu qu’ils auront un code qu’on ne peut pas facilement reverse ingénieur puis ça serait même illégal de le reverse ingénieur ensuite ils auront une IA surpuissante pour aider à codé dans le langage et troisièmement ils pourront dire que tout le code a été une réécriture et appropriation car pris du language A pour aller sur le language B. Mais pour le moment on y ai pas.

Copilot est une plaie mais en même temps c’est aussi bénéfique perso je pense que ça permettra à beaucoup de devs de progresser car beaucoup vont voir la solution de github copilot, la comprendre et petit a petit formé un sens immersifs sur le bon code. Tout comme on apprend une langue par immersion, la a force de voir, lire et comprendre du code de qualité bah beaucoup de dev vont naturellement être capable d’écrire du code de meilleures qualités.

Déjà l’absurdité remonte à l’époque ou bill gates a déposé des brevets sur du code, et le travail de développement de d’autres … Autrement dit il a semé les graines de la discorde (comme la plupart des gens de sa trempe) afin de limiter et appauvrir la créativité avec des barrières. Donc pas étonnant que Microsoft utilise la plateforme github qu’il a acheté afin d’utiliser et revendre les idées avec une propriété intellectuelle dessus.

c’est pareil partout, même JK Rowling a perdu une partie de ses droits sur harry potter : les idées et le livre c’est le code mais le propriétaire c’est la warner. c’est fondamentalement partout le même problème quand on regarde les choses de loin.