Dis, ChatGPT, tu te souviens de moi ?

Mémoire des IA conversationnelles : mythe vs réalité - comprendre les limites pour mieux interagir avec.

Hier, sur notre groupe WhatsApp, la question d’une membre a fait tilt dans ma tête :

Est-ce que ChatGPT personnalise ses réponses en fonction de l’entraînement basé sur nos échanges précédents ?

Curieux hasard.

Au même moment ou presque, je tombe sur un billet de Simon Willison (ce qui m’arrive régulièrement) dans lequel il suspecte qu’un des + gros malentendus sur les modèles de langage concerne ce point précis. À savoir que ces IA conversationnels (Claude, Gemini, ChatGPT, Mistral…) apprendraient de ce qu'on leur dit. Et que ces échanges participeraient directement à leur "entraînement".

NON !

Ce n’est pas exactement comme ça que ça marche.

L’échange que tu as eu avec ton modèle préféré il y a 3 semaines n’a pas modifié le modèle.

Pour générer sa réponse, le modèle ne prend en compte qu’une seule chose : la conversation en cours. Ce que tu lui as dit ET ce qu’il t’a répondu (et ce qui a pu être automatiquement intégré dans la conversation en cours par l'application - voir l'encart sur la fonctionnalité “memory” plus bas).

Il va d’abord commencer par générer le premier mot. Puis, en prenant en compte toute la conversation ET le mot qu’il vient de générer, il va générer le mot suivant… et ainsi de suite jusqu’à atteindre le “mot de fin”. C’est ce qu’on appelle l’autorégression.

Pour prompter efficacement, que ce soit via des prompts simples ou des techniques + avancées comme le chain of thought ou le few-shot learning, il faut exploiter cette capacité d'autorégression en guidant le modèle pas à pas (mot à mot).

Le LLM (Large Langage Model) peut être vu comme une simple fonction qui prend un texte en entrée et qui retourne un texte en sortie. Cependant, le texte en entrée ne peut excéder une certaine taille.

Au-delà de cette limite, les informations du début de conversation seront “oubliées“.

On parle de fenêtre contextuelle. La taille de cette fenêtre est une caractéristique et une limitation importante des modèles actuels. Elle varie d’un modèle à l’autre : de 8 000 tokens pour llama 3 à 1 millions de tokens pour Gemini 1.5.

Token. Les modèles ne travaillent pas directement avec des mots, mais avec des tokens. Un token peut être un mot entier, une partie d'un mot, de la ponctuation, des chiffres ...

Par exemple, là ou tu vois 2 mots dans “bonjour madame“, ChatGPT-4o y voit 3 tokens : bonjour- mad-ame.

Donc :

  • Les modèles ne sont pas modifiés ou entraînés par tes conversations précédentes.

  • les modèles de langage n’ont pas de mémoire ou alors très très courte : la conversation en cours.

  • et encore, plus celle-ci est longue, plus le risque d’oubli est important. Attention quand tu copies/colles de longs documents.

  • plus tu mélanges des sujets différents dans la même conversation, plus le modèle risque de s’embrouiller. C’est parfois (souvent) une bonne idée de repartir d’une page blanche avec une nouvelle conversation.

  • personnellement, je maintiens une conversation “principale” où je cherche à conserver la plus grande cohérence possible sur le sujet sur lequel je travaille. Et, j'initie des conversations séparées pour chaque sous-tâche ou question annexe qui pourrait apparaître.

Memory. Histoire de compliquer les choses, OpenAI a introduit la fonctionnalité memory pour ChatGPT. Cette fonctionnalité permet à l'application de stocker et de réutiliser certaines informations de vos conversations passées. Cependant, cela ne signifie pas que le modèle de langage lui-même apprend ou change.

Il faut distinguer le modèle de langage de l'application ChatGPT.

Le modèle reste identique pour tous les utilisateurs et n'est pas modifié par tes conversations.

