{"id":290,"date":"2026-10-05T14:58:42","date_gmt":"2026-10-05T12:58:42","guid":{"rendered":"https:\/\/www.ranksignal.fr\/blog\/?p=290"},"modified":"2026-10-14T17:34:36","modified_gmt":"2026-10-14T15:34:36","slug":"qu-est-ce-qu-un-transformer","status":"publish","type":"post","link":"https:\/\/www.ranksignal.fr\/blog\/deep-learning\/qu-est-ce-qu-un-transformer\/","title":{"rendered":"Qu&rsquo;est-ce qu&rsquo;un Transformer ? L&rsquo;architecture derri\u00e8re les LLM"},"content":{"rendered":"<p><\/p>\n<p>\u00ab L&rsquo;animal n&rsquo;a pas travers\u00e9 la rue parce qu&rsquo;elle \u00e9tait trop large. \u00bb Tu sais sans effort que \u00ab elle \u00bb d\u00e9signe la rue, pas l&rsquo;animal. Pour une machine, c&rsquo;est un vrai casse-t\u00eate : il faut relier deux mots \u00e9loign\u00e9s l&rsquo;un de l&rsquo;autre. Le Transformer est l&rsquo;architecture qui sait le faire, et celle sur laquelle reposent presque tous les <a href=\"\/blog\/inference\/qu-est-ce-qu-un-llm\/\" title=\"grands mod\u00e8les de langage\">grands mod\u00e8les de langage<\/a> actuels. \u00c0 la fin de cette lecture, tu sauras expliquer de quoi il est fait, comment il apprend et o\u00f9 il s&rsquo;arr\u00eate.<\/p>\n<p><strong>Sommaire<\/strong><\/p>\n<ul>\n<li><a href=\"#l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/a><\/li>\n<li><a href=\"#pourquoi-les-reseaux-recurrents-ont-atteint-leur-limite\">Pourquoi les r\u00e9seaux r\u00e9currents ont atteint leur limite<\/a><\/li>\n<li><a href=\"#ce-qu-est-un-transformer-une-pile-de-blocs-d-auto-attention\">Ce qu&rsquo;est un Transformer : une pile de blocs d&rsquo;auto-attention<\/a><\/li>\n<li><a href=\"#l-auto-attention-chaque-mot-interroge-tous-les-autres\">L&rsquo;auto-attention : chaque mot interroge tous les autres<\/a><\/li>\n<li><a href=\"#un-bloc-quatre-pieces-et-un-detail-d-ordre\">Un bloc, quatre pi\u00e8ces, et un d\u00e9tail d&rsquo;ordre<\/a><\/li>\n<li><a href=\"#encodeur-decodeur-ou-les-deux\">Encodeur, d\u00e9codeur ou les deux ?<\/a><\/li>\n<li><a href=\"#comment-il-apprend-deviner-le-mot-suivant\">Comment il apprend : deviner le mot suivant<\/a><\/li>\n<li><a href=\"#a-quoi-on-l-utilise\">\u00c0 quoi on l&rsquo;utilise<\/a><\/li>\n<li><a href=\"#ce-qu-un-transformer-ne-fait-pas-limites-et-idees-recues\">Ce qu&rsquo;un Transformer ne fait pas : limites et id\u00e9es re\u00e7ues<\/a><\/li>\n<\/ul>\n<h2 id=\"l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/h2>\n<ul>\n<li>Un Transformer est <strong>une pile de blocs quasi identiques<\/strong>, tous construits autour de l&rsquo;auto-attention : chaque mot pond\u00e8re l&rsquo;importance de tous les autres.<\/li>\n<li>Il a <strong>supprim\u00e9 les <a href=\"\/blog\/deep-learning\/que-sont-les-reseaux-recurrents\/\" title=\"r\u00e9seaux r\u00e9currents\">r\u00e9seaux r\u00e9currents<\/a><\/strong> : plus de lecture mot apr\u00e8s mot, donc des calculs parall\u00e9lisables sur GPU.<\/li>\n<li>Chaque bloc combine <strong>attention, r\u00e9seau feedforward, raccourcis et normalisation<\/strong>, et un encodage positionnel rend \u00e0 la phrase son ordre.<\/li>\n<li>Il existe <strong>encodeur seul, d\u00e9codeur seul, ou les deux<\/strong> ; presque tous les mod\u00e8les g\u00e9n\u00e9ratifs sont des d\u00e9codeurs seuls.<\/li>\n<li>Son talon d&rsquo;Achille est <strong>un co\u00fbt quadratique avec la longueur<\/strong> du texte.<\/li>\n<\/ul>\n<h2 id=\"pourquoi-les-reseaux-recurrents-ont-atteint-leur-limite\">Pourquoi les r\u00e9seaux r\u00e9currents ont atteint leur limite<\/h2>\n<p>Avant le Transformer, on lisait le texte comme on lit \u00e0 voix haute : un mot apr\u00e8s l&rsquo;autre, en gardant en m\u00e9moire un r\u00e9sum\u00e9 de ce qui pr\u00e9c\u00e8de. C&rsquo;est le principe du r\u00e9seau r\u00e9current (RNN), qui maintient un \u00e9tat interne mis \u00e0 jour \u00e0 chaque mot.<\/p>\n<p>Pour traduire, on branchait deux de ces r\u00e9seaux bout \u00e0 bout : un encodeur qui condense la phrase d&rsquo;entr\u00e9e en une repr\u00e9sentation succincte, un d\u00e9codeur qui s&rsquo;en sert pour \u00e9crire la traduction.<\/p>\n<p>Cette m\u00e9canique pose trois probl\u00e8mes. D&rsquo;abord l&rsquo;<strong>alignement<\/strong> : traduire \u00ab she doesn&rsquo;t like potatoes \u00bb par \u00ab elle n&rsquo;aime pas les pommes de terre \u00bb fait passer de quatre \u00e0 six mots, et il faut savoir quel mot r\u00e9pond \u00e0 quel mot. Ensuite les gradients qui s&rsquo;\u00e9vanouissent ou explosent, ce qui emp\u00eache d&#8217;empiler beaucoup de couches. Enfin, un calcul <strong>impossible \u00e0 parall\u00e9liser<\/strong>, avec un r\u00e9seau qui oublie apr\u00e8s quelques pas.<\/p>\n<p>La premi\u00e8re r\u00e9ponse a \u00e9t\u00e9 le m\u00e9canisme d&rsquo;attention. Au lieu de transmettre un seul \u00e9tat cach\u00e9, on transmet un contexte qui se concentre, \u00e0 chaque mot produit, sur les parties utiles de la phrase d&rsquo;entr\u00e9e.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46d40790&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46d40790\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1485\" height=\"1219\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_attention_alignement.png\" alt=\"Matrice d'alignement : chaque ligne est un mot fran\u00e7ais produit, chaque colonne un mot anglais, et la teinte indique la part d'attention accord\u00e9e\" class=\"wp-image-282\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_attention_alignement.png 1485w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_attention_alignement-300x246.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_attention_alignement-1024x841.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_attention_alignement-768x630.png 768w\" sizes=\"auto, (max-width: 1485px) 100vw, 1485px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Lis une ligne de gauche \u00e0 droite : elle montre o\u00f9 le mod\u00e8le \u00ab regarde \u00bb pour produire ce mot, avec des cases fonc\u00e9es sur les mots qui se correspondent (les valeurs sont illustratives).<\/figcaption><\/figure>\n\n\n<p>Cette id\u00e9e a des b\u00e9n\u00e9fices en cascade : elle offre un raccourci vers les \u00e9tats pr\u00e9coces (donc moins de gradient \u00e9vanescent), supprime le goulot d&rsquo;\u00e9tranglement du r\u00e9sum\u00e9 unique et laisse voir quels mots ont servi \u00e0 l&rsquo;alignement.<\/p>\n<p>Des chercheurs de Google en ont tir\u00e9 une conclusion radicale : plut\u00f4t que d&rsquo;am\u00e9liorer les r\u00e9seaux r\u00e9currents, <strong>les supprimer purement et simplement<\/strong>. Le Transformer est n\u00e9 de ce pari, en 2017.<\/p>\n<h2 id=\"ce-qu-est-un-transformer-une-pile-de-blocs-d-auto-attention\">Ce qu&rsquo;est un Transformer : une pile de blocs d&rsquo;auto-attention<\/h2>\n<p>Un Transformer est un <a href=\"\/blog\/deep-learning\/qu-est-ce-qu-un-modele-d-apprentissage-profond\/\" title=\"mod\u00e8le d&#x27;apprentissage profond\">mod\u00e8le d&rsquo;apprentissage profond<\/a> constitu\u00e9 de <a href=\"\/blog\/deep-learning\/que-sont-les-couches-d-auto-attention\/\" title=\"couches d&#x27;auto-attention\">couches d&rsquo;auto-attention<\/a> multi-t\u00eate empil\u00e9es, qui apprend ainsi une repr\u00e9sentation du texte de plus en plus riche \u00e0 mesure qu&rsquo;on monte dans la pile.<\/p>\n<p>Le texte y entre sous forme de nombres. Une premi\u00e8re \u00e9tape, la tokenisation, le d\u00e9coupe en jetons ; une seconde, l&rsquo;<a href=\"\/blog\/rag\/que-sont-les-embeddings\/\" title=\"embedding\">embedding<\/a>, associe un vecteur \u00e0 chaque jeton.<\/p>\n<p>Deux m\u00e9canismes se partagent ensuite le travail : l&rsquo;attention, qui p\u00e8se l&rsquo;importance de chaque mot pour chaque autre, et l&rsquo;encodage positionnel, qui garde la trace de l&rsquo;ordre des mots.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46d40c2c&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46d40c2c\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2550\" height=\"1650\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_transformer_attention.png\" alt=\"Sch\u00e9ma : une s\u00e9quence d'entr\u00e9e passe en parall\u00e8le par l'attention et par l'encodage positionnel, puis produit le texte g\u00e9n\u00e9r\u00e9\" class=\"wp-image-283\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_transformer_attention.png 2550w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_transformer_attention-300x194.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_transformer_attention-1024x663.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_transformer_attention-768x497.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_transformer_attention-1536x994.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_transformer_attention-2048x1325.png 2048w\" sizes=\"auto, (max-width: 2550px) 100vw, 2550px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Retiens la structure en deux flux : l&rsquo;attention dit qui est reli\u00e9 \u00e0 qui, l&rsquo;encodage positionnel dit qui est o\u00f9. Dans la phrase de l&rsquo;animal et de la rue, c&rsquo;est l&rsquo;attention qui permet de relier \u00ab elle \u00bb \u00e0 un mot lointain.<\/figcaption><\/figure>\n\n\n<p>Un point de vocabulaire : un LLM est simplement un Transformer de plus de 10 milliards de param\u00e8tres, entra\u00een\u00e9 sur d&rsquo;\u00e9normes quantit\u00e9s de texte \u00e0 pr\u00e9dire le mot suivant.<\/p>\n<h2 id=\"l-auto-attention-chaque-mot-interroge-tous-les-autres\">L&rsquo;auto-attention : chaque mot interroge tous les autres<\/h2>\n<p>Pour saisir le principe, pense \u00e0 une biblioth\u00e8que. Tu pr\u00e9pares un essai sur la R\u00e9volution fran\u00e7aise : c&rsquo;est ta <strong>requ\u00eate<\/strong>. Tu ne lis pas tous les volumes ; tu parcours les dos (les cl\u00e9s) pour rep\u00e9rer ceux d&rsquo;histoire de France, dont le contenu (la valeur) t&rsquo;int\u00e9resse. L&rsquo;auto-attention, c&rsquo;est cette recherche men\u00e9e par chaque mot dans son propre contexte.<\/p>\n<p>Concr\u00e8tement, l&rsquo;entr\u00e9e <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-d4ee28752517d6062a3ca0314890342d_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#88;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"16\" style=\"vertical-align: 0px;\"\/> est un tableau qui contient un vecteur par jeton. On la multiplie par trois matrices de poids, apprises pendant l&rsquo;entra\u00eenement :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 17px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-60b1b8c99c0762f15118e803bf414627_l3.png\" height=\"17\" width=\"341\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#81;&#61;&#88;&#87;&#95;&#81;&#44;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#75;&#61;&#88;&#87;&#95;&#75;&#44;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#86;&#61;&#88;&#87;&#95;&#86;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-2c758bec4c272382411b95fc0e7ee250_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#81;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"14\" style=\"vertical-align: -4px;\"\/> est le centre d&rsquo;attention du moment, <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-ea9c87a513e4a72624155d392fae86e2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#75;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"16\" style=\"vertical-align: 0px;\"\/> renseigne le mod\u00e8le sur les autres entr\u00e9es, et <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-63ada879859a9e41fd935f035b7313bc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#86;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/> sert \u00e0 extraire l&rsquo;information finale.<\/p>\n<p>Il reste \u00e0 comparer et \u00e0 m\u00e9langer :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 45px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-b4a0c8ab6def29e3f6029fce3672b97c_l3.png\" height=\"45\" width=\"321\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#92;&#109;&#97;&#116;&#104;&#114;&#109;&#123;&#65;&#116;&#116;&#101;&#110;&#116;&#105;&#111;&#110;&#125;&#40;&#81;&#44;&#75;&#44;&#86;&#41;&#61;&#92;&#109;&#97;&#116;&#104;&#114;&#109;&#123;&#115;&#111;&#102;&#116;&#109;&#97;&#120;&#125;&#92;&#33;&#92;&#108;&#101;&#102;&#116;&#40;&#92;&#102;&#114;&#97;&#99;&#123;&#81;&#75;&#94;&#123;&#84;&#125;&#125;&#123;&#92;&#115;&#113;&#114;&#116;&#123;&#100;&#95;&#107;&#125;&#125;&#92;&#114;&#105;&#103;&#104;&#116;&#41;&#86;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Le produit <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-b73f56284f1a0b59708c7dbc60f522ed_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#81;&#75;&#94;&#123;&#84;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"19\" width=\"40\" style=\"vertical-align: -4px;\"\/> compare chaque requ\u00eate \u00e0 chaque cl\u00e9, la <a href=\"\/blog\/maths\/softmax\/\" title=\"softmax\">softmax<\/a> transforme ces scores en poids compris entre 0 et 1, et ces poids servent \u00e0 faire une moyenne pond\u00e9r\u00e9e des valeurs <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-63ada879859a9e41fd935f035b7313bc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#86;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/>.<\/p>\n<p>Le diviseur <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-0887ac312e8d3a39ae4869b2e0e0c478_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#115;&#113;&#114;&#116;&#123;&#100;&#95;&#107;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"18\" width=\"32\" style=\"vertical-align: -3px;\"\/> n&rsquo;est pas d\u00e9coratif : quand les vecteurs s&rsquo;allongent, le produit scalaire devient tr\u00e8s grand, la softmax concentre alors toute la probabilit\u00e9 sur quelques \u00e9l\u00e9ments et les gradients deviennent minuscules. <strong>Diviser par la racine de la dimension<\/strong> corrige cela.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46d41020&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46d41020\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2340\" height=\"1320\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_auto_attention_qkv.png\" alt=\"Auto-attention : l'entr\u00e9e est projet\u00e9e en question, \u00e9tiquette et contenu ; la softmax du produit question-\u00e9tiquette pond\u00e8re les contenus pour former la sortie\" class=\"wp-image-284\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_auto_attention_qkv.png 2340w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_auto_attention_qkv-300x169.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_auto_attention_qkv-1024x578.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_auto_attention_qkv-768x433.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_auto_attention_qkv-1536x866.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_auto_attention_qkv-2048x1155.png 2048w\" sizes=\"auto, (max-width: 2340px) 100vw, 2340px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Suis le sch\u00e9ma de haut en bas : trois projections de la m\u00eame entr\u00e9e, un calcul de poids entre 0 et 1, puis une sortie qui est la somme des contenus pond\u00e9r\u00e9e par ces poids.<\/figcaption><\/figure>\n\n\n<p>Un seul calcul de ce genre ne capte qu&rsquo;un type de lien. L&rsquo;<strong>attention multi-t\u00eate<\/strong> en lance plusieurs en parall\u00e8le : un m\u00eame mot peut \u00eatre reli\u00e9 \u00e0 plusieurs autres, chacun sous un angle diff\u00e9rent. \u00c0 l&rsquo;entra\u00eenement, les matrices <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-ea9c87a513e4a72624155d392fae86e2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#75;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"16\" style=\"vertical-align: 0px;\"\/> et <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-2c758bec4c272382411b95fc0e7ee250_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#81;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"14\" style=\"vertical-align: -4px;\"\/> de chaque t\u00eate se sp\u00e9cialisent dans des relations distinctes ; les sorties sont concat\u00e9n\u00e9es puis ramen\u00e9es \u00e0 la taille d&rsquo;entr\u00e9e par une projection lin\u00e9aire.<\/p>\n<p>On peut regarder ces t\u00eates travailler. Avec la <a href=\"\/blog\/deep-learning\/la-bibliotheque-bertviz\/\" title=\"biblioth\u00e8que BERTviz\">biblioth\u00e8que BERTviz<\/a>, une seule ligne ouvre une vue interactive des poids d&rsquo;attention :<\/p>\n<pre><code>head_view(attention, tokens, sentence_b_start)\n<\/code><\/pre>\n<p>Ici, <code>attention<\/code>, <code>tokens<\/code> et <code>sentence_b_start<\/code> viennent d&rsquo;un mod\u00e8le BERT d\u00e9j\u00e0 pass\u00e9 sur une paire de phrases. Ce mod\u00e8le compte 12 t\u00eates dans chacune de ses 12 couches, soit <strong>144 t\u00eates d&rsquo;attention<\/strong>, donc plus de cent lectures diff\u00e9rentes d&rsquo;une m\u00eame phrase.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Intuition<\/strong> L&rsquo;auto-attention n&rsquo;a pas besoin qu&rsquo;on lui dise quoi regarder : elle apprend, pour chaque mot, quels autres mots m\u00e9ritent d&rsquo;\u00eatre consult\u00e9s.<\/p>\n<\/blockquote>\n<h2 id=\"un-bloc-quatre-pieces-et-un-detail-d-ordre\">Un bloc, quatre pi\u00e8ces, et un d\u00e9tail d&rsquo;ordre<\/h2>\n<p>L&rsquo;auto-attention ne conna\u00eet pas l&rsquo;ordre des mots : \u00ab le chien mord l&rsquo;homme \u00bb et \u00ab l&rsquo;homme mord le chien \u00bb lui paraissent identiques. D&rsquo;o\u00f9 l&rsquo;<strong>encodage positionnel<\/strong>, une fonction qui s&rsquo;ajoute aux embeddings pour inscrire la position de chaque jeton :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 33px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-03cc90be7f72f70a8df430eb5b257551_l3.png\" height=\"33\" width=\"503\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#80;&#69;&#95;&#123;&#40;&#112;&#111;&#115;&#44;&#50;&#105;&#41;&#125;&#61;&#92;&#115;&#105;&#110;&#92;&#33;&#92;&#108;&#101;&#102;&#116;&#40;&#92;&#102;&#114;&#97;&#99;&#123;&#112;&#111;&#115;&#125;&#123;&#49;&#48;&#48;&#48;&#48;&#94;&#123;&#50;&#105;&#47;&#100;&#125;&#125;&#92;&#114;&#105;&#103;&#104;&#116;&#41;&#44;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#80;&#69;&#95;&#123;&#40;&#112;&#111;&#115;&#44;&#50;&#105;&#43;&#49;&#41;&#125;&#61;&#92;&#99;&#111;&#115;&#92;&#33;&#92;&#108;&#101;&#102;&#116;&#40;&#92;&#102;&#114;&#97;&#99;&#123;&#112;&#111;&#115;&#125;&#123;&#49;&#48;&#48;&#48;&#48;&#94;&#123;&#50;&#105;&#47;&#100;&#125;&#125;&#92;&#114;&#105;&#103;&#104;&#116;&#41;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Pour chaque position <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-f4b173a4ae71b31a6400c8189d092005_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;&#111;&#115;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"27\" style=\"vertical-align: -4px;\"\/> et chaque dimension (paire ou impaire), on obtient une valeur de sinus ou de cosinus ; cette fonction n&rsquo;a aucun param\u00e8tre \u00e0 apprendre.<\/p>\n<p>Le vecteur ainsi enrichi entre dans un <strong>bloc transformer<\/strong>, compos\u00e9 de quatre \u00e9l\u00e9ments : l&rsquo;attention multi-t\u00eate, une couche feedforward, des connexions r\u00e9siduelles et une normalisation de couche.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46d413fc&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46d413fc\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1863\" height=\"2070\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_bloc_transformer.png\" alt=\"Un bloc transformer : attention multi-t\u00eate, addition r\u00e9siduelle et normalisation, r\u00e9seau feed-forward, de nouveau addition et normalisation\" class=\"wp-image-285\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_bloc_transformer.png 1863w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_bloc_transformer-270x300.png 270w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_bloc_transformer-922x1024.png 922w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_bloc_transformer-768x853.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_bloc_transformer-1382x1536.png 1382w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_bloc_transformer-1843x2048.png 1843w\" sizes=\"auto, (max-width: 1863px) 100vw, 1863px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Regarde la sortie : elle a exactement la taille de l&rsquo;entr\u00e9e, et c&rsquo;est ce qui permet d&#8217;empiler les blocs sans rien adapter entre eux.<\/figcaption><\/figure>\n\n\n<p>Le r\u00e9seau feedforward est form\u00e9 de deux couches lin\u00e9aires s\u00e9par\u00e9es par une activation ReLU, avec des poids propres \u00e0 chaque position :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 19px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-684a7fdc0ce31e1c21c0c4bb244d61c8_l3.png\" height=\"19\" width=\"285\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#92;&#109;&#97;&#116;&#104;&#114;&#109;&#123;&#70;&#70;&#78;&#125;&#40;&#120;&#41;&#61;&#92;&#109;&#97;&#120;&#40;&#48;&#44;&#120;&#87;&#95;&#49;&#43;&#98;&#95;&#49;&#41;&#87;&#95;&#50;&#43;&#98;&#95;&#50;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Il ajoute de la non-lin\u00e9arit\u00e9 \u00e0 l&rsquo;attention et se parall\u00e9lise facilement. Il p\u00e8se aussi lourd : <strong>environ 66 % des param\u00e8tres<\/strong> du bloc.<\/p>\n<p>Les <strong>connexions r\u00e9siduelles<\/strong> additionnent l&rsquo;entr\u00e9e d&rsquo;une sous-couche \u00e0 sa sortie, ce qui cr\u00e9e un raccourci par lequel le gradient redescend vers les couches basses. Il y en a deux par bloc, autour de l&rsquo;attention et autour du feedforward.<\/p>\n<p>La <strong>normalisation de couche<\/strong> garde les valeurs cach\u00e9es dans une plage stable en centrant et r\u00e9duisant chaque vecteur :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 64px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-4f6e569cefe3840afe2308ae9dda6351_l3.png\" height=\"64\" width=\"429\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#92;&#109;&#117;&#61;&#92;&#102;&#114;&#97;&#99;&#123;&#49;&#125;&#123;&#100;&#125;&#92;&#115;&#117;&#109;&#95;&#123;&#105;&#61;&#49;&#125;&#94;&#123;&#100;&#125;&#120;&#95;&#105;&#44;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#92;&#115;&#105;&#103;&#109;&#97;&#61;&#92;&#115;&#113;&#114;&#116;&#123;&#92;&#102;&#114;&#97;&#99;&#123;&#49;&#125;&#123;&#100;&#125;&#92;&#115;&#117;&#109;&#95;&#123;&#105;&#61;&#49;&#125;&#94;&#123;&#100;&#125;&#40;&#120;&#95;&#105;&#45;&#92;&#109;&#117;&#41;&#94;&#50;&#125;&#44;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#92;&#104;&#97;&#116;&#32;&#120;&#61;&#92;&#102;&#114;&#97;&#99;&#123;&#120;&#45;&#92;&#109;&#117;&#125;&#123;&#92;&#115;&#105;&#103;&#109;&#97;&#125;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Ici <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-461fe1a58a75801541487ddf10d32abd_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#109;&#117;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"11\" style=\"vertical-align: -4px;\"\/> est la moyenne du vecteur <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-ede05c264bba0eda080918aaa09c4658_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#120;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"10\" style=\"vertical-align: 0px;\"\/> de dimension <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-4e8716946f6a868f015e0d62f28bc540_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#100;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: 0px;\"\/>, <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-1c9cc40f96a1492e298e7da85a2c1692_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#115;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"11\" style=\"vertical-align: 0px;\"\/> son \u00e9cart-type, et <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-0dcea2b69c13f530fe0536612992690a_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#104;&#97;&#116;&#32;&#120;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: 0px;\"\/> le vecteur recentr\u00e9 ; deux param\u00e8tres appris (<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-4de02fc502ed5dbd15f371728ea270a3_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#103;&#97;&#109;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: -4px;\"\/> et <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-b6a7605b1bcca8f1b416eaf733f34e08_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#98;&#101;&#116;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"17\" width=\"11\" style=\"vertical-align: -4px;\"\/>) remettent ensuite le r\u00e9sultat \u00e0 l&rsquo;\u00e9chelle. Cela r\u00e9duit la variabilit\u00e9 sans int\u00e9r\u00eat pour l&rsquo;apprentissage.<\/p>\n<p>Reste \u00e0 empiler. Un mod\u00e8le moderne encha\u00eene jusqu&rsquo;\u00e0 <strong>96 blocs<\/strong> de structure presque identique, et le texte gagne en contexte \u00e0 chaque \u00e9tage.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46d417b1&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46d417b1\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1067\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-scaled.png\" alt=\"Pipeline d'un mod\u00e8le transformer : embedding, blocs r\u00e9p\u00e9t\u00e9s des dizaines \u00e0 centaines de fois, t\u00eate de sortie qui produit un score par mot du vocabulaire\" class=\"wp-image-286\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-300x125.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-1024x427.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-768x320.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-1536x640.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b3_ch03_anatomie_bloc_transformer-2048x853.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Lis ce sch\u00e9ma comme le plan d&rsquo;ensemble : des vecteurs entrent, traversent la pile, et la t\u00eate de sortie rend un score pour chaque jeton du vocabulaire.<\/figcaption><\/figure>\n\n\n<blockquote>\n<p><strong>\ud83d\udccc \u00c0 retenir<\/strong> Les mod\u00e8les actuels n&rsquo;inventent pas de nouvelle pi\u00e8ce \u00e0 chaque \u00e9tage : ils r\u00e9p\u00e8tent le m\u00eame bloc, et c&rsquo;est la profondeur qui fait monter la sophistication.<\/p>\n<\/blockquote>\n<h2 id=\"encodeur-decodeur-ou-les-deux\">Encodeur, d\u00e9codeur ou les deux ?<\/h2>\n<p>Le Transformer d&rsquo;origine, con\u00e7u pour la traduction, associe deux moiti\u00e9s. L&rsquo;encodeur re\u00e7oit le texte \u00e0 traduire ; le d\u00e9codeur produit la traduction. Dans le d\u00e9codeur, une <strong>attention crois\u00e9e<\/strong> fait le pont : ses requ\u00eates viennent du d\u00e9codeur, le reste vient de l&rsquo;encodeur, pour que la g\u00e9n\u00e9ration soit conditionn\u00e9e par l&rsquo;entr\u00e9e.<\/p>\n<p>Le d\u00e9codeur porte aussi un masque qui lui interdit de regarder le futur. Si le mod\u00e8le voyait d\u00e9j\u00e0 le mot \u00e0 pr\u00e9dire, il y aurait fuite de donn\u00e9es ; la partie triangulaire sup\u00e9rieure de la matrice d&rsquo;attention est donc remplac\u00e9e par <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-46ff86acf9d540b0b8101bd9737e8e5c_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#45;&#92;&#105;&#110;&#102;&#116;&#121;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"30\" style=\"vertical-align: 0px;\"\/>.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46d41ba8&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46d41ba8\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2119\" height=\"1117\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_masque_causal_bidirectionnel.png\" alt=\"Deux masques d'attention : \u00e0 gauche le masque causal en escalier, \u00e0 droite l'attention bidirectionnelle enti\u00e8rement pleine\" class=\"wp-image-287\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_masque_causal_bidirectionnel.png 2119w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_masque_causal_bidirectionnel-300x158.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_masque_causal_bidirectionnel-1024x540.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_masque_causal_bidirectionnel-768x405.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_masque_causal_bidirectionnel-1536x810.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch02_masque_causal_bidirectionnel-2048x1080.png 2048w\" sizes=\"auto, (max-width: 2119px) 100vw, 2119px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">\u00c0 gauche, chaque jeton ne regarde que lui-m\u00eame et ses pr\u00e9d\u00e9cesseurs ; \u00e0 droite, tout est visible. Ces deux motifs d\u00e9finissent deux grandes familles de mod\u00e8les.<\/figcaption><\/figure>\n\n\n<p><a href=\"\/blog\/deep-learning\/le-modele-bert\/\" title=\"BERT\">BERT<\/a> garde uniquement l&rsquo;encodeur et lit toute la s\u00e9quence d&rsquo;un coup. Comme le mot suivant serait trop facile \u00e0 deviner, on le dresse autrement : environ 15 % des jetons sont cach\u00e9s derri\u00e8re un jeton <code>&lt;MASK&gt;<\/code> et il doit les retrouver. Deux jetons sp\u00e9ciaux aident : <code>[CLS]<\/code> ouvre l&rsquo;entr\u00e9e, <code>[SEP]<\/code> s\u00e9pare deux phrases.<\/p>\n<p>BERT existe en deux tailles : <strong>12 couches et 110 millions de param\u00e8tres<\/strong> pour BERT-BASE, 24 couches et 340 millions pour BERT-LARGE.<\/p>\n<p><strong>GPT-2<\/strong> prend le parti inverse : un d\u00e9codeur seul, causal, pr\u00e9-entra\u00een\u00e9 sur environ 40 Go de texte pour pr\u00e9dire le jeton suivant, de 12 couches (petite version) \u00e0 48 (version XL). Il produit un jeton \u00e0 la fois, qu&rsquo;il rajoute \u00e0 l&rsquo;entr\u00e9e pour produire le suivant.<\/p>\n<p>Les encodeurs ne sont pas faits pour g\u00e9n\u00e9rer, justement \u00e0 cause de l&rsquo;entra\u00eenement par masquage ; les d\u00e9codeurs, si. Pour l&rsquo;IA g\u00e9n\u00e9rative, <strong>ce sont pratiquement tous des d\u00e9codeurs seuls<\/strong>.<\/p>\n<h2 id=\"comment-il-apprend-deviner-le-mot-suivant\">Comment il apprend : deviner le mot suivant<\/h2>\n<p>On pourrait croire qu&rsquo;un tel syst\u00e8me exige des montagnes d&rsquo;exemples annot\u00e9s. Il n&rsquo;en est rien : le mod\u00e8le apprend par lui-m\u00eame, de fa\u00e7on auto-supervis\u00e9e, \u00e0 partir de texte brut.<\/p>\n<p>Le principe est de calculer la probabilit\u00e9 d&rsquo;un mot sachant ceux qui pr\u00e9c\u00e8dent. Par la r\u00e8gle de la cha\u00eene, celle d&rsquo;une s\u00e9quence se d\u00e9compose en produit :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 49px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-bd3b1d822bdfa932bd8a36961df2fdf7_l3.png\" height=\"49\" width=\"365\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#80;&#40;&#119;&#92;&#109;&#105;&#100;&#32;&#104;&#41;&#61;&#80;&#40;&#119;&#95;&#110;&#92;&#109;&#105;&#100;&#32;&#119;&#95;&#123;&#49;&#58;&#110;&#45;&#49;&#125;&#41;&#61;&#92;&#112;&#114;&#111;&#100;&#95;&#123;&#105;&#61;&#49;&#125;&#94;&#123;&#110;&#125;&#80;&#40;&#119;&#95;&#105;&#92;&#109;&#105;&#100;&#32;&#119;&#95;&#123;&#49;&#58;&#105;&#45;&#49;&#125;&#41;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Autrement dit, la probabilit\u00e9 d&rsquo;une phrase est le produit des probabilit\u00e9s de chaque mot compte tenu de son historique.<\/p>\n<p>Exemple : on donne <code>to be or not to<\/code> et on demande au mod\u00e8le d&rsquo;estimer la probabilit\u00e9 que le mot suivant soit <code>be<\/code>. La s\u00e9quence d&rsquo;entr\u00e9e s&rsquo;appelle le <strong>contexte<\/strong>, long de 512 jetons pour les premiers Transformers. En sortie, une projection lin\u00e9aire puis une softmax donnent un vecteur de taille <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-63ada879859a9e41fd935f035b7313bc_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#86;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/> (celle du vocabulaire), le <strong>vecteur de logits<\/strong>.<\/p>\n<p>L&rsquo;erreur se mesure par l&rsquo;entropie crois\u00e9e entre la distribution pr\u00e9dite et la distribution r\u00e9elle, un vecteur valant 1 pour le vrai mot et 0 ailleurs :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 39px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-7f3658410a90f0ab9001b09204a0613c_l3.png\" height=\"39\" width=\"219\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#76;&#95;&#123;&#67;&#69;&#125;&#61;&#45;&#92;&#115;&#117;&#109;&#95;&#123;&#119;&#92;&#105;&#110;&#32;&#86;&#125;&#121;&#95;&#116;&#91;&#119;&#93;&#92;&#44;&#92;&#108;&#111;&#103;&#92;&#104;&#97;&#116;&#32;&#121;&#95;&#116;&#91;&#119;&#93;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Concr\u00e8tement, cela revient \u00e0 regarder la probabilit\u00e9 que le mod\u00e8le donnait au mot r\u00e9ellement observ\u00e9.<\/p>\n<p>Comme tous les calculs se parall\u00e9lisent, on n&rsquo;avance pas mot apr\u00e8s mot : <strong>toute la s\u00e9quence est donn\u00e9e d&rsquo;un coup<\/strong>, ce qui \u00e9tait impossible avec un r\u00e9seau r\u00e9current.<\/p>\n<p>Une fois entra\u00een\u00e9, il reste \u00e0 choisir le mot \u00e0 \u00e9crire. Prendre toujours le plus probable (d\u00e9codage glouton) donne un texte pr\u00e9visible et r\u00e9p\u00e9titif ; on lui pr\u00e9f\u00e8re des tirages au sort encadr\u00e9s. L&rsquo;\u00e9chantillonnage top-k garde les <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-3422b6bb5c160593658b7c39425d9880_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#107;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"9\" style=\"vertical-align: 0px;\"\/> mots les plus probables, le top-p un pourcentage cumul\u00e9, et la <strong>temp\u00e9rature<\/strong> divise les scores avant la softmax : proche de 0, on se rapproche du glouton.<\/p>\n<h2 id=\"a-quoi-on-l-utilise\">\u00c0 quoi on l&rsquo;utilise<\/h2>\n<p>La force du Transformer tient \u00e0 sa capacit\u00e9 \u00e0 dig\u00e9rer d&rsquo;\u00e9normes quantit\u00e9s de texte pendant une phase de <strong>pr\u00e9-entra\u00eenement<\/strong>, o\u00f9 il apprend les r\u00e8gles g\u00e9n\u00e9rales d&rsquo;une langue. On exploite ensuite ce savoir par apprentissage par transfert : pour apprendre \u00e0 r\u00e9diger des articles scientifiques, inutile de r\u00e9apprendre l&rsquo;anglais, il suffit d&rsquo;adapter ce qu&rsquo;on sait.<\/p>\n<p>Ce <a href=\"\/blog\/inference\/le-finetuning-d-un-modele\/\" title=\"fine-tuning\">fine-tuning<\/a> garde la plupart des couches gel\u00e9es et n&rsquo;entra\u00eene que une ou deux couches pos\u00e9es au sommet. Pour classer des avis en trois cat\u00e9gories avec BERT, on prend le vecteur final du jeton <code>[CLS]<\/code>, qui a vu toute la s\u00e9quence, et on lui applique une softmax :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 22px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-0ca58eb545e2036a55a7c6be573ac99d_l3.png\" height=\"22\" width=\"174\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#121;&#61;&#92;&#109;&#97;&#116;&#104;&#114;&#109;&#123;&#115;&#111;&#102;&#116;&#109;&#97;&#120;&#125;&#92;&#98;&#105;&#103;&#108;&#40;&#87;&#104;&#95;&#123;&#67;&#76;&#83;&#125;&#92;&#98;&#105;&#103;&#114;&#41;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>La matrice <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-4caed22919a1780df1b6310b338b904e_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/>, seule apprise au d\u00e9part, s\u00e9pare les classes.<\/p>\n<p>Avec Hugging Face, le r\u00e9glage tient en quelques lignes. On suppose ici que <code>model<\/code>, <code>train_dataset<\/code> et <code>val_dataset<\/code> sont d\u00e9j\u00e0 pr\u00e9par\u00e9s (un petit d\u00e9faut s&rsquo;est gliss\u00e9 dans le bloc : il manque une virgule apr\u00e8s <code>per_device_eval_batch_size=16<\/code>, \u00e0 ajouter avant de lancer).<\/p>\n<pre><code>training_args = TrainingArguments(\n    output_dir='.\/results',\n    num_train_epochs=3,\n    per_device_train_batch_size=8,\n    per_device_eval_batch_size=16\n    warmup_steps=500,\n    weight_decay=0.01,\n    logging_dir='.\/logs',\n    logging_steps=10,\n    evaluation_strategy=&quot;epoch&quot;\n)\ntrainer = Trainer(\n    model=model,\n    args=training_args,\n    train_dataset=train_dataset,\n    eval_dataset=val_dataset\n)\ntrainer.train()\n<\/code><\/pre>\n<p>Le contraste de co\u00fbt est parlant : l&rsquo;entra\u00eenement de BERT a mobilis\u00e9 <strong>64 TPU pendant quatre jours<\/strong>, hors de port\u00e9e de la plupart des utilisateurs, alors que son fine-tuning se fait sur un seul GPU, voire un CPU. \u00c0 sa sortie, il a atteint l&rsquo;\u00e9tat de l&rsquo;art sur la d\u00e9tection de paraphrases, les questions-r\u00e9ponses et l&rsquo;analyse de sentiments.<\/p>\n<p>M\u00eame un d\u00e9codeur seul se r\u00e8gle ainsi. Pour traduire avec GPT-2, on construit des exemples de la forme \u00ab phrase anglaise, jeton sp\u00e9cial <code>&lt;to-fr&gt;<\/code>, phrase fran\u00e7aise \u00bb et on poursuit la pr\u00e9diction du jeton suivant.<\/p>\n<p>Quand la puissance de calcul est la contrainte, on recourt \u00e0 la <strong>distillation<\/strong> : un petit mod\u00e8le \u00e9l\u00e8ve cherche \u00e0 imiter les pr\u00e9dictions d&rsquo;un grand mod\u00e8le enseignant, avec des performances proches pour un co\u00fbt bien moindre.<\/p>\n<p>Le Transformer ne se limite pas au texte. Le Vision Transformer d\u00e9coupe une image en patches (par exemple 16\u00d716), chacun jouant le r\u00f4le d&rsquo;un jeton. Pour une image de hauteur <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-379db1fc1f84b7ce56b92463183097f9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#72;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"16\" style=\"vertical-align: 0px;\"\/> et de largeur <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-4caed22919a1780df1b6310b338b904e_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/>, avec des patches de c\u00f4t\u00e9 <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-650eb7688af6737ac325425b5c9a5982_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#80;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/>, on obtient :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 37px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-410d9081f32d8334f57f14bef7f04a7a_l3.png\" height=\"37\" width=\"83\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#78;&#61;&#92;&#102;&#114;&#97;&#99;&#123;&#72;&#87;&#125;&#123;&#80;&#94;&#123;&#50;&#125;&#125;&#46;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n<p>Une fois les patches projet\u00e9s en vecteurs, ils entrent dans les m\u00eames blocs que le texte.<\/p>\n<p>Enfin, une variante r\u00e9duit le co\u00fbt de calcul : le <strong>Mixture-of-Experts<\/strong>. Au lieu de faire travailler tous les param\u00e8tres pour chaque jeton, un routeur apprend \u00e0 n&rsquo;activer que quelques experts (deux sur huit, par exemple).<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46d41f84&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46d41f84\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"2021\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_dense_vs_moe-scaled.png\" alt=\"Mod\u00e8le dense, o\u00f9 tous les experts sont actifs, face \u00e0 un mod\u00e8le Mixture-of-Experts, o\u00f9 un routeur n'active qu'un sous-ensemble\" class=\"wp-image-288\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_dense_vs_moe-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_dense_vs_moe-300x237.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_dense_vs_moe-1024x808.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_dense_vs_moe-768x606.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_dense_vs_moe-1536x1213.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch05_dense_vs_moe-2048x1617.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Compare les deux moiti\u00e9s : \u00e0 gauche tous les experts s&rsquo;activent pour chaque jeton, \u00e0 droite un seul r\u00e9pond. Le nombre total de param\u00e8tres peut ainsi rester tr\u00e8s \u00e9lev\u00e9 tandis que ceux qui travaillent \u00e0 chaque requ\u00eate restent peu nombreux.<\/figcaption><\/figure>\n\n\n<h2 id=\"ce-qu-un-transformer-ne-fait-pas-limites-et-idees-recues\">Ce qu&rsquo;un Transformer ne fait pas : limites et id\u00e9es re\u00e7ues<\/h2>\n<p><strong>\u00ab Transformer \u00bb ne veut pas dire \u00ab ChatGPT \u00bb.<\/strong> Le Transformer est l&rsquo;architecture ; un LLM est cette architecture pouss\u00e9e \u00e0 plus de 10 milliards de param\u00e8tres. Et tous ne sont pas b\u00e2tis comme l&rsquo;original : l&rsquo;encodeur-d\u00e9codeur d&rsquo;origine n&rsquo;est plus qu&rsquo;une option parmi trois.<\/p>\n<p><strong>\u00ab BERT ne peut pas \u00e9crire. \u00bb<\/strong> C&rsquo;\u00e9tait vrai de la pratique courante jusqu&rsquo;en 2024, quand deux \u00e9tudes ont montr\u00e9 qu&rsquo;en adaptant le mod\u00e8le, une suite de jetons <code>[MASK]<\/code> permet de g\u00e9n\u00e9rer du texte.<\/p>\n<p>L&rsquo;attention a un prix. Le co\u00fbt de calcul cro\u00eet avec le <strong>carr\u00e9 du nombre de jetons<\/strong>, car chaque jeton se compare \u00e0 tous les autres ; ce produit scalaire freine le passage \u00e0 l&rsquo;\u00e9chelle et beaucoup de variantes tentent de le r\u00e9duire. L&rsquo;attention n&rsquo;a de plus aucune notion intrins\u00e8que d&rsquo;ordre, d&rsquo;o\u00f9 l&rsquo;encodage positionnel, dont la version absolue surrepr\u00e9sente d&rsquo;ailleurs les mots du d\u00e9but : on lui pr\u00e9f\u00e8re aujourd&rsquo;hui des variantes relatives.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Pi\u00e8ge<\/strong> Un Transformer ne \u00ab sait \u00bb pas des faits au sens humain : il pr\u00e9dit le jeton le plus probable. Il peut donc inventer une r\u00e9ponse plausible mais fausse, avec la m\u00eame assurance qu&rsquo;une r\u00e9ponse exacte.<\/p>\n<\/blockquote>\n<p>Les limites qui en d\u00e9coulent sont bien connues. Ses connaissances sont fig\u00e9es \u00e0 la date de fin d&rsquo;entra\u00eenement : un mod\u00e8le entra\u00een\u00e9 avant la cession des Dallas Mavericks par Mark Cuban continuera \u00e0 le pr\u00e9senter comme seul propri\u00e9taire. Pour compenser, on le couple \u00e0 des outils externes comme la g\u00e9n\u00e9ration augment\u00e9e par r\u00e9cup\u00e9ration.<\/p>\n<p>Reste la question de la compr\u00e9hension. Des travaux sugg\u00e8rent que ces mod\u00e8les forment un mod\u00e8le du monde rudimentaire, mais ce n&rsquo;est pas \u00e9tabli : dans une \u00e9tude de 2024, des transformers n&rsquo;ont pas su construire une carte fiable de New York utilisable pour des pr\u00e9dictions. <strong>La question reste ouverte.<\/strong><\/p>\n<p>Au bout du compte, un Transformer, c&rsquo;est une id\u00e9e simple r\u00e9p\u00e9t\u00e9e \u00e0 grande \u00e9chelle : laisser chaque mot choisir, parmi tous les autres, ceux qui l&rsquo;aident \u00e0 se comprendre. Tout le reste (encodage de position, raccourcis, normalisation) sert \u00e0 rendre cette id\u00e9e entra\u00eenable.<\/p>","protected":false},"excerpt":{"rendered":"<p>Un Transformer, c&rsquo;est une pile de blocs o\u00f9 chaque mot regarde tous les autres. D\u00e9couvre ses pi\u00e8ces, comment il apprend et o\u00f9 il s&rsquo;arr\u00eate.<\/p>\n","protected":false},"author":1,"featured_media":289,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-290","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deep-learning"],"_links":{"self":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/comments?post=290"}],"version-history":[{"count":3,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/290\/revisions"}],"predecessor-version":[{"id":804,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/290\/revisions\/804"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media\/289"}],"wp:attachment":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media?parent=290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/categories?post=290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/tags?post=290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}