<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
  <title>Paweł Dubiel Tech Blog: Glossaire</title>
  <link>https://paweldubiel.com/fr</link>
  <atom:link href="https://paweldubiel.com/fr/glossary.xml" rel="self" type="application/rss+xml" />
  <description>Notes sur l’IA, les modèles de langage et le génie logiciel.</description>
  <language>fr</language>
  <lastBuildDate>Sun, 11 Oct 2026 00:00:00 GMT</lastBuildDate>
<item>
  <title>Overfitting</title>
  <link>https://paweldubiel.com/fr/glossary/overfitting</link>
  <guid isPermaLink="true">https://paweldubiel.com/fr/glossary/overfitting</guid>
  <pubDate>Sun, 11 Oct 2026 15:59:40 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>Vous tenez un stand de glaces. Pendant 10 jours, vous avez noté dans un carnet la température à midi et le nombre de boules vendues.</description>
  <content:encoded><![CDATA[<p>Vous tenez un stand de glaces. Pendant 10 jours, vous avez noté dans un carnet la température à midi et le nombre de boules vendues. Vous voulez tirer une règle de ces notes : demain, il fera 24 °C, combien de glaces faut-il préparer ?</p>
<p>La règle la plus simple est une droite : « chaque degré de plus, ce sont quelques boules de plus ». Dans l’exemple de cette note, elle se trompe typiquement de 27,5 boules sur les jours notés, car elle ne voit pas que les ventes baissent pendant les plus fortes chaleurs. On peut donc laisser plus de liberté à la règle et permettre à la courbe de tourner. La plus souple des courbes essayées passe exactement par les 10 points. Son erreur sur les jours du carnet vaut 0.</p>
<p>Elle a tout d’une règle parfaite. Sauf que les jours du carnet sont déjà passés, et que la règle doit servir demain. Sur 400 nouveaux jours du même stand, la courbe « parfaite » se trompe typiquement de 236,5 boules. Une courbe modérément souple, qui faisait moins bien sur le carnet (10,9), se trompe de 16,8 sur les nouveaux jours.</p>
<p>L’<strong>overfitting</strong> est la situation où un modèle a une petite erreur sur les données utilisées pour l’apprentissage et, en comparaison, une erreur trop grande sur de nouvelles données du même type (<a href="https://www.deeplearningbook.org/contents/ml.html" rel="noopener noreferrer">Goodfellow, Bengio et Courville, <em>Deep Learning</em>, §5.2</a>). Le modèle s’est ajusté à des particularités de son jeu de données qui ne se répètent pas ailleurs. Le problème inverse s’appelle l’<strong>underfitting</strong> : la règle est trop simple pour bien décrire même les données qu’elle a vues. C’est ainsi que se comporte la droite de notre exemple.</p>
<p><img src="https://paweldubiel.com/assets/overfitting-smooth-rule-versus-tangled-line-through-every-point.webp" alt="Deux stands de glaces côte à côte : au-dessus du premier, une ligne lisse décrit un arc doux entre les points ; au-dessus du second, une ligne emmêlée touche chaque point et s’élance loin hors du cadre." loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="doù-vient-cet-écart">D’où vient cet écart</h2>
<p>Chaque ligne du carnet est faite de deux choses : une régularité (il fait plus chaud, donc plus de glaces) et du hasard (un car de touristes est justement passé). La règle doit saisir la première et laisser la seconde de côté. Mais le modèle ne sait pas distinguer l’une de l’autre. Il ne voit que des points.</p>
<p>La quantité de hasard que le modèle absorbe dépend de sa souplesse, appelée <strong>capacity</strong> dans la littérature : son aptitude à s’ajuster à de nombreuses formes différentes. Dans l’exemple, la courbe est décrite par 2 à 10 nombres que l’on ajuste aux données ; leur nombre est le degré de la courbe plus un. Une courbe de degré 9 dispose de 10 nombres pour 10 jours : elle peut donc toucher chaque point, avec tout le hasard qu’il contient. Les auteurs du manuel le décrivent ainsi : un modèle très souple peut représenter la bonne relation, mais aussi une foule d’autres qui collent tout aussi bien aux données d’apprentissage, et il y a peu de chances qu’il choisisse justement celle qui tiendra ensuite (§5.2).</p>
<p>Le déroulement typique est le suivant : quand la souplesse augmente, l’erreur sur les données d’apprentissage diminue, tandis que l’erreur sur les nouvelles données commence par diminuer, puis se met à augmenter (§5.2, figure 5.3). Il en découle une règle pratique. On n’évalue pas un modèle sur les données sur lesquelles il a appris, et on ne choisit pas la souplesse d’après l’erreur sur ces données, car celle-ci désignera toujours la plus grande. On met une partie des données de côté : le <strong><a href="https://paweldubiel.com/glossary/validation-set" hreflang="pl">validation set [Polski]</a></strong> sert à choisir les réglages, et un <strong>test set</strong> distinct sert à l’évaluation finale (§5.3).</p>
<h2 id="essayez-vous-même">Essayez vous-même</h2>
<p>Voici le même stand. Tous les chiffres de cette note peuvent être reproduits : un clic sur « Recommencer » affiche 10 jours, et les expériences 1 à 5 règlent les cas décrits.</p>
<div id="overfitting-lab"></div>
<p>Deux choses valent la peine d’être faites, qu’un graphique statique ne montre pas. D’abord, activez « 24 autres carnets » et faites varier le degré : quand il est bas, les lignes grises restent proches les unes des autres ; quand il est élevé, elles partent dans tous les sens, alors que chacune vient du même stand. Ensuite, faites glisser un point très haut. La courbe de degré 2 ne bougera qu’un peu, tandis que la courbe de degré 9 se reconstruira sur toute sa longueur pour l’atteindre.</p>
<h2 id="ce-qui-aide">Ce qui aide</h2>
<ul>
<li><strong>Plus de données.</strong> Avec 80 jours, la même courbe de degré 9 se trompe typiquement de 14,8 boules sur le carnet et de 15,9 sur les nouveaux jours. L’écart disparaît presque, car la courbe ne peut plus toucher chaque point (§5.2).</li>
<li><strong>Moins de souplesse.</strong> Courbe de degré 3 sur 10 jours : 10,9 sur le carnet, 16,8 sur les nouveaux jours.</li>
<li><strong>Regularization</strong>, c’est-à-dire une modification de la méthode d’apprentissage destinée à réduire l’erreur sur les nouvelles données, et non sur les données d’apprentissage (§5.2.2). Un exemple en est la pénalité pour les grands coefficients, apparentée au <a href="https://paweldubiel.com/glossary/weight-decay" hreflang="pl">Weight decay [Polski]</a> : la courbe de degré 9 avec une pénalité λ = 0,01 se trompe de 5,8 sur le carnet et de 21,2 sur les nouveaux jours, au lieu de 236,5.</li>
</ul>
<p>Aucun de ces réglages ne peut être choisi en regardant uniquement l’erreur sur les données d’apprentissage.</p>
<h2 id="limites">Limites</h2>
<ul>
<li>C’est un exemple personnel, avec une seule grandeur d’entrée et des données simulées. Le hasard seul donne ici typiquement 15 boules d’erreur, et aucune règle ne descendra plus bas sur les nouveaux jours.</li>
<li>La forme « d’abord mieux, puis moins bien » est typique, pas garantie. Les auteurs soulignent que, dans les réseaux profonds, il est difficile ne serait-ce que d’établir la souplesse effective d’un modèle, car elle dépend aussi de l’algorithme d’apprentissage (§5.2). Le nombre de paramètres d’un LLM ne dit donc pas, à lui seul, si le modèle est surajusté.</li>
<li>Une petite erreur sur de nouvelles données concerne des données de la même source. Si le stand déménage au bord de la mer, le carnet tenu en ville ne promet rien.</li>
</ul>
<h2 id="notes-liées">Notes liées</h2>
<ul>
<li><a href="https://paweldubiel.com/glossary/weight-decay" hreflang="pl">Weight decay [Polski]</a> limite la taille des poids et constitue l’un des moyens de réduire l’écart entre l’erreur sur les données d’apprentissage et l’erreur sur les nouvelles.</li>
<li><a href="https://paweldubiel.com/glossary/grokking" hreflang="pl">Grokking [Polski]</a> décrit des cas où un modèle qui semble surajusté se met, après un long entraînement supplémentaire, à bien fonctionner sur de nouvelles données.</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> sur un petit jeu de données exige le même contrôle : des données distinctes, que le modèle n’a pas vues pendant l’apprentissage.</li>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> est un autre problème : là, le modèle perd une ancienne compétence après un nouvel apprentissage ; ici, il se généralise mal dès le départ au-delà de ses propres données d’apprentissage.</li>
</ul>]]></content:encoded>
</item>
<item>
  <title>Time horizon</title>
  <link>https://paweldubiel.com/fr/glossary/time-horizon</link>
  <guid isPermaLink="true">https://paweldubiel.com/fr/glossary/time-horizon</guid>
  <pubDate>Sun, 11 Oct 2026 15:02:00 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>papers</category>
  <category>llm</category>
  <category>agents</category>
  <category>benchmarks</category>
  <description>Dans l’évaluation des agents, le time horizon désigne la durée des tâches à laquelle un agent atteint un niveau de réussite choisi.</description>
  <content:encoded><![CDATA[<p>Dans l’évaluation des agents, le <strong>time horizon</strong> désigne la durée des tâches à laquelle un agent atteint un niveau de réussite choisi. Cette durée se mesure par le temps dont un humain a besoin, et non par le temps de fonctionnement de l’IA.</p>
<p>Pour la variante à 50 %, on rassemble les tentatives réussies et ratées de l’agent sur des tâches aux temps humains variés. On ajuste une courbe des chances de succès, puis on lit le temps auquel elle coupe 50 %. C’est une prédiction pour la distribution des tâches d’une durée donnée ; elle ne signifie pas que chacune d’elles a la même chance d’être menée à bien. <a href="https://metr.org/time-horizons/" rel="noopener noreferrer">METR : définition et méthodologie</a>.</p>
<p>Exemple pédagogique : si la courbe ajustée atteint 50 % à deux heures, l’horizon est de deux heures. L’agent peut mener à bien une tâche réussie beaucoup plus vite. Le résultat ne dit pas non plus, à lui seul, avec quel taux de réussite il accomplira une tâche d’un autre domaine.</p>
<p>Cette lecture suppose une relation sensée entre le temps humain et la difficulté pour l’IA. Lorsque la courbe est plate, une petite variation des chances peut déplacer très loin son intersection avec le seuil. <a href="https://paweldubiel.com/fr/articles/un-horizon-metr-plus-long-ne-signifie-pas-des-taches-proportionnellement-plus">L’article sur la conversion de l’horizon METR</a> illustre ce problème par un exemple chiffré et présente un nouvel ajustement aux données de METR. <a href="https://arxiv.org/html/2610.12466v1#S2" rel="noopener noreferrer">Nguyen et Fithian, §2–3</a>.</p>
<p>Lorsqu’on compare des horizons, il faut conserver l’information sur le jeu de tâches, l’environnement de l’agent, le budget de tentatives et le seuil de réussite retenu.</p>]]></content:encoded>
</item>
<item>
  <title>Item response theory</title>
  <link>https://paweldubiel.com/fr/glossary/item-response-theory</link>
  <guid isPermaLink="true">https://paweldubiel.com/fr/glossary/item-response-theory</guid>
  <pubDate>Sun, 11 Oct 2026 15:01:00 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>papers</category>
  <category>llm</category>
  <category>agents</category>
  <category>benchmarks</category>
  <description>L’item response theory (IRT) est une famille de méthodes qui, à partir des réponses à chaque tâche, estiment conjointement les capacités de ceux qui les exécutent et la difficulté des tâches.</description>
  <content:encoded><![CDATA[<p>L’<strong>item response theory (IRT)</strong> est une famille de méthodes qui, à partir des réponses à chaque tâche, estiment conjointement les capacités de ceux qui les exécutent et la difficulté des tâches. Dans l’évaluation de l’IA, l’exécutant est un agent, et la réponse peut être le succès ou l’échec d’une tentative complète.</p>
<p>Supposons que deux agents résolvent les trois mêmes tâches. Le premier vient généralement à bout de A et de B, le second aussi de C. Le seul pourcentage de succès donne un classement. L’IRT cherche en plus à estimer à quel point C est difficile par rapport aux autres tâches, et quel écart de capacités explique le schéma des réponses. C’est un exemple pédagogique ; un tableau aussi petit ne suffit pas pour un ajustement fiable.</p>
<p>Dans le modèle simple de Rasch, la chance de succès augmente lorsque les capacités de l’agent sont plus grandes par rapport à la difficulté de la tâche. Les deux grandeurs sont cachées : on les infère à partir des résultats, au lieu d’assimiler d’emblée la difficulté à la longueur de la consigne ou au temps humain. Les différentes variantes de l’IRT ajoutent d’autres paramètres et d’autres hypothèses.</p>
<p>Dans <a href="https://paweldubiel.com/fr/articles/un-horizon-metr-plus-long-ne-signifie-pas-des-taches-proportionnellement-plus">l’analyse des horizons METR</a>, les auteurs relient la difficulté cachée au temps de travail humain au moyen d’une courbe apprise. Ils ajoutent des effets de familles de tâches et la variabilité des résultats entre répétitions. Cela permet de vérifier dans quelle plage le temps distingue réellement les tâches difficiles des tâches faciles pour l’IA. <a href="https://arxiv.org/html/2610.12466v1#S2.SS3" rel="noopener noreferrer">Nguyen et Fithian, §2.3 et §3.1</a>.</p>
<p>Une bonne prédiction des réponses ne prouve pas que le paramètre appris couvre tous les types de capacités d’un agent. Pour l’interprétation, il faut vérifier les hypothèses du modèle et les résultats sur des tâches non utilisées lors de l’ajustement.</p>]]></content:encoded>
</item>
<item>
  <title>Elastic Weight Consolidation</title>
  <link>https://paweldubiel.com/fr/glossary/elastic-weight-consolidation</link>
  <guid isPermaLink="true">https://paweldubiel.com/fr/glossary/elastic-weight-consolidation</guid>
  <pubDate>Sun, 11 Oct 2026 12:00:11 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>Un modèle oriente les questions des clients vers les services « livraison » et « retours ». Il doit maintenant apprendre à reconnaître les réclamations, mais il n’est plus permis de conserver les…</description>
  <content:encoded><![CDATA[<p>Un modèle oriente les questions des clients vers les services « livraison » et « retours ». Il doit maintenant apprendre à reconnaître les réclamations, mais il n’est plus permis de conserver les anciens messages. On ne peut donc pas les réviser pendant l’apprentissage. Tout ce qui reste de l’ancienne tâche, c’est le modèle lui-même : des millions de nombres réglés au cours de l’apprentissage précédent, que l’on appelle les poids.</p>
<p>On peut apprendre les réclamations au modèle sans aucune contrainte. Les poids se déplacent alors là où cela sert la nouvelle tâche, y compris ceux dont dépendait la reconnaissance de la livraison et des retours. On peut aussi pénaliser chaque changement de la même façon, mais le modèle s’accroche alors si fort aux anciens réglages qu’il apprend mal la nouveauté. Il faut une réponse à la question : <strong>quels poids peut-on toucher, et lesquels vaut-il mieux laisser en place ?</strong></p>
<p>L’<strong>Elastic Weight Consolidation (EWC)</strong> ajoute à l’apprentissage de la nouvelle tâche une pénalité lorsque les poids s’éloignent de leur valeur après l’ancienne tâche, pénalité d’autant plus forte que le poids était important pour l’ancienne tâche. Les auteurs comparent cela à un ressort fixé à chaque poids : raide pour les poids importants, lâche pour les autres (<a href="https://arxiv.org/abs/1612.00796" rel="noopener noreferrer">Kirkpatrick et al., <em>Overcoming catastrophic forgetting in neural networks</em>, §2</a>).</p>
<p><img src="https://paweldubiel.com/assets/elastic-weight-consolidation-stiff-and-loose-springs.webp" alt="Une rangée de disques fixés à des poteaux par des ressorts : les disques retenus par des ressorts épais et raides restent en place, ceux qui tiennent à des ressorts fins et lâches glissent vers un cercle rouge." loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="deux-poids-une-nouvelle-tâche">Deux poids, une nouvelle tâche</h2>
<p>Prenons seulement deux poids. Après l’apprentissage de la livraison et des retours, tous deux valent 1. Le premier est très important pour les anciens services (importance 10), le second presque indifférent (importance 0,1). La nouvelle tâche exige seulement que <strong>la somme des deux poids soit égale à 4</strong>. De nombreux réglages y satisfont : (2 ; 2), mais aussi (1 ; 3).</p>
<ul>
<li><strong>Sans protection</strong>, l’apprentissage déplace les deux poids d’autant, jusqu’à (2 ; 2). La nouvelle tâche est maîtrisée, mais le poids important s’est éloigné de 1 et la perte sur l’ancienne tâche passe de 0 à 5,05.</li>
<li><strong>Une pénalité uniforme</strong> pour les deux poids les arrête à mi-chemin, à (1,67 ; 1,67). L’ancienne tâche souffre moins, mais la somme vaut 3,33 au lieu de 4.</li>
<li><strong>L’EWC</strong> reporte presque tout le déplacement sur le poids peu important : (1,02 ; 2,80). La somme vaut 3,82, et la perte sur l’ancienne tâche n’est que de 0,16.</li>
</ul>
<p>La perte est un nombre qui indique à quel point le modèle se trompe ; plus elle est petite, mieux c’est. Dans l’expérience ci-dessous, vous pouvez modifier la force de la pénalité λ et le mode de protection. Le résultat est calculé exactement pour cet exemple à deux poids ; ce n’est pas la simulation d’un vrai réseau.</p>
<div id="ewc-spring-lab"></div>
<h2 id="comment-sait-on-quel-poids-est-important">Comment sait-on quel poids est important</h2>
<p>Dans un vrai réseau, personne ne fournit l’importance d’avance. On l’estime une fois l’ancienne tâche terminée, tant que ses données sont encore disponibles : on vérifie à quel point une légère modification d’un poids donné change les réponses du modèle sur les anciens exemples. L’article utilise pour cela la diagonale de la <em>matrice d’information de Fisher</em>, c’est-à-dire un seul nombre d’importance par poids. Les données peuvent ensuite être supprimées ; il reste les anciennes valeurs des poids et leurs importances.</p>
<p>Pendant le nouvel apprentissage, on minimise la somme de deux termes (équation 3 de l’article) :</p>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>L</mi><mo stretchy="false">(</mo><mi>θ</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>L</mi><mi>B</mi></msub><mo stretchy="false">(</mo><mi>θ</mi><mo stretchy="false">)</mo><mo>+</mo><munder><mo>∑</mo><mi>i</mi></munder><mfrac><mi>λ</mi><mn>2</mn></mfrac><msub><mi>F</mi><mi>i</mi></msub><mtext> </mtext><mo stretchy="false">(</mo><msub><mi>θ</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>θ</mi><mrow><mi>A</mi><mo separator="true">,</mo><mi>i</mi></mrow><mo>∗</mo></msubsup><msup><mo stretchy="false">)</mo><mn>2</mn></msup></mrow><annotation encoding="application/x-tex">L(\theta) = L_B(\theta) + \sum_i \frac{\lambda}{2} F_i \,(\theta_i - \theta^*_{A,i})^2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">L</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathnormal">L</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3283em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.0502em;">B</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.6491em;vertical-align:-1.2777em;"></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.05em;"><span style="top:-1.8723em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span><span style="top:-3.05em;"><span class="pstrut" style="height:3.05em;"></span><span><span class="mop op-symbol large-op">∑</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.2777em;"><span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.3714em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">λ</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">F</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1.2472em;vertical-align:-0.3831em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7387em;"><span style="top:-2.453em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">A</span><span class="mpunct mtight">,</span><span class="mord mathnormal mtight">i</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∗</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.3831em;"><span></span></span></span></span></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8641em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span></span>
<p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>L</mi><mi>B</mi></msub></mrow><annotation encoding="application/x-tex">L_B</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">L</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3283em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.0502em;">B</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> est la perte sur la nouvelle tâche, <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>θ</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">\theta_i</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8444em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> la valeur courante du poids numéro <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6595em;"></span><span class="mord mathnormal">i</span></span></span></span>, <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msubsup><mi>θ</mi><mrow><mi>A</mi><mo separator="true">,</mo><mi>i</mi></mrow><mo>∗</mo></msubsup></mrow><annotation encoding="application/x-tex">\theta^*_{A,i}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.1059em;vertical-align:-0.4114em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.6887em;"><span style="top:-2.4247em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">A</span><span class="mpunct mtight">,</span><span class="mord mathnormal mtight">i</span></span></span></span><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∗</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.4114em;"><span></span></span></span></span></span></span></span></span></span> sa valeur après l’ancienne tâche, <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>F</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">F_i</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">F</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> son importance, et <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>λ</mi></mrow><annotation encoding="application/x-tex">\lambda</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal">λ</span></span></span></span> indique combien l’ancienne tâche compte face à la nouvelle. Dans notre exemple, <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>F</mi><mo>=</mo><mo stretchy="false">(</mo><mn>10</mn><mo separator="true">;</mo><mtext> </mtext><mn>0,1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">F = (10;\ 0{,}1)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.1389em;">F</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord">10</span><span class="mpunct">;</span><span class="mspace"> </span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">0</span><span class="mord"><span class="mpunct">,</span></span><span class="mord">1</span><span class="mclose">)</span></span></span></span> et <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>λ</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">\lambda = 1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal">λ</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span></span></span></span>.</p>
<h2 id="les-limites-de-la-méthode">Les limites de la méthode</h2>
<p>L’importance est une approximation calculée en un seul point, séparément pour chaque poids. Les auteurs montrent eux-mêmes que leur estimation est parfois trop sûre d’elle quant aux poids sans importance, et y voient la principale faiblesse de la méthode (§2.2 et §3). Dans leurs expériences sur les jeux Atari, un agent doté de l’EWC a appris de nombreux jeux l’un après l’autre, mais n’a pas égalé des réseaux distincts entraînés pour chaque jeu. Les résultats portent sur la reconnaissance de chiffres et sur des jeux, pas sur les grands modèles de langage. Nos deux poids et nos messages de clients sont une simplification personnelle.</p>
<ul>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> est une forte dégradation des anciennes compétences après un nouvel apprentissage ; l’EWC tente de la limiter sans accès aux anciennes données.</li>
<li><a href="https://paweldubiel.com/fr/glossary/experience-replay">Experience Replay</a> résout le même problème autrement : il conserve une partie des anciens exemples au lieu des importances des poids.</li>
<li><a href="https://paweldubiel.com/fr/glossary/continual-learning">Continual Learning</a> définit l’objectif, c’est-à-dire l’apprentissage de tâches successives en conservant les précédentes ; l’EWC est l’une des méthodes.</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> est la poursuite de l’entraînement d’un modèle existant ; l’EWC en modifie l’objectif en ajoutant une pénalité lorsqu’on touche aux poids importants.</li>
</ul>
<p><em>Texte et illustration préparés avec l’aide de l’IA. Les deux poids, leurs importances et la démonstration sont un exemple pédagogique personnel simplifié ; l’illustration est une métaphore, pas un schéma de la structure d’un modèle.</em></p>]]></content:encoded>
</item>
<item>
  <title>Reservoir Sampling</title>
  <link>https://paweldubiel.com/fr/glossary/reservoir-sampling</link>
  <guid isPermaLink="true">https://paweldubiel.com/fr/glossary/reservoir-sampling</guid>
  <pubDate>Sun, 11 Oct 2026 12:00:11 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>Un modèle de service client apprend sur des messages qui arrivent l’un après l’autre. Vous voulez en garder quelques-uns pour des révisions ultérieures, mais vous n’avez que quatre places en mémoire.</description>
  <content:encoded><![CDATA[<p>Un modèle de service client apprend sur des messages qui arrivent l’un après l’autre. Vous voulez en garder quelques-uns pour des révisions ultérieures, mais vous n’avez que quatre places en mémoire. Vous ne savez pas non plus combien de messages arriveront encore : vingt ou deux millions.</p>
<p>Garder les quatre premiers ? La mémoire ne connaît alors que le début. Garder toujours les quatre derniers ? Elle ne connaît alors que la fin. Un tirage équitable de « quatre parmi l’ensemble » obligerait à tout stocker ou à connaître d’avance le nombre de messages. La question est donc : <strong>comment, avec un nombre fixe de places et un flux de longueur inconnue, donner la même chance à chaque message ?</strong></p>
<p>Le <strong>Reservoir Sampling</strong> est une façon de maintenir un échantillon aléatoire de taille fixe en un seul passage sur des données dont on ne connaît pas le nombre à l’avance. Après chaque nouveau message, la mémoire, appelée ici réservoir, contient un échantillon aléatoire équitable de tout ce qui est arrivé jusque-là. La version la plus simple, Algorithm R, est décrite par <a href="https://doi.org/10.1145/3147.3165" rel="noopener noreferrer">Vitter, <em>Random Sampling with a Reservoir</em>, §2</a>, qui l’attribue à Alan Waterman.</p>
<p><img src="https://paweldubiel.com/assets/reservoir-sampling-pebble-stream-four-slot-tray.webp" alt="Un long flux de galets et de coquillages passe à côté d’un petit plateau en bois à quatre alvéoles ; une main retire un galet du plateau, l’autre met à sa place un galet venu du flux." loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="la-recette-en-deux-étapes">La recette en deux étapes</h2>
<ol>
<li>Les quatre premiers messages entrent en mémoire sans tirage au sort.</li>
<li>Le message numéro <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>t</mi></mrow><annotation encoding="application/x-tex">t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6151em;"></span><span class="mord mathnormal">t</span></span></span></span> (le cinquième, le sixième et chacun des suivants) entre en mémoire avec une chance de <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>4</mn><mi mathvariant="normal">/</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">4/t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">4/</span><span class="mord mathnormal">t</span></span></span></span>. S’il y entre, il remplace l’un des quatre messages enregistrés, choisi au hasard.</li>
</ol>
<p>Le cinquième message entre donc avec une chance de 4/5, le centième avec une chance de 4/100. Les nouveaux messages ont de moins en moins de chances d’entrer, mais les anciens ont déjà été exposés maintes fois au risque d’être éjectés, et ces deux effets se compensent exactement. Vérifions-le après le cinquième message. Il entre avec une chance de 4/5. Le premier message ne sort que si le cinquième est entré (4/5) et est tombé justement à sa place (1/4), soit avec une chance de 1/5. Il reste avec une chance de 4/5 : la même que celle du cinquième. Après <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>t</mi></mrow><annotation encoding="application/x-tex">t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6151em;"></span><span class="mord mathnormal">t</span></span></span></span> messages, chacun d’eux se trouve en mémoire avec une chance de <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>4</mn><mi mathvariant="normal">/</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">4/t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">4/</span><span class="mord mathnormal">t</span></span></span></span>.</p>
<h2 id="une-chance-égale-nest-pas-une-garantie">Une chance égale n’est pas une garantie</h2>
<p>Dans l’expérience, le flux compte 20 messages. Dix-huit concernent la livraison, et deux, le neuvième et le quinzième, concernent les retours. Chaque lancement fait passer un tel flux 2 000 fois et compte à quelle fréquence chaque position est restée en mémoire à la fin. Les tirages sont réels : les résultats diffèrent donc à chaque fois d’une fraction de pour cent.</p>
<div id="reservoir-sampling-lab"></div>
<p>Avec le Reservoir Sampling, chaque barre atteint environ 20 %, soit 4/20. Dans le même temps, dans la plupart des passages, aucun des deux retours ne reste en mémoire. La valeur exacte est 3060/4845, soit environ 63 % : c’est la part, parmi tous les groupes de quatre choisis dans 20 messages, de ceux qui se composent uniquement des dix-huit messages sur la livraison. La méthode est équitable envers chaque message pris isolément, mais elle ne veille pas à ce que chaque catégorie ait un représentant.</p>
<h2 id="là-où-cela-compte">Là où cela compte</h2>
<p>Dans l’apprentissage avec révisions, le Reservoir Sampling sert parfois de méthode d’écriture dans le tampon : il n’est pas nécessaire de connaître la longueur du flux ni les frontières entre les tâches. <a href="https://arxiv.org/html/1902.10486v2#S2" rel="noopener noreferrer">Chaudhry et al., <em>Continual Learning with Tiny Episodic Memories</em>, §2, algorithme 2</a> l’emploient précisément ainsi. Dans leurs expériences sur des tâches d’images, il donnait de bons résultats, sauf avec de très petites mémoires, où des classes antérieures disparaissaient du tampon ; les stratégies veillant à une représentation égale des classes s’en sortaient alors mieux (§4.4). C’est un résultat pour la classification d’images, pas pour les LLM.</p>
<p>L’algorithme lui-même ne relève pas de l’apprentissage automatique. L’article de Vitter, daté de 1985, décrit le tirage d’enregistrements sur une bande magnétique de longueur inconnue et propose des variantes plus rapides qui, au lieu de tirer au sort à chaque enregistrement, calculent combien d’enregistrements sauter. Les messages de clients et le flux de 20 positions sont un exemple personnel.</p>
<ul>
<li><a href="https://paweldubiel.com/fr/glossary/experience-replay">Experience Replay</a> a besoin d’un tampon d’anciens exemples ; le Reservoir Sampling est l’une des façons de décider ce qui y entre.</li>
<li><a href="https://paweldubiel.com/fr/glossary/continual-learning">Continual Learning</a> suppose un apprentissage à partir d’un flux de données avec une mémoire limitée, c’est-à-dire une situation où l’on ne peut pas tout garder.</li>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> peut s’aggraver lorsque tous les exemples d’une ancienne catégorie sortent d’une petite mémoire.</li>
</ul>
<p><em>Texte et illustration préparés avec l’aide de l’IA. Le flux de messages et la démonstration sont un exemple pédagogique personnel simplifié ; l’illustration est une métaphore, pas un schéma de l’algorithme.</em></p>]]></content:encoded>
</item>
<item>
  <title>Experience Replay</title>
  <link>https://paweldubiel.com/fr/glossary/experience-replay</link>
  <guid isPermaLink="true">https://paweldubiel.com/fr/glossary/experience-replay</guid>
  <pubDate>Sun, 11 Oct 2026 08:22:26 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>Un modèle a appris à orienter les questions des clients vers les services « livraison » et « retours ».</description>
  <content:encoded><![CDATA[<p>Un modèle a appris à orienter les questions des clients vers les services « livraison » et « retours ». Vous poursuivez maintenant son entraînement pour qu’il reconnaisse les réclamations, par exemple « Le produit est arrivé endommagé ». S’il ne voit que des réclamations dans les exercices suivants, il risque de moins bien traiter le « Où est le colis ? » qu’il connaissait auparavant. L’ancienne archive complète n’est plus disponible. Peut-on revenir au moins à quelques messages conservés ?</p>
<p>L’<strong>Experience Replay (ER)</strong> consiste à conserver une partie des exemples antérieurs et à les réutiliser pour l’apprentissage. Dans sa variante simple, on mélange au lot de nouvelles données des exemples tirés d’une mémoire appelée <em>replay buffer</em>. C’est un réservoir de données à réviser, pas un enregistrement de tout le savoir du modèle. Cet apprentissage conjoint est décrit par <a href="https://arxiv.org/html/1902.10486v2#S2" rel="noopener noreferrer">Chaudhry et al., <em>Continual Learning with Tiny Episodic Memories</em>, §2, algorithme 1</a>.</p>
<p><img src="https://paweldubiel.com/assets/experience-replay-card-box-returning-examples.webp" alt="Des cartes bleu marine et ocre conservées reviennent d’une petite boîte dans une rangée de nouvelles cartes rouges : une métaphore des révisions pendant la suite de l’apprentissage." loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="ce-qui-entre-dans-lexercice-suivant">Ce qui entre dans l’exercice suivant</h2>
<p>Avant de perdre l’archive, nous avons enregistré quatre messages avec leur bon service. Nous avons maintenant quatre nouvelles réclamations. Sans révisions, le modèle apprend sur quatre nouveaux messages. Avec révisions, il s’exerce aussi sur quatre anciens : il reçoit de nouveau le signal que « Où est le colis ? » relève de la livraison. Dans ce petit exemple, nous utilisons tout le tampon ; les tampons plus grands fournissent en général une portion tirée au sort.</p>
<p>Il ne suffit pourtant pas de compter les places en mémoire. Quatre questions enregistrées sur la livraison ne contiennent pas un seul exemple de retour. Si l’on remplace deux d’entre elles par « Comment renvoyer un achat ? » et « Je veux retourner une chemise », le nombre de révisions reste le même, mais elles couvrent les deux anciens services. L’expérience ci-dessous <strong>compte les exemples dans le lot de données ; elle ne prédit pas l’exactitude du modèle</strong>.</p>
<div id="experience-replay-lab"></div>
<h2 id="les-révisions-naident-que-sur-les-données-disponibles">Les révisions n’aident que sur les données disponibles</h2>
<p>Le modèle reçoit une occasion de s’exercer sur ses réponses antérieures, mais pas la garantie de conserver toutes ses compétences. Un petit échantillon aléatoire peut laisser complètement de côté une catégorie rare ; les chercheurs ont observé ce problème avec de très petits tampons (§4.4 du même article). Nos messages sont un exemple personnel, pas un résultat de ces expériences. L’effet de l’apprentissage doit être vérifié sur des messages anciens et nouveaux mis à part, non utilisés pour l’entraînement. Le tampon occupe aussi de la mémoire et oblige à conserver les données choisies.</p>
<p>Voir aussi : <a href="https://paweldubiel.com/fr/glossary/reservoir-sampling">Reservoir Sampling</a> — une façon de décider quels exemples du flux entrent dans un tampon de taille fixe, en donnant à chacun une chance égale.</p>
<p>Dans les jeux, en <a href="https://paweldubiel.com/glossary/reinforcement-learning" hreflang="pl">Reinforcement Learning [Polski]</a> — l’apprentissage d’actions à partir de récompenses —, on conserve la situation, l’action, la récompense et la situation suivante. Tirer au sort ces enregistrements réduit la dépendance aux événements qui se suivent immédiatement (<a href="https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf#page=7" rel="noopener noreferrer">Mnih et al., <em>Human-level control through deep reinforcement learning</em>, Methods, « Training algorithm for deep Q-networks »</a>). Ce ne sont pas les mêmes données qu’un message accompagné de son bon service ; les résultats obtenus sur Atari ne doivent pas être transposés tels quels aux LLM.</p>
<ul>
<li><a href="https://paweldubiel.com/fr/glossary/continual-learning">Continual Learning</a> définit l’objectif : poursuivre l’apprentissage en conservant les capacités antérieures ; l’ER est l’un des moyens d’y parvenir.</li>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> décrit une forte dégradation des anciennes compétences, que les révisions peuvent limiter.</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> est la poursuite de l’entraînement d’un modèle ; le replay modifie le choix de ses données. Coller d’anciens messages dans une conversation ne constitue pas une telle mise à jour du modèle.</li>
</ul>
<p><em>Texte et illustration préparés avec l’aide de l’IA. Les messages et la démonstration sont un exemple pédagogique personnel simplifié ; l’illustration est une métaphore, pas un schéma de la structure d’un modèle.</em></p>]]></content:encoded>
</item>
<item>
  <title>Continual Learning</title>
  <link>https://paweldubiel.com/fr/glossary/continual-learning</link>
  <guid isPermaLink="true">https://paweldubiel.com/fr/glossary/continual-learning</guid>
  <pubDate>Sat, 10 Oct 2026 20:03:52 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>Un modèle oriente les messages des clients vers les services « commandes » et « retours ». Il sait reconnaître « Où est mon colis ? ». L’entreprise ouvre maintenant un service des réclamations.</description>
  <content:encoded><![CDATA[<p>Un modèle oriente les messages des clients vers les services « commandes » et « retours ». Il sait reconnaître « Où est mon colis ? ». L’entreprise ouvre maintenant un service des réclamations. Vous poursuivez l’entraînement du modèle sur des messages qui parlent de produits endommagés. Les réclamations sont de mieux en mieux orientées, mais une partie des questions sur la livraison commence elle aussi à atterrir dans le nouveau service. Ne vérifier que les réclamations donnerait une fausse impression de progrès.</p>
<p>Il vous faut <strong>apprendre de nouvelles choses au modèle tout en conservant ses compétences antérieures</strong>. C’est l’objectif du <strong>Continual Learning</strong> : un apprentissage sur des données ou des tâches qui arrivent les unes après les autres, en tenant compte de ce que le modèle a appris auparavant. Le nom désigne un problème et une famille d’approches ; il ne garantit pas l’absence d’oubli. Ce besoin est décrit par <a href="https://arxiv.org/html/1612.00796v2#S1" rel="noopener noreferrer">Kirkpatrick et al., <em>Overcoming catastrophic forgetting in neural networks</em>, §1</a>.</p>
<p><img src="https://paweldubiel.com/assets/continual-learning-embroidered-sampler-growing-repertoire.webp" alt="Sur un même morceau de tissu, des cercles et des triangles brodés restent en place, tandis que l’aiguille ajoute un nouveau motif ondulé : une métaphore du développement des compétences sans perte des précédentes." loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="ce-que-lon-change-dans-lapprentissage-et-dans-la-vérification">Ce que l’on change dans l’apprentissage et dans la vérification</h2>
<p>Supposons que l’archive complète des exemples utilisés pour l’apprentissage précédent ne soit plus disponible. Avant sa suppression, nous en avons conservé un petit échantillon : 20 messages dont le bon service est connu. L’une des méthodes possibles consiste à mélanger cet échantillon aux nouveaux exemples de réclamations. La suite de l’apprentissage reçoit ainsi également le signal qu’il faut continuer à traiter correctement « Où est mon colis ? ». La réutilisation d’anciens exemples est l’une des stratégies décrites par <a href="https://arxiv.org/pdf/1904.07734v1" rel="noopener noreferrer">van de Ven et Tolias, <em>Three scenarios for continual learning</em>, §3.3</a>.</p>
<p>Voir aussi : <a href="https://paweldubiel.com/fr/glossary/experience-replay">Experience Replay</a> — conserver un petit échantillon d’anciens exemples et le mélanger au nouvel apprentissage.</p>
<p>L’équipe d’évaluation garde à part un test d’anciens messages, que nous <strong>n’utilisons pas pour l’apprentissage</strong>. Après chaque mise à jour, nous vérifions les anciennes catégories et les nouvelles. Les chiffres ci-dessous sont un exemple inventé, pas le résultat d’une étude ; chaque test contient 100 messages.</p>

























<table><thead><tr><th>Variante du modèle</th><th>Anciens messages corrects</th><th>Réclamations correctes</th></tr></thead><tbody><tr><td>Avant le nouvel apprentissage</td><td>90/100</td><td>0/100 — cette catégorie n’existe pas</td></tr><tr><td>Après un apprentissage sur les seules réclamations</td><td>40/100</td><td>92/100</td></tr><tr><td>Après un apprentissage avec l’échantillon d’anciens messages</td><td>89/100</td><td>87/100</td></tr></tbody></table>
<p>La dernière variante conserve mieux la compétence antérieure, même si elle reconnaît moins bien les réclamations que la deuxième. Le tableau montre <strong>ce qu’il faut comparer</strong> ; il ne promet pas un tel résultat après l’ajout de 20 exemples.</p>
<h2 id="les-conditions-changent-la-difficulté">Les conditions changent la difficulté</h2>
<p>Dans notre exemple, le modèle choisit lui-même parmi tous les services qu’il connaît. Un indice du type « ce message relève de la nouvelle catégorie » faciliterait le test. La disponibilité de tels indices et des frontières entre les tâches compte lorsqu’on compare des méthodes (<a href="https://arxiv.org/pdf/1904.07734v1" rel="noopener noreferrer">van de Ven et Tolias, §2–2.3</a>). Un petit échantillon peut laisser de côté les questions rares ; une bonne moyenne ne prouve pas que chaque compétence a été conservée.</p>
<ul>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> décrit une forte dégradation des anciennes compétences ; sa démonstration montre comment un nouvel apprentissage modifie des réglages partagés.</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> est la poursuite de l’entraînement d’un modèle sur des exemples choisis. Après chaque nouvel entraînement, nous vérifions aussi les capacités antérieures.</li>
<li><a href="https://paweldubiel.com/glossary/knowledge-distillation" hreflang="pl">Knowledge Distillation [Polski]</a> peut transmettre des indications d’un modèle plus ancien au modèle mis à jour ; c’est une autre stratégie que la conservation des messages d’origine (§3.3 de l’article de van de Ven et Tolias).</li>
</ul>
<p><em>Texte et illustration préparés avec l’aide de l’IA ; les messages, la taille de l’échantillon et les résultats du tableau sont un exemple pédagogique personnel. L’illustration montre l’objectif de conservation des compétences antérieures, pas la structure d’un modèle.</em></p>]]></content:encoded>
</item>
</channel>
</rss>