Par contre, l'application ChatGPT peut désormais "mémoriser" des éléments de tes discussions précédentes et les intégrer dans les nouvelles conversations.

Mais alors, c'est quoi cet "entraînement" dont on parle tout le temps ?

Lorsqu’on parle de l'entraînement, on se réfère au processus initial de création du modèle. Le modèle est “alimenté” par Wikipedia, des pans entiers du web, des livres, des journaux, des articles académiques, du code... Il y apprend des corrélations mathématiques dans l’usage des mots, ainsi qu'une représentation "dégradée" de notre monde à travers le langage. Une fois cette base établie, une phase de fine-tuning suit, pour aligner le modèle à des besoins utilisateurs concrets et pas juste prédire le prochain mot.

Je vous l'ai expliqué rapidement, mais en gros, c'est comme ça que se passe l'entraînement.

Une fois entrainé, les milliards de paramètres bien optimisés.. on n’y touche plus au modèle. On le stocke dans un fichier statique et on le “distribue” aux utilisateurs.

Les interactions que tu as avec lui ne le modifie pas.

Entraîner un de ces modèles de zéro, d’ailleurs, prend des mois et s’accompagne d’une facture d’électricité bien salée.. Bref, on fait pas ça tous les jours.

Pendant qu'on y est

autant clarifier un autre malentendu fréquent. Si certaines applications, comme ChatGPT, ont “accès” à Internet, cela ne signifie pas pour autant qu'elles ont accès à l'intégralité du contenu disponible en ligne.

Moi, par exemple : même avec une connexion Internet, je ne peux pas accéder à tous les articles qui m'intéressent, ceux protégés par un paywall, par un abonnement payant... Eh bien, c'est un peu la même chose pour ChatGPT et ses camarades.

D'ailleurs, quand on dit qu'ils ont accès à Internet, c'est une façon de parler, une simplification. Le LLM (modèle de langage) ne demande pas miraculeusement à certains de ses neurones (artificiels, les neurones) de lire une page Web.

Non, en réalité, ils "appellent" un outil extérieur, du code, une API.. qui se charge de renvoyer des résultats pertinents. Ceux-ci sont intégrés à la conversation en cours, permettant à ChatGPT et autres de s'appuyer dessus pour générer leur réponse, mot après mot, selon le principe de l'autorégression.

Petit exemple, je viens de demander à ChatGPT-4o de me résumer un article payant du Point, réservé aux abonnés :

Et comme attendu, le résumé n’en est pas un. Plus surprenant, il me parle d’un article de La Croix et du JDN.

Moralité : méfie-toi de cette fonctionnalité, elle n'est pas toujours fiable.

Personnellement, je préfère jouer la sécurité et faire un bon vieux copier/coller du texte à résumer. Comme ça, je suis sûr de ce que le modèle a “lu”.

Prochain épisode : Anatomie d’un prompt

Ce qu'il faut retenir :

  • Pour générer une réponse, le modèle prend en compte la conversation en cours, dans la limite de sa fenêtre contextuelle (nombre maximum de mots/tokens). Au-delà, le début de la conversation est "oublié".

  • Les modèles de langage eux-mêmes ne changent pas en fonction de tes interactions. Le modèle reste identique pour tous les utilisateurs.

  • Il est important de distinguer le modèle de langage (qui reste inchangé) de l'application qui l'utilise (qui peut avoir des fonctionnalités supplémentaires comme "memory").

  • La fonctionnalité "memory" de ChatGPT est une caractéristique de l'application, pas du modèle. Elle permet à l'application de stocker et réutiliser des informations de conversations passées, sans modifier le modèle sous-jacent.

  • L'entraînement d'un modèle est un processus initial complexe réalisé par ses créateurs.

  • Accès à internet : c'est une fonction de l'application (ex: ChatGPT), pas du modèle. L'application utilise des outils externes pour ajouter à la conversation des informations qui viennent d’une recherche internet, ou de la lecture d’une page web. À utiliser avec précaution.