L’écriture par l’IA de son propre code

L’IA générative peut écrire (sur instruction humaine) d’immenses librairies logicielles de bouts de code éventuellement fonctionnel (les briques). Mais rien ne garantit que l’on parviendra à l’intégrer à l’existant (le travail du maçon et le ciment).

Midjourney : L’écriture par l’IA de son propre code, peinture expressionniste abstraite, couleur Electric Lime --ar 16:9

Contexte

La question de l’écriture par l’IA de son propre code se pose surtout dans le cadre d’une croyance (largement basée sur un anthropomorphisme trompeur) que l’IA, machine ou organisme autonome, pourrait plus ou moins s’émanciper, se transformer, et partant se “débrouiller toute seule” pour le meilleur ou pour le pire. De manière plus informée, on se demande s’il va rester du travail pour les programmeurs. [1]

[1] https://arxiv.org/abs//2306.09896

Repositionnement technoréaliste du problème

Nous avons déjà expliqué au chapitre des transformations de l’IA, que ces programmes induisent leurs propres changements de paramètres, poids de vecteurs et variables dans la limite de contraintes calculatoires. Nous nous intéressons ici à une réécriture plus fondamentale, non pas seulement une optimisation du calcul, mais une réécriture des fonctions déclaratives et impératives, pouvant aller jusqu’à un changement des fonctionnalités logicielles. 

Il faut bien voir que dans une large mesure, le code informatique existant est déjà en grande partie hors de contrôle. Non pas qu’il cherche à échapper au programmeur, mais parce qu’il procède de décennies de “sédimentation” de milliards de lignes de code empilées, organisées dans des programmes et logiciels intriqués et pour ne rien arranger, dont certains sont en constante évolution pour des raisons techniques ou commerciales. La question immédiate nous paraît être bien davantage cette dette technologique logicielle, que la question de l’IA qui s’échapperait de sa cage. Voilà le vrai marché émergent, et en forte croissance, de l’informatique : le maintien du système d’information mondiale dans des proportions et une organisation soutenables !

Pourtant, la question se pose, puisque l’on sait que les moteurs génératifs produisent, à partir d’une commande opportune (prompt) du code exécutable. On peut alors tout à fait imaginer que cette partie de prompting en langage naturel soit elle-même générée par IA, c’est-à-dire qu’elle serait, dans un contexte donné, la commande la plus probable au vu d’un corpus, déclenchant une nouvelle production. De cette manière, l’IA pourrait se mettre à écrire de manière spontanée du nouveau code logiciel.

La question est donc de savoir dans quelle mesure l’IA peut transfigurer son architecture interne, à tel point que l’on ne reconnaisse plus le système d’information après cette opération. Nous voulons insister que cette menace est déjà largement réalisée : les transformations des systèmes d’informations sont déjà largement subies. (mises à jour de sécurité, montées de version etc.) Les organisations n’ont souvent pas le système d’information idéal qu’elles voudraient avoir.

Problématique

La question principale nous semble être de savoir dans quelle mesure ce code produit artificiellement sera opérationnel. Ne risque-t-il pas de faire bugger les programmes, un peu comme le ferait un développeur qui produirait beaucoup de nouveau code, mais sans du tout comprendre ce qu’il fait ?

Traitement de l'implicite

Les résultats en langage naturel de l’IA générative nous paraissent bons, que parce que nous disposons d’un cerveau capable d’interpréter les suggestions, de “boucher les trous”, d’expliciter l’implicite. Nous pouvons alors apprécier le langage naturel écrit par IA, surtout parce que nous ne sommes pas des machines très obéissantes comme le sont les ordinateurs : nous n’avons pas besoin que les instructions que nous recevons soient parfaitement valides… nous n’avons même pas besoin de recevoir seulement des instructions. 

Au contraire, un agent numérique ou un bot a besoin que ses intrants soient tous valides vis-à-vis de son propre système de traitement. A défaut de quoi, il s’arrête, ou il se met à produire des résultats inattendus, dommageables ou stupides.

Conclusion

Dès lors, il ne nous semble pas y avoir de réponse générale à la question posée (nous avons prévenu que c’était plutôt une “mauvaise” question). Tout dépend, comme toujours, du contexte d’implémentation.

Vous n'êtes pas d'accord ? Vous voulez participer ? Vous avez une objection ? Une question ? Contribuez !