La rétention de données dans les programmes d’IA

L’IA occasionne l’apparition de beaucoup (énormément) de données transformées, c'est-à-dire de nouvelles séquences de 0 et de 1. Ce sont des programmes qui gèrent ce qu’il adviendra de chacune de ces nouvelles séquences.

Midjourney : La rétention de données dans les programmes d’IA, peinture expressionniste abstraite, couleur Electric Lime --ar 16:9 

Comment l’IA se souvient-elle de ce qu’on lui dit ? Ou, plus sérieusement  : comment les ordinateurs conservent-ils les données, et les traces de transformation de ces dernières ?

Une erreur courante d’appréciation

Nombreux sont ceux qui considèrent que le résultat qu’obtient ChatGPT, c’est le texte sur l’écran qu’ils voient. Ils ont alors l’impression de dialoguer avec quelqu’un qui se souviendrait du début de la conversation. C’est parce qu’ils ne voient que le “résultat pour soi” (une image, un morceau de musique etc.) en croyant qu’il s’agit là du tout de la production artificielle. 

Regardons cela de plus près.

Remarque sur les données

Les données ne sont pas nécessairement des renseignements, mais des intrants et extrants destinés au calcul, présents dans des bases plus ou moins structurées.

On comprend que "ChatGPT peut se souvenir de tout", dans le sens qu’un informaticien peut programmer l’IA pour qu’elle conserve tous les renseignements interprétables ! Il est en revanche intéressant de comprendre si toutes les transformations de données (au sens large) se maintiennent, est-ce que toutes les versions de tous les fichiers subsistent quelque part dans un ordinateur ?

Distinguons alors : la donnée de sortie de ChatGPT (le texte sur l’écran) de toutes les autres données de traitement (données abstraites correspondant aux valeurs des poids, entre 0 et 1, dans les modèles d’apprentissage. Les modèles de dernières générations sont de gigantesques réseaux neuronaux composés d’une multitude de couches. Dans le cas de ChatGPT3, il y a 175 milliards de poids à apprendre, un par neurone.)

ChatGPT produit beaucoup de ces autres données, non présentes sur l’écran. Que devient cette production ?

La mémoire

Il y a d’abord plusieurs types de mémoire informatique [1]: volatile (mémoire vive), physique (stockage sur disque), déportée dans les nuages (ou cloud : idem, mais à distance). Autrement dit, en terme de hardware : sous forme magnétique sur un disque dur, voire sous forme physique (stockage cristallin), ou encore biologique (stockage ADN cellulaire). La "mémoire" de l’ordinateur est cependant simplement un concept que l’on emploie pour insister sur la variabilité des temps d’accès à la donnée, et le type de hardware mobilisé. 

À partir de cela, on peut comprendre que les données sur disque ne sont pas effacées sauf en cas de réécriture sur les secteurs qui contenaient les données (ce qui suppose instruction explicite). Il ne s’agit pas de l’équivalent d’un effacement à la gomme : les secteurs sont simplement déclarés "de nouveau libres" jusqu'à la prochaine écriture. 

Donc en première approximation, en langage courant, deux propositions sont à réconcilier. D’une part, “l’IA oublie très vite” au sens que les données en mémoire vive ne sont retenues que quelques minutes, et que le modèle ne s’enrichit pas instantanément et continument de nouvelles informations (entrantes ou sortantes). Mais d’autre part “elle n’oublie pas grand chose” parce qu’il faut programmer la libération des espaces-mémoire. Autrement dit, l’historique des transformations de données n’est en principe pas retenu, à moins que le programme ait été conçu de manière à rendre compte des changements.

A ce stade, on voit que beaucoup de données s’accumulent suite aux transformations dues aux traitements informatiques. Dans quelle mesure ? Pour répondre à la question de savoir à quel point les données sont rémanentes, il faut encore considérer qu’en pratique, les programmes informatiques connaissent des “cycles de vie” (qui n’ont évidemment rien à voir avec les mécanismes du vieillissement biologique, même si certains parallèles intéressants pourraient être faits.)

[1] En dehors de l’ordinateur : mémoire humaine, analogique (papier), journalisée, base journalisée.

L’apparition, les transformations, et la disparition des programmes

Les informaticiens parlent de DevOps (écrire le programme : Dev. L’entretenir dans un système d’information en évolution : Ops).

Côté « Dev », une fois que ChatGPT est déployé, on pourrait théoriquement détruire tous les corpus qui ont servi à obtenir les données d’entrée : ChatGPT fonctionnerait encore (rien à voir avec un animal qui ressuscite ! c’est simplement au sens que le logiciel peut être programmé pour travailler à partir de données d’abstraction de ces intrants). En pratique, l’administrateur de ChatGPT va néanmoins conserver durablement une copie de ces corpus pour effectuer d’autres recherches et mettre au point de futurs modèles d’apprentissage, de futures versions etc.

Côté « Ops », on met au point des caches. Les caches permettent d’économiser de l’effort de traitement pour permettre au modèle de donner une même réponse à une même question. Les caches permettent de stocker temporairement des associations figées entre données d’entrée et données de sortie et correspondant aux questions les plus fréquentes du moment. Les caches sont volatiles. On vide l’ancien au fur et à mesure qu’on les remplit avec du nouveau.

D'un point de vue basée sur la « modélisation », une fois l’apprentissage terminé, la substance de ChatGPT c’est la masse structurée des 175 milliards de poids. Si cette masse était plus petite, il serait parfaitement possible de la porter sous la forme d’une librairie vers de simples ordinateurs de génération standard. Il ne serait plus nécessaire de la stocker sur des serveurs. Et on pourrait alors dialoguer avec un mini-ChatGPT sans aucune connexion réseau d’aucun type. Il existe un modèle de 60 GB, testé sur LLAMA, qui rame beaucoup dans cette configuration.

Conclusion et problématiques associées

Si l’on peut “dialoguer” avec un chatbot, c’est que contrairement au cas de l’aboiement du chien (où le seul résultat est le bruit que l’on entend, et la reconfiuration discrète des schémas cognitifs), la première commande (prompt) déclenche une avalanche de calculs et de très nombreux résultats, dont certains seront stockés aux fins de réutilisation comme intrants pour une nouvelle séquence de la conversation avec la machine, et d’autres pour d’autres tâches computationnelles, éventuellement dans d’autres services. Par défaut, rien de ceci ne s’évanouit comme par magie.

Ce dernier point donne une idée de la difficulté : dans l’hypothèse théorique des ressources illimités, l’IA peut ne rien “oublier” (rien de ce que le programme génère de nouvelles data ne disparaît de la machine). En pratique cependant, certaines données de traitement se perdent à défaut que l’on choisisse de les intégrer dans le modèle de calcul de base. Elles seraient pourtant très utiles, mais que voulez-vous ? L’informaticien a rarement le temps de tout faire correctement !

Certaines autres données, parfaitement inutiles, demeureront à tout jamais dans le système d’information (sauf accidents). Certaines données informatives seront analysées par des humains, ou des machines.

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