{"id":584,"date":"2026-10-09T11:47:35","date_gmt":"2026-10-09T09:47:35","guid":{"rendered":"https:\/\/www.ranksignal.fr\/blog\/?p=584"},"modified":"2026-10-14T17:01:38","modified_gmt":"2026-10-14T15:01:38","slug":"l-etape-du-decode-d-un-llm","status":"publish","type":"post","link":"https:\/\/www.ranksignal.fr\/blog\/inference\/l-etape-du-decode-d-un-llm\/","title":{"rendered":"Le decode d&rsquo;un LLM : la r\u00e9ponse s&rsquo;\u00e9crit token apr\u00e8s token"},"content":{"rendered":"<p>Colle un long document dans un assistant : il l&rsquo;absorbe presque d&rsquo;un bloc. Puis il se met \u00e0 r\u00e9pondre, et les mots tombent un \u00e0 un, comme au compte-gouttes. Cette asym\u00e9trie n&rsquo;a rien d&rsquo;un effet d&rsquo;affichage : elle vient de la mani\u00e8re dont le mod\u00e8le fabrique son texte. Tu vas voir ce qu&rsquo;il fait \u00e0 chaque tour de boucle, ce qui limite sa vitesse et comment on lit son rythme.<\/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-l-ecriture-ne-peut-pas-se-faire-d-un-coup\">Pourquoi l&rsquo;\u00e9criture ne peut pas se faire d&rsquo;un coup<\/a><\/li>\n<li><a href=\"#anatomie-d-un-tour-de-boucle\">Anatomie d&rsquo;un tour de boucle<\/a><\/li>\n<li><a href=\"#lire-le-rythme-du-decode\">Lire le rythme du decode<\/a><\/li>\n<li><a href=\"#un-gpu-plus-puissant-ecrit-il-plus-vite\">Un GPU plus puissant \u00e9crit-il plus vite ?<\/a><\/li>\n<li><a href=\"#le-meme-tour-pour-d-autres-modeles\">Le m\u00eame tour, pour d&rsquo;autres mod\u00e8les<\/a><\/li>\n<li><a href=\"#decode-decodeur-decodage-ne-pas-les-confondre\">Decode, d\u00e9codeur, d\u00e9codage : ne pas les confondre<\/a><\/li>\n<\/ul>\n<h2 id=\"l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/h2>\n<ul>\n<li>Le <strong>decode est la seconde phase<\/strong> de l&rsquo;inf\u00e9rence : apr\u00e8s la lecture du prompt, le mod\u00e8le \u00e9crit sa r\u00e9ponse en faisant une passe avant par token.<\/li>\n<li>Il est <strong>s\u00e9quentiel par nature<\/strong> : chaque token d\u00e9pend du pr\u00e9c\u00e9dent, donc rien ne se produit d&rsquo;un coup.<\/li>\n<li>Une passe se termine sur <strong>un vecteur de scores<\/strong>, pas sur un mot : un tirage r\u00e9glable (temp\u00e9rature, top-k, top-p) choisit le token.<\/li>\n<li>Son goulot est <strong>la bande passante m\u00e9moire<\/strong>, pas le nombre d&rsquo;op\u00e9rations par seconde.<\/li>\n<li>Son rythme se lit en tokens par seconde, mais <strong>\u00ab TPS \u00bb recouvre deux mesures<\/strong> : une latence ou un d\u00e9bit.<\/li>\n<\/ul>\n<h2 id=\"pourquoi-l-ecriture-ne-peut-pas-se-faire-d-un-coup\">Pourquoi l&rsquo;\u00e9criture ne peut pas se faire d&rsquo;un coup<\/h2>\n<p>Une fois ton prompt tokenis\u00e9 puis lu par le <a href=\"\/blog\/inference\/l-etape-du-prefill-d-un-llm\/\" title=\"prefill\">prefill<\/a>, le moteur entre dans le decode. Il y encha\u00eene des passes avant dans le mod\u00e8le pour g\u00e9n\u00e9rer les tokens de fa\u00e7on <strong>autor\u00e9gressive<\/strong> : un <a href=\"\/blog\/inference\/qu-est-ce-qu-un-llm\/\" title=\"LLM\">LLM<\/a> produit ses nouveaux tokens un par un, en se fondant sur tous les tokens pr\u00e9c\u00e9dents.<\/p>\n<p>Dans sa forme ordinaire, chaque passe produit un seul token. Une r\u00e9ponse de 300 tokens, par exemple, r\u00e9clame donc 300 passes avant, l&rsquo;une derri\u00e8re l&rsquo;autre.<\/p>\n<p>Pourquoi ne pas lancer toutes ces passes en parall\u00e8le, comme le prefill le fait avec les tokens du prompt ? Parce que le token suivant ne peut pas \u00eatre calcul\u00e9 avant que le pr\u00e9c\u00e9dent existe : <strong>chaque token d\u00e9pend du pr\u00e9c\u00e9dent<\/strong>. Le travail de pr\u00e9paration (tokenisation, embedding, calcul des cl\u00e9s et des valeurs) co\u00fbte cher mais se parall\u00e9lise bien sur un GPU ; la g\u00e9n\u00e9ration, elle, reste s\u00e9quentielle.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Intuition<\/strong> \u00c9cris une phrase \u00e0 la main : tu ne peux pas fixer le dixi\u00e8me mot avant d&rsquo;avoir choisi le neuvi\u00e8me, puisque ce choix oriente tout le reste. Le mod\u00e8le subit le m\u00eame verrou, token par token.<\/p>\n<\/blockquote>\n<h2 id=\"anatomie-d-un-tour-de-boucle\">Anatomie d&rsquo;un tour de boucle<\/h2>\n<p>Que se passe-t-il, concr\u00e8tement, entre un token et le suivant ? Le sch\u00e9ma ci-dessous montre la boucle compl\u00e8te ; concentre-toi sur ses deux cases du milieu.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef472d5999&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef472d5999\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1109\" 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_ch03_boucle_prefill_decode-scaled.png\" alt=\"Boucle d'inf\u00e9rence : la tokenisation et le prefill pr\u00e9c\u00e8dent le decode, o\u00f9 une passe avant produit un vecteur de logits, puis un token est choisi (temp\u00e9rature, top-k, top-p) et la boucle repart jusqu'\u00e0 un token d'arr\u00eat, la limite de contexte ou max_tokens\" class=\"wp-image-202\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch03_boucle_prefill_decode-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch03_boucle_prefill_decode-300x130.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch03_boucle_prefill_decode-1024x444.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch03_boucle_prefill_decode-768x333.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch03_boucle_prefill_decode-1536x666.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch03_boucle_prefill_decode-2048x887.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\">Le decode se r\u00e9duit \u00e0 deux gestes : une passe avant qui sort un vecteur, puis un choix qui le convertit en token, lequel repart en entr\u00e9e. Les trois sous-parties qui suivent ouvrent ces gestes, puis la m\u00e9moire qui les accompagne.<\/figcaption><\/figure>\n\n\n<h3>La passe avant sort des scores, pas des mots<\/h3>\n<p>Un r\u00e9seau de neurones renvoie des vecteurs, pas des tokens. La couche de sortie produit donc un <strong>vecteur de logits<\/strong>, aussi long que le vocabulaire : un score par token possible. Une fois normalis\u00e9s, ces scores repr\u00e9sentent la probabilit\u00e9 que chaque token du vocabulaire soit la bonne sortie.<\/p>\n<h3>Le tirage : o\u00f9 chaque r\u00e9glage intervient<\/h3>\n<p>Le token n&rsquo;est pas simplement le gagnant du classement : il est choisi par un tirage al\u00e9atoire pond\u00e9r\u00e9 par ce vecteur de probabilit\u00e9s. Trois r\u00e9glages l&rsquo;infl\u00e9chissent, chacun \u00e0 un endroit pr\u00e9cis de la passe.<\/p>\n<table>\n<thead>\n<tr>\n<th>R\u00e9glage<\/th>\n<th>O\u00f9 il agit<\/th>\n<th>Ce qu&rsquo;il fait<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Temp\u00e9rature<\/td>\n<td>Sur les logits, avant la normalisation<\/td>\n<td>Les ajuste directement<\/td>\n<\/tr>\n<tr>\n<td>Top-k<\/td>\n<td>Apr\u00e8s la normalisation<\/td>\n<td>Garde les k tokens les plus probables, puis renormalise<\/td>\n<\/tr>\n<tr>\n<td>Top-p<\/td>\n<td>Sur les probabilit\u00e9s<\/td>\n<td>Garde le plus petit ensemble de tokens dont les probabilit\u00e9s totalisent p<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Plus ces valeurs sont basses, plus la sortie est pr\u00e9visible. Avec une temp\u00e9rature nulle ou un top-k \u00e9gal \u00e0 1, le tirage devient <strong>d\u00e9terministe<\/strong> : le token retenu est alors toujours le plus probable.<\/p>\n<h3>Quand la sortie doit suivre un sch\u00e9ma<\/h3>\n<p>Pour une <strong>sortie structur\u00e9e<\/strong>, qui suit un sch\u00e9ma comme du JSON, d&rsquo;autres outils, dont le biais de logits, orientent encore la sortie apr\u00e8s chaque passe avant. Ils soutiennent des capacit\u00e9s essentielles comme l&rsquo;appel d&rsquo;outils, et leur bonne impl\u00e9mentation compte pour une inf\u00e9rence de qualit\u00e9.<\/p>\n<h3>Le cache KV, vu depuis le decode<\/h3>\n<p>Le cache KV, construit pendant le prefill, est mis \u00e0 jour \u00e0 chaque token du decode. Comme la valeur d&rsquo;un nouveau token d\u00e9pend de tous les pr\u00e9c\u00e9dents, produire le quinzi\u00e8me token sans cache obligerait \u00e0 recalculer les cl\u00e9s et les valeurs des tokens 1 \u00e0 14, pour un co\u00fbt quadratique. Avec le cache, on les calcule <strong>une seule fois<\/strong> et l&rsquo;attention ne s&rsquo;applique plus qu&rsquo;au nouveau token : le co\u00fbt devient proche du lin\u00e9aire.<\/p>\n<p>La contrepartie est la m\u00e9moire. Chaque token ajoute ses cl\u00e9s et ses valeurs dans chaque t\u00eate d&rsquo;attention et dans chaque couche, et cet empilement plafonne la fen\u00eatre de contexte utilisable.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc \u00c0 retenir<\/strong> Un tour de decode, c&rsquo;est une passe avant, un vecteur de logits, un tirage, puis un token qui repart en entr\u00e9e pendant que le cache s&rsquo;enrichit. Ces passes, avec la construction du cache au prefill, prennent l&rsquo;\u00e9crasante majorit\u00e9 du temps et des ressources.<\/p>\n<\/blockquote>\n<h2 id=\"lire-le-rythme-du-decode\">Lire le rythme du decode<\/h2>\n<p>La vitesse du decode se mesure d&rsquo;abord par la latence inter-token (ITL), le temps qui s\u00e9pare deux tokens successifs. Le mot \u00ab TPS \u00bb (<em>tokens per second<\/em>) est plus pi\u00e9geux, parce qu&rsquo;il recouvre deux mesures diff\u00e9rentes.<\/p>\n<p>Le <strong>TPS per\u00e7u<\/strong> est le nombre de tokens par seconde que re\u00e7oit un utilisateur apr\u00e8s le premier : c&rsquo;est une latence. Le <strong>TPS total<\/strong> est le nombre de tokens g\u00e9n\u00e9r\u00e9s chaque seconde par tout le service : c&rsquo;est un d\u00e9bit.<\/p>\n<p>Imagine 50 utilisateurs servis chacun \u00e0 100 tokens par seconde : le TPS per\u00e7u vaut 100, le TPS total 5 000. Un service peut donc afficher un total impressionnant pendant que chacun re\u00e7oit ses mots lentement, puisque le total additionne tous les utilisateurs. La plupart des gens emploient \u00ab TPS \u00bb au sens du per\u00e7u, par utilisateur ; dans le doute, <strong>pr\u00e9cise duquel tu parles<\/strong>.<\/p>\n<h2 id=\"un-gpu-plus-puissant-ecrit-il-plus-vite\">Un GPU plus puissant \u00e9crit-il plus vite ?<\/h2>\n<p>Pas forc\u00e9ment. Le decode fait partie des \u00e9tapes limit\u00e9es par la bande passante m\u00e9moire, et non par le calcul. Cette <strong>bande passante de la VRAM<\/strong> est le d\u00e9bit de pointe entre les c\u0153urs du GPU et la VRAM, via le bus m\u00e9moire ; elle alimente toute la hi\u00e9rarchie de caches.<\/p>\n<p>Les deux chiffres ne se ressemblent pas. Un H100 en FP16 aligne 989 t\u00e9raFLOPS de calcul dense, mais seulement 3,35 To\/s de bande passante. Pendant le decode, c&rsquo;est le second qui plafonne la vitesse d&rsquo;\u00e9criture, pas le premier.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Pi\u00e8ge<\/strong> Ce raisonnement vaut <strong>\u00e0 tailles de lot faibles ou moyennes<\/strong>. Dans ce cas, ajouter du calcul revient \u00e0 d\u00e9penser au mauvais endroit, puisque le goulot se trouve ailleurs.<\/p>\n<\/blockquote>\n<p>Des fabricants ont d&rsquo;ailleurs b\u00e2ti leur offre sur ce constat. Cerebras et Groq atteignent de hauts scores de tokens par seconde en acc\u00e9l\u00e9rant le decode avec une m\u00e9moire ultra-rapide ; d&rsquo;autres misent plut\u00f4t sur l&rsquo;efficacit\u00e9 \u00e9nerg\u00e9tique ou sur l&rsquo;int\u00e9gration \u00e0 une plateforme cloud.<\/p>\n<h2 id=\"le-meme-tour-pour-d-autres-modeles\">Le m\u00eame tour, pour d&rsquo;autres mod\u00e8les<\/h2>\n<p>Le decode ne concerne pas que le texte pur. Dans un <a href=\"\/blog\/deep-learning\/qu-est-ce-qu-un-modele-vision-langage\/\" title=\"mod\u00e8le vision-langage\">mod\u00e8le vision-langage<\/a>, les images sont d&rsquo;abord converties en tokens et lues au prefill ; ce qui \u00e9crit ensuite la r\u00e9ponse est un LLM, et au decode la m\u00e9canique est identique \u00e0 celle d&rsquo;un texte seul. Seul change le contexte : plus long, avec un cache KV plus gros.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef472d5e5f&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef472d5e5f\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1024\" 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_ch10_modele_vision_langage-scaled.png\" alt=\"Un mod\u00e8le vision-langage : l'image passe par un encodeur de vision, ses tokens rejoignent le prompt texte \u00e0 l'entr\u00e9e d'un LLM de 673 milliards de param\u00e8tres, qui produit une r\u00e9ponse en texte\" class=\"wp-image-582\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch10_modele_vision_langage-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch10_modele_vision_langage-300x120.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch10_modele_vision_langage-1024x410.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch10_modele_vision_langage-768x307.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch10_modele_vision_langage-1536x614.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch10_modele_vision_langage-2048x819.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\">Regarde la fl\u00e8che de sortie, \u00e0 droite : tout ce qui pr\u00e9c\u00e8de ne sert qu&rsquo;\u00e0 nourrir le bloc qui \u00e9crit la r\u00e9ponse en texte. Certains de ces mod\u00e8les ajoutent m\u00eame des variantes d&rsquo;attention pour les tokens d&rsquo;image.<\/figcaption><\/figure>\n\n\n<p>La reconnaissance vocale et la synth\u00e8se vocale rejoignent la m\u00eame famille, celle de la <strong>g\u00e9n\u00e9ration autor\u00e9gressive de tokens<\/strong>, et reposent sur des architectures voisines : les m\u00eames moteurs et techniques s&rsquo;appliquent. Pour une synth\u00e8se vocale b\u00e2tie sur un LLM, on \u00e9largit le vocabulaire de dizaines de milliers de tokens audio ; le mod\u00e8le g\u00e9n\u00e8re alors des tokens dont on mesure la vitesse de decode, comme pour un texte.<\/p>\n<h2 id=\"decode-decodeur-decodage-ne-pas-les-confondre\">Decode, d\u00e9codeur, d\u00e9codage : ne pas les confondre<\/h2>\n<p>Le m\u00eame radical se cache derri\u00e8re plusieurs notions qui n&rsquo;ont pas le m\u00eame r\u00f4le. Les distinguer \u00e9vite bien des contresens \u00e0 la lecture d&rsquo;une documentation.<\/p>\n<table>\n<thead>\n<tr>\n<th>Mot<\/th>\n<th>Ce que c&rsquo;est<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Decode<\/strong><\/td>\n<td>La phase de l&rsquo;inf\u00e9rence qui g\u00e9n\u00e8re les tokens de fa\u00e7on autor\u00e9gressive, par des passes avant<\/td>\n<\/tr>\n<tr>\n<td><strong>D\u00e9codeur<\/strong><\/td>\n<td>Une pi\u00e8ce d&rsquo;architecture qui s&rsquo;appuie sur une repr\u00e9sentation interne pour g\u00e9n\u00e9rer une sortie, texte ou image ; les LLM modernes sont des d\u00e9codeurs seuls<\/td>\n<\/tr>\n<tr>\n<td><strong>D\u00e9codage sp\u00e9culatif<\/strong><\/td>\n<td>Une technique qui exploite le calcul disponible pour tenter de produire plusieurs tokens par passe avant<\/td>\n<\/tr>\n<tr>\n<td><strong>D\u00e9codeur audio<\/strong><\/td>\n<td>En synth\u00e8se vocale, la pi\u00e8ce qui convertit les tokens audio produits en forme d&rsquo;onde<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Un LLM moderne est donc un d\u00e9codeur au sens de l&rsquo;architecture, et il ex\u00e9cute le decode au sens de la phase. Quand tu croises \u00ab d\u00e9codage \u00bb ou \u00ab d\u00e9codeur \u00bb dans un texte technique, v\u00e9rifie <strong>de laquelle de ces notions il parle<\/strong>.<\/p>\n<p>Retiens l&rsquo;image d&rsquo;ensemble : le decode est une boucle de petits pas, chacun appuy\u00e9 sur tous les pr\u00e9c\u00e9dents. Sa lenteur, son app\u00e9tit de m\u00e9moire et son vocabulaire d\u00e9coulent de cette seule d\u00e9pendance.<\/p>","protected":false},"excerpt":{"rendered":"<p>Le decode, c&rsquo;est la phase o\u00f9 un LLM \u00e9crit sa r\u00e9ponse, un token par passe. Ce que contient un tour de boucle et pourquoi la m\u00e9moire en fixe le rythme.<\/p>\n","protected":false},"author":1,"featured_media":583,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-584","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-inference"],"_links":{"self":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/584","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=584"}],"version-history":[{"count":3,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/584\/revisions"}],"predecessor-version":[{"id":767,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/584\/revisions\/767"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media\/583"}],"wp:attachment":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media?parent=584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/categories?post=584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/tags?post=584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}