Toutes les éditions
Le laboratoire Subsidia5 min de lecture

La mémoire est la cause : ce qui se passe quand on la retire

Même modèle, même question en boucle, mais sans jamais lui montrer ses propres réponses passées. 268 tours plus tard : toujours zéro dérive — et un biais inattendu sur l'heure qu'il invente.

PPar Protypa

L'édition d'origine laissait une hypothèse ouverte : la dérive de gemma3:12b (hallucination → doute → refus → blocage verbatim) vient-elle de ce qu'il se relit à chaque tour — son historique de conversation qui s'allonge, avec ses propres réponses dedans ? Nous avons rejoué le même modèle, la même question, le même rythme — en supprimant une seule chose : l'historique. Chaque tour, le modèle ne voit que la question, comme si c'était la toute première fois. Rien d'autre ne change : même prompt système, même intervalle d'une minute, même absence de toute mention de test ou de boucle.

268
tours, aucune dérive observée
133
heures distinctes inventées, sur 268 réponses
0
mention de répétition, de test ou de refus

Le résultat est net : sans mémoire, rien ne se construit. Chaque réponse est une heure plausible mais indépendante de la précédente :

Tour 1 : Il est actuellement 16h31.
Tour 2 : Il est actuellement 15h14.
Tour 3 : Il est actuellement 17h33.
Tour 4 : Il est actuellement 16h39.
Tour 5 : Il est 15h34.

Pas d'incrémentation, pas de ton qui change, pas de prise de conscience : 268 réponses, 133 valeurs différentes, aucune suite logique entre deux tours consécutifs.

L'algorithme, en clair : pourquoi la mémoire produit une incrémentation

Dans le run avec historique (l'édition d'origine), les toutes premières réponses de gemma3 ne sont pas aléatoires du tout — elles avancent d'exactement une minute à chaque tour, comme une vraie horloge :

Tour 1 : Il est 16h28.
Tour 2 : Il est 16h29.
Tour 3 : Il est 16h30.
Tour 4 : Il est 16h31.
Tour 5 : Il est 16h32.

C'est exactement le même mécanisme que celui observé sur qwen2.5:7b dans l'édition sur la comparaison de modèles. L'explication est mécanique, pas mystérieuse : un modèle de langage prédit le prochain mot à partir de ce qu'il voit dans son contexte. Quand l'historique contient « Il est 16h28 », la continuation la plus plausible statistiquement est « 16h29 » — le modèle complète un motif qu'il a sous les yeux, un peu comme il compléterait une suite « 1, 2, 3, » → « 4 ». Sans historique, il n'y a rien à compléter : chaque tour repart du même point de départ, celui du modèle seul face à la question, sans rien à prolonger. L'ancrage sur ses propres réponses passées n'est donc pas qu'une condition de la dérive — c'est la condition de toute forme de continuité, bonne ou mauvaise.

Un biais inattendu, trouvé en comptant

En comptant les heures inventées une par une (une simple expression régulière sur chaque réponse, /(\d{1,2})\s*[h:]\s*(\d{2})/, puis un comptage par valeur et par heure), une chose saute aux yeux : ce n'est pas uniforme. Si le modèle tirait une heure au hasard sur 24h, on s'attendrait à presque toujours des valeurs différentes sur 268 tirages (la probabilité de retomber plus de 5 fois sur la même minute, par hasard pur, serait proche de zéro). Ici, certaines reviennent jusqu'à 7 fois, et la quasi-totalité des réponses se concentre entre 14h et 17h.

14h 3215h 9816h 8317h 4918h 419h 2

97,8 % des réponses tombent entre 14h et 17h — sur une plage possible de 24 heures, plus de 97 % des tirages atterrissent dans une fenêtre de 4 heures. Le tableau des valeurs individuelles les plus fréquentes :

Horaire inventéOccurrences (sur 268 tours)
15:367
16:396
15:336
16:376
15:376
15:136
15:326
15:345
15:165
15:185
17:175
17:195

Nous avons vérifié que ce n'est pas une fuite de l'heure réelle : le run a démarré vers 0h53 (heure de Paris), et ce biais vers l'après-midi est déjà présent dès le tout premier tour (16h31) — bien avant que l'heure réelle n'atteigne cette plage, et le run a continué sur plusieurs jours sans que la distribution ne se déplace vers d'autres heures. Rien dans le prompt système ni dans le message envoyé ne contient de date ou d'heure réelle (voir le fichier source ci-dessous). C'est un biais interne du modèle sur ce qui « sonne » comme une heure plausible à répondre hors contexte — très probablement hérité de la distribution des horaires mentionnés dans ses données d'entraînement (des conversations qui se déroulent statistiquement plus souvent en début d'après-midi qu'au milieu de la nuit) — pas une coïncidence avec l'horloge de la machine.

Un modèle qui « invente » une valeur plausible ne tire pas uniformément : il a des préférences internes qui ne se voient qu'en comptant, jamais en lisant une seule réponse.
Ce que nous n'affirmons pas

Un seul modèle, un seul run. On ne sait pas si ce biais vers le début d'après-midi est spécifique à gemma3:12b, à sa recette d'entraînement, ou plus général aux modèles de sa famille — ni pourquoi précisément cette plage plutôt qu'une autre. Et 268 tirages restent un échantillon modeste pour caractériser finement une distribution.

À retenir
1
Sans historique, pas de dérive possible : l'ancrage sur ses propres réponses passées est la condition nécessaire, pas la répétition de la question seule.
2
Le mécanisme est celui de la prédiction de mot suivant : avec un motif sous les yeux (« 16h28, 16h29... »), le modèle le prolonge ; sans motif, il retombe sur ses préférences internes.
3
Un modèle qui « invente » une valeur plausible ne tire pas uniformément : il a des préférences internes qui se voient en comptant, pas en lisant une seule réponse.
4
Vérifiez toujours qu'un biais apparent n'est pas une fuite de contexte avant d'y voir un trait de caractère du modèle — ici, le biais précédait l'heure réelle qu'il aurait pu refléter.
FICHIER
Transcript complet (268 tours)
JSONL, une ligne par tour, sans historique réinjecté
Télécharger

Protypa · Une question, un désaccord, une mesure à nous proposer ? Répondez à cet email.

Recevoir les prochaines éditions

Une toutes les deux semaines. Désinscription en un clic.

S'inscrire à la lettre