Cher journal, je t'écris pour répondre à un billet que tu as publié plus tôt.
Pour le résumer avec un peu de mauvaise foi : utiliser des IA génératives, c'est trop cool.
Contexte ?
Je ne vais ici parler que d'IA générative, pas d'autres méthodes d'IA comme celles qui permettent de faire de la classification ou du repliement de protéines1.
Je ne suis pas un expert en IA et je n'utilise pas d'IA générative, je n'ai donc qu'un point de vue extérieur alimenté par les différentes vulgarisations auquel je n'ai pas pu échapper. De plus, comme vous l'avez sans doute déjà noté, j'ai un avis négatif sur l'usage de ces IA génératives, qui donc a orienté ma recherche d'information vers les aspects négatifs.
Maintenant que je me suis situé, allons‑y !
Vous n'avez aucune garantie
Je ne suis pas forcément le plus compétent pour écrire une description du fonctionement des IA génératives mais il semble qu'il est nécessaire de rappeler certains points sur le fonctionnement des IA génératives.
Les IA génératives n'écrivent pas de code, on peut dire qu'elles ne font que prédire le prochain mot/symbole le plus probable par rapport au contexte et à ses données d'apprentissage. Il se trouve que souvent c'est le bon mot/symbole vu que les données d’entraînement contiennent du code qui a priori fonctionne. C'est une garantie stochastique que dans 99.9999 % des cas vous aurez du code juste, mais vous ne pouvez pas en être sûr, vous devrez toujours vérifier votre code.
De plus certaines études montrent que les IA de codage ne feraient pas gagner de temps de développement mais en plus déstructureraient la base du code et créeraient plus de bugs. Je suis d’accord que les effets décrits ne sont pas évidents à mesurer. Il est déjà compliqué d'évaluer la qualité d'un code, alors imaginez la complexité de comparer la qualité de deux codes développés ou non avec une IA générative. Je pense que globalement que l'on manque de recul par rapport à l'effet de l'utilisation de ces outils sur la qualité de nos productions.
On peut se dire que ces inconvénients ne pèsent pas lourd par rapport aux avantages offerts par les IA génératives. Rassurez-vous, j'ai plein d'autres critiques.
Vous utilisez GitHub Copilot ? Vous êtes un plagiaire !
Je sais que cette accusation est assez grave, surtout dans le milieu de la recherche, mais je ne lâche pas comme ça que pour le plaisir de vous provoquer.
Microsoft a entraîné GitHub Copilot sur du code source disponible publiquement, généralement sous licence libre.
Ces licences libres sont assez diverses et imposent des règles variées aux gens qui utilisent ou réutilisent leurs codes, notamment l'obligation de citer l'auteur original du code repris.
D'autres licences logicielles ont une clause de copyleft qui exige que le code dérivé soit placé sous la même licence ou une licence logicielle similaire (licences contaminantes).
Comment savoir quel licence appliquée à des résultats d'une IA générative entraînée sur du code sous licence libre contaminante ? Cette question reste ouverte. Felix Reda (ex-député européen du parti pirate) argumente qu'attaquer GitHub Copilot sur ce point n'est pas une bonne idée. Mais sachez tous de même qu'une action en justice est en cours contre Microsoft, car avec un peu de prompt engineering, on peut arriver à obtenir des fragments entiers de code issus des données d’entraînement sans mention de la source originale, ce qui enfreint le droit à la propriété intellectuelle.
Vous payez pour donner des informations à une entreprise privée
Pour que Copilot puisse écrire du code dans votre contexte de développement, il faut que votre contexte de développement soit envoyé sur les serveurs de Microsoft. Par conséquent, même le code source que vous avez écrit vous-même est envoyé à Microsoft. Alors pour vos projets personnels, c'est votre problème, mais quand vous travaillez pour quelqu'un (ou même l'État), ce code n'est pas à vous. Est-ce que vous avez vraiment le droit de l'envoyer à une autre société privée ?
De plus, votre production dépend du bon vouloir d'une autre entreprise. Alors certes, vous êtes client et vous avez un certain nombre de droits liés à ce contrat si jamais d'un coup il vous coupe l'accès à leurs services ou vous vole votre code. Vous pourrez aller en procès, mais en face c'est Microsoft ou une autre grosse entreprise, je suis sûr qu'illes ont un meilleur service juridique que vous et qu'illes pourront faire traîner la procédure autant qu'illes veulent.
Autre problème posé par cette relation de dépendance avec la compagnie qui a entraîné et qui fournit votre IA générative c'est que vous ne contrôlez pas les mises à jour. Le modèle peut avoir été entraîné avec des données trop anciennes. Par exemple, Github Copilot ne connaît pas des fonctionnalités récentes d'Angular ou même de Powershell. Vous allez me dire : "Ok, c'est pas pratique pour certains cas mais le modèle va être réentraîné, ou si on lui permet de faire des recherches dans la doc, le problème sera résolu" et vous avez raison, mais vous êtes toujours dépendant du bon vouloir de l'entreprise, mais surtout cet entraînement/cette analyse n'est pas gratuit, ni économiquement, ni écologiquement.
C'est durable ?
Actuellement, il semble de bon ton de faire attention à sa consommation énergétique et à sa production de gaz à effet de serre pour des raisons qui m'échappent ؟
Il existe même des collectifs académiques qui étudient la question et produisent des outils pour évaluer les effets de la recherche et proposent des solutions pour en réduire l’impact sur l’environnement et le climat.
Est-ce que GitHub Copilot produit du CO2 ? La réponse est compliquée à trouver pour GitHub Copilot spécifiquement, mais on peut se douter que l’entraînement des modèles, l'inférence des réponses et les communications réseau ne sont pas gratuits énergétiquement parlant.
Les IA génératives ne sont pas les seules à produire du CO2 — et même notre usage actuel de l'informatique est déjà trop polluante — mais il semblerait que le bilan carbone des GAFAM a tendance à pas mal augmenter ces dernières années :
- +30 % en 2023 pour Microsoft
- +50 % sur les 5 dernières années pour Google
Selon des prévisions, les émissions de gaz effet de serre de 2030 des data centres pourraient être multipliées par 3 à cause des IA génératives.
Même des gens qui travaillent dans l'IA comme Hugging Face ont écrit un billet de blog pour dire que la consommation énergétique des IA est un problème.
C'est en codant qu'on devient codeur
Oui, coder une 50ᵉ fois la même fonction pour lire un fichier, c'est pénible, mais déjà il y a d'autres solutions que de laisser faire votre IA générative préférée.
Vous pourriez écrire une bibliothèque logicielle pour y mettre votre fonction, par contre cela va demander de :
- Généraliser votre code
- Rédiger des tests
- Maintenir votre code
Par conséquent vous aurez appris de nouvelles compétences, et si vous avez mis votre bibliothèque sous licence libre, vous avez contribué à la connaissance globale.
Toutes les petites fonctions ne sont pas intéressantes à mettre dans une bibliothèque, mais vous pouvez utiliser un système de snippet qui tourne en local sur votre machine et pour beaucoup moins d'énergie que celle demandée par l'inférence d'un réseau de neurones.
Même si effectivement, on n'utilise pas les alternatives possibles, on ne réécrit jamais exactement le même code. Entre-temps on a appris de nouvelles choses, on va utiliser une nouvelle architecture, une autre bibliothèque, nommer différemment les variables, mieux documenter son code.
Comme on ne se baigne jamais deux fois dans le même fleuve, on n'écrit jamais le même reverse complément.
Conclusion
Tout comme sur l'usage du mot "numérique" à la place de "digital" et "chiffré" plus tôt que "crypté", je sais que j'ai déjà perdu ce combat. Mais j'ai le sentiment que quand on parle d'IA générative, soit c'est trop cool, soit c'est la fin du monde.
Certes, je ne suis pas pour l'usage des IA génératives, mais ce n'est pas non plus l'apocalypse. C'est une solution technique qui pose de nombreux problèmes, juridiques, écologiques, de dépendance, mais c'est un problème entre vous, votre conscience et les services juridiques de votre employeur.
Mais pour moi mon code, c'est mon art et comme disait Joanna Maciejewska :
"Je veux que l'IA fasse ma lessive et ma vaisselle, comme ça je peux faire de l'art et écrire, plutôt que l'IA fasse mon art et mon écriture pour avoir le temps de faire ma lessive et ma vaisselle".
Conclusion de la conclusion
Pendant la relecture de ce billet, je me suis rendu compte (avec l'aide des relecteurs) que globalement ma conclusion était triste et que je ne proposais pas de solution.
Ou du moins on pourrait lire ma conclusion comme suit : "Y'a rien à faire, continuez à écrire votre code sans IA dans votre coin et au moins nous aurons la victoire morale", ce qui ne me plaît pas. La posture morale est assez peu intéressante sauf si on aime se draper dans sa pureté. Surtout, ça résout assez peu de problèmes.
La prohibition ?
On pourrait interdire purement et simplement les IA génératives. On a de nombreux exemples dans l'histoire qui nous montrent bien que la prohibition ne marche pas et que les effets de bord peuvent être très violents.
Autre problème : il va falloir définir juridiquement ce qu'est une IA générative. Je ne suis pas juriste, mais la tâche me semble ardue. La prohibition, c'est non.
Quel est vraiment le problème ?
Tâchons de revenir à l'essentiel de ce qui me gêne vraiment avec les IA génératives.
Le fait que ça utilise de la connaissance et du savoir sans citer ses productrices. Vu que je considère que la propriété, c'est du vol, je vous laisse deviner ma considération pour la propriété de choses immatérielles. Même les licences libres ne sont qu'un moyen de permettre le partage de la connaissance dans un monde capitaliste.
Les IA génératives vous rendent dépendants du bon vouloir d'un service/entreprise/personne externe. Se rendre complètement indépendant est possible, mais demande beaucoup d'efforts et prive de beaucoup de confort, notamment d'ordinateur, de temps pour lire, créer et s'amuser. D'autant que l'on peut autohéberger son IA, donc on assume tous les coûts mais on est seul responsable, on peut même aller jusqu’à l’entraîner soi-même.
Le dernier problème que j'ai soulevé c'est la consommation énergétique. Allons vivre dans le magnifique pays de la théorie : vous avez vos jeux de données d’entraînement, vous avez la puissance de calcul pour entraîner votre modèle et pour le faire tourner. Même dans le pays de la théorie, vous allez avoir besoin d’électricité pour tous ces calculs. Et même si l'efficacité des algorithmes ne fait que s’améliorer, votre production de code consommera toujours plus d'énergie avec une IA que sans IA, alors que comme on l’a vu, il me semble qu'il existe des alternatives, certes moins génériques, mais aussi moins coûteuses.
Payons le vrai coût de l'énergie
Le problème qui m'embête le plus avec l'utilisation des IA génératives c'est la consommation d'énergie et la pollution engendrée par cette production d’énergie. On pourrait faire payer plus cher leur électricité au data centres d’entraînement et d'inférence d'IA génératives. Mais pourquoi s’arrêter aux IA génératives ? Appliquons ça au transport et tous nos secteurs, une taxe carbone en somme.
Ce n'est pas une solution qui me plaît, car tout le monde payera le même prix et du coup les riches auront le droit de polluer juste parce qu'ils ont plus d'argent et qu'on peut ce dire qu'il y a des consommations d’énergie qui sont plus légitime que d'autre.
On pourrait trouver des systèmes de compensation pour réduire ces problèmes. En définitive et en dernière analyse la solution qui me plaît le plus aux problèmes des IA génératives, une solution politique compliqué a mettre en place, qui demande beaucoup de négociation pour déterminer ce qu'on doit taxé, ou alors une révolution. Essayons de trouver une solution un peu applicable.
Le grand soir, c'est pas pour demain
Je vous propose donc la propagande par le fait ! Je ne vous encourage pas à aller poser des bombes dans les data centres ni à kidnapper des CEO de startups de l'IA contre rançon. Mon idée et plutôt de continuer à écrire du code sans IA, et plutôt que de le faire tout seul dans notre coin, de le revendiquer, et de refuser l'intégration de code généré par IA dans les projets dont nous sommes responsables. On pourrait porter la bonne parole en rajoutant un joli badge du plus bel effet dans nos README avec un lien pointant vers une page décrivant la démarche.
Alors, c'est pas la glorieuse après-midi et encore moins le joyeux matin2, ce n'est pas une démarche révolutionnaire qui vas rapidement faire disparaître l'usage des IA génératives, mais c'est déjà un peu plus combatif que ce que pouvait laisser entendre ma conclusion précédente.
Remerciement
Je remercie évidemment les administrateurs du blog et les relecteurs de ce billet : Lana, ZaZo0o, Ista, Azerin, Marion.
P.S. : Cet article a été corrigé par un logiciel libre dédié à cette tâche et n'utilisant pas de méthode d'Intelligence Artificielle.
- Quoi qu'on pourrait parler du fait qu'AlphaFold 3 n'est utilisable que via la plateforme AlphaFold serveur. Ce qui ne correspond pas aux bonnes pratiques du domaine et que malgré des demandes répétées même un reviewer n'a pas pu avoir accès à ce code source. ↩︎
- C'est une référence à l'expression "Le Grand Soir" que Wikipedia définie comme un chiliasme qui désigne le jour de la révolution sociale. ↩︎
Laisser un commentaire