{"id":536,"date":"2026-10-07T17:55:16","date_gmt":"2026-10-07T15:55:16","guid":{"rendered":"https:\/\/www.ranksignal.fr\/blog\/?p=536"},"modified":"2026-10-14T17:15:38","modified_gmt":"2026-10-14T15:15:38","slug":"le-finetuning-d-un-modele","status":"publish","type":"post","link":"https:\/\/www.ranksignal.fr\/blog\/inference\/le-finetuning-d-un-modele\/","title":{"rendered":"Le finetuning d&rsquo;un mod\u00e8le : adapter une IA sans la refaire"},"content":{"rendered":"<p><\/p>\n<p>Pour apprendre \u00e0 \u00e9crire des articles scientifiques, tu n&rsquo;as pas besoin de r\u00e9apprendre l&rsquo;anglais : tu pars de ce que tu sais d\u00e9j\u00e0 et tu l&rsquo;adaptes \u00e0 ce genre pr\u00e9cis. Un mod\u00e8le d&rsquo;intelligence artificielle peut suivre le m\u00eame chemin, et ce chemin s&rsquo;appelle le finetuning. Voici de quoi comprendre ce que le finetuning change dans un mod\u00e8le, comment il se d\u00e9roule 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=\"#reapprendre-l-anglais-non-on-adapte\">R\u00e9apprendre l&rsquo;anglais ? Non, on adapte<\/a><\/li>\n<li><a href=\"#pourquoi-ajuster-au-lieu-de-partir-de-zero\">Pourquoi ajuster au lieu de partir de z\u00e9ro<\/a><\/li>\n<li><a href=\"#ce-qui-bouge-dans-le-modele-ses-poids\">Ce qui bouge dans le mod\u00e8le : ses poids<\/a><\/li>\n<li><a href=\"#un-exemple-apprendre-a-traduire-a-un-modele-qui-predit-le-mot-suivant\">Un exemple : apprendre \u00e0 traduire \u00e0 un mod\u00e8le qui pr\u00e9dit le mot suivant<\/a><\/li>\n<li><a href=\"#dans-le-code-la-boucle-d-entrainement\">Dans le code : la boucle d&rsquo;entra\u00eenement<\/a><\/li>\n<li><a href=\"#ajuster-sans-tout-toucher-l-idee-de-lora\">Ajuster sans tout toucher : l&rsquo;id\u00e9e de LoRA<\/a><\/li>\n<li><a href=\"#quatre-leviers-quatre-apprentissages\">Quatre leviers, quatre apprentissages<\/a><\/li>\n<li><a href=\"#prompt-generation-augmentee-distillation-ou-il-se-place\">Prompt, g\u00e9n\u00e9ration augment\u00e9e, distillation : o\u00f9 il se place<\/a><\/li>\n<li><a href=\"#idees-recues-et-limites\">Id\u00e9es re\u00e7ues et limites<\/a><\/li>\n<\/ul>\n<h2 id=\"l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/h2>\n<ul>\n<li>Finetuner, c&rsquo;est <strong>poursuivre l&rsquo;entra\u00eenement d&rsquo;un mod\u00e8le d\u00e9j\u00e0 pr\u00e9entra\u00een\u00e9<\/strong> sur de nouvelles donn\u00e9es, pour l&rsquo;adapter \u00e0 un usage pr\u00e9cis.<\/li>\n<li>L&rsquo;op\u00e9ration <strong>change les poids, jamais l&rsquo;architecture<\/strong> : le mod\u00e8le garde sa forme, ses valeurs bougent.<\/li>\n<li>L\u00e0 o\u00f9 BERT a mobilis\u00e9 64 TPU pendant quatre jours, le finetuning tient sur <strong>un seul GPU, voire un CPU<\/strong>.<\/li>\n<li>Avec LoRA, on n&rsquo;entra\u00eene que <strong>17,5 millions de param\u00e8tres<\/strong> sur les 175 milliards de GPT-3.<\/li>\n<li>Le finetuning vise surtout <strong>le style, le ton et le vocabulaire<\/strong>, et il ne se d\u00e9cr\u00e8te pas : dans le doute, on essaie d&rsquo;abord plus l\u00e9ger.<\/li>\n<\/ul>\n<h2 id=\"reapprendre-l-anglais-non-on-adapte\">R\u00e9apprendre l&rsquo;anglais ? Non, on adapte<\/h2>\n<p>Pendant le pr\u00e9entra\u00eenement, un <a href=\"\/blog\/deep-learning\/qu-est-ce-qu-un-transformer\/\" title=\"Transformer\">Transformer<\/a> lit d&rsquo;\u00e9normes quantit\u00e9s de texte et en tire des r\u00e8gles g\u00e9n\u00e9rales sur la structure d&rsquo;une langue. On exploite ensuite ces r\u00e8gles pour une myriade d&rsquo;applications. C&rsquo;est ce qu&rsquo;on appelle l&rsquo;apprentissage par transfert : r\u00e9utiliser un mod\u00e8le entra\u00een\u00e9 sur beaucoup de donn\u00e9es pour une t\u00e2che diff\u00e9rente de celle d&rsquo;origine.<\/p>\n<p>Le <strong>finetuning<\/strong> (on dit aussi ajustement fin ou affinage) en est un cas particulier : on prend un mod\u00e8le de fondation pr\u00e9entra\u00een\u00e9 et on l&rsquo;adapte \u00e0 un usage pr\u00e9cis en lui pr\u00e9sentant de nouvelles donn\u00e9es. Ce mod\u00e8le de d\u00e9part a \u00e9t\u00e9 nourri de jeux de donn\u00e9es g\u00e9n\u00e9ralistes immenses : il en retire une base solide de langue et de concepts. L&rsquo;ajustement cible ses param\u00e8tres sur une t\u00e2che ou un domaine, en gardant ses capacit\u00e9s g\u00e9n\u00e9rales.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46def6ab&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46def6ab\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"768\" 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_ch04_finetuning_supervise-scaled.png\" alt=\"Quatre blocs reli\u00e9s de gauche \u00e0 droite : un mod\u00e8le pr\u00e9entra\u00een\u00e9 et un jeu de donn\u00e9es \u00e9tiquet\u00e9 (invite, r\u00e9ponse attendue) alimentent un entra\u00eenement supervis\u00e9, qui produit un mod\u00e8le finetun\u00e9\" class=\"wp-image-531\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_finetuning_supervise-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_finetuning_supervise-300x90.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_finetuning_supervise-1024x307.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_finetuning_supervise-768x230.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_finetuning_supervise-1536x461.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_finetuning_supervise-2048x614.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\">Suis les fl\u00e8ches : deux ingr\u00e9dients entrent dans l&rsquo;entra\u00eenement, le mod\u00e8le de d\u00e9part et des exemples qui associent chaque invite \u00e0 la r\u00e9ponse qu&rsquo;on en attend. Ce qui sort est le m\u00eame mod\u00e8le, mais ajust\u00e9.<\/figcaption><\/figure>\n\n\n<blockquote>\n<p><strong>\ud83d\udca1 Intuition<\/strong> Tu ne fabriques pas un nouveau mod\u00e8le : tu reprends un mod\u00e8le qui sait d\u00e9j\u00e0 lire et tu le sp\u00e9cialises, comme on aff\u00fbte un outil qui existe d\u00e9j\u00e0.<\/p>\n<\/blockquote>\n<h2 id=\"pourquoi-ajuster-au-lieu-de-partir-de-zero\">Pourquoi ajuster au lieu de partir de z\u00e9ro<\/h2>\n<p>Entra\u00eener un mod\u00e8le depuis z\u00e9ro sur des trillions de jetons est <strong>r\u00e9serv\u00e9 aux grands laboratoires<\/strong>, ceux qui disposent de vastes ressources de calcul et de donn\u00e9es propri\u00e9taires. Pour presque toutes les \u00e9quipes, la meilleure approche consiste \u00e0 partir de mod\u00e8les libres de haute qualit\u00e9, aux licences adapt\u00e9es.<\/p>\n<p>L&rsquo;\u00e9cart de co\u00fbt se chiffre. L&rsquo;entra\u00eenement de BERT a mobilis\u00e9 64 TPU (un mat\u00e9riel sp\u00e9cialis\u00e9 pour les op\u00e9rations sur tenseurs) pendant quatre jours, ce qui d\u00e9passe les moyens de la plupart des utilisateurs. Son finetuning, lui, se fait sur un seul GPU, voire sur un CPU. Il suffit m\u00eame de quelques exemples pour atteindre des performances similaires, voire meilleures, qu&rsquo;un mod\u00e8le entra\u00een\u00e9 de z\u00e9ro.<\/p>\n<p>Reste \u00e0 savoir quand l&rsquo;ajustement paie. Trois situations reviennent : un domaine de sp\u00e9cialit\u00e9 o\u00f9 le jargon et un guide de style strict comptent, un ton et un format qui doivent rester constants (communications financi\u00e8res, mentions l\u00e9gales), et des appels d&rsquo;outils ou d&rsquo;API qui doivent \u00eatre pr\u00e9cis, comme les dosages m\u00e9dicaux.<\/p>\n<p>Ce dernier cas se voit bien avec un agent. Un mod\u00e8le ajust\u00e9 commet moins d&rsquo;erreurs sur les appels d&rsquo;outils, il apprend \u00e0 juger quand <strong>ne pas appeler<\/strong> un outil, et il r\u00e9duit le co\u00fbt en jetons en \u00e9vitant les essais r\u00e9p\u00e9t\u00e9s et les appels malform\u00e9s. Face \u00e0 la phrase \u00ab s&rsquo;il pleut demain, je resterai chez moi \u00bb, il peut estimer qu&rsquo;aucune requ\u00eate n&rsquo;est utile et simplement r\u00e9pondre.<\/p>\n<h2 id=\"ce-qui-bouge-dans-le-modele-ses-poids\">Ce qui bouge dans le mod\u00e8le : ses poids<\/h2>\n<p>Un mod\u00e8le, c&rsquo;est une architecture et des valeurs de poids. Le finetuning <strong>modifie les valeurs et garde l&rsquo;architecture<\/strong>. Concr\u00e8tement, on poursuit l&rsquo;entra\u00eenement sur un jeu de donn\u00e9es \u00e9tiquet\u00e9, qui associe des invites \u00e0 des r\u00e9ponses attendues : c&rsquo;est le finetuning supervis\u00e9, not\u00e9 SFT.<\/p>\n<p>La m\u00e9canique ressemble beaucoup \u00e0 celle de n&rsquo;importe quel r\u00e9seau de neurones : 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>, et l&rsquo;on y retrouve des hyperparam\u00e8tres semblables. La diff\u00e9rence tient \u00e0 ce qu&rsquo;on ne veut pas d\u00e9truire ce que le mod\u00e8le a appris.<\/p>\n<p>D&rsquo;o\u00f9 une premi\u00e8re variante, qui pr\u00e9serve sa repr\u00e9sentation interne. La plupart des couches sont gel\u00e9es, c&rsquo;est-\u00e0-dire que leurs poids ne changent pas, et l&rsquo;on entra\u00eene seulement une ou deux couches ajout\u00e9es au sommet. Elles apprennent \u00e0 exploiter la repr\u00e9sentation du mod\u00e8le pour la t\u00e2che vis\u00e9e.<\/p>\n<p>C\u00f4t\u00e9 donn\u00e9es, la quantit\u00e9 d\u00e9pend de la taille du mod\u00e8le. Les grands se contentent d&rsquo;environ 1 000 exemples de qualit\u00e9, les petits en demandent beaucoup plus, <strong>jusqu&rsquo;\u00e0 un million d&rsquo;exemples<\/strong> pour un mod\u00e8le de 7 milliards de param\u00e8tres. B\u00e2tir ces milliers d&rsquo;exemples co\u00fbte cher : une petite part seulement est \u00e9crite par des humains, le reste vient d&rsquo;un mod\u00e8le g\u00e9n\u00e9rateur ou de jeux publics d\u00e9j\u00e0 existants.<\/p>\n<p>Le jeu passe ensuite par un pr\u00e9traitement. On \u00e9carte les exemples de mauvaise qualit\u00e9, on filtre selon la longueur et le format, et l&rsquo;on d\u00e9duplique. Une \u00e9tape de d\u00e9contamination v\u00e9rifie qu&rsquo;aucun exemple du jeu de test ne se glisse dans l&rsquo;entra\u00eenement : sans elle, tu ne pourrais plus d\u00e9tecter le surapprentissage ni la m\u00e9morisation.<\/p>\n<h2 id=\"un-exemple-apprendre-a-traduire-a-un-modele-qui-predit-le-mot-suivant\">Un exemple : apprendre \u00e0 traduire \u00e0 un mod\u00e8le qui pr\u00e9dit le mot suivant<\/h2>\n<p>Prends un mod\u00e8le comme GPT-2, qui n&rsquo;a qu&rsquo;un d\u00e9codeur et ne sait que prolonger un texte. Le Transformer d&rsquo;origine comptait un encodeur et un d\u00e9codeur pour traduire. Comment amener ce mod\u00e8le \u00e0 traduire quand m\u00eame ?<\/p>\n<p>On construit le jeu d&rsquo;exemples avec une astuce : chaque exemple s&rsquo;\u00e9crit <code>&lt;phrase en anglais&gt;<\/code>, puis un jeton sp\u00e9cial <code>&lt;to-fr&gt;<\/code>, puis <code>&lt;phrase en fran\u00e7ais&gt;<\/code>. Le mod\u00e8le est ajust\u00e9 de la fa\u00e7on habituelle, en pr\u00e9disant le jeton suivant. Le jeton sp\u00e9cial joue le r\u00f4le d&rsquo;un signal : apr\u00e8s lui, c&rsquo;est la traduction qui vient.<\/p>\n<p>La m\u00eame recette apprend le r\u00e9sum\u00e9 : on ins\u00e8re \u00e0 la place un jeton qui signifie \u00ab r\u00e9sum\u00e9 \u00bb. Une fois l&rsquo;ajustement fait, le mod\u00e8le n&rsquo;a rien d&rsquo;autre \u00e0 faire que ce qu&rsquo;il sait d\u00e9j\u00e0, prolonger un texte. On lui a juste montr\u00e9 <strong>quelle suite correspond \u00e0 quelle t\u00e2che<\/strong>.<\/p>\n<p>Ce choix d&rsquo;un d\u00e9codeur n&rsquo;a rien d&rsquo;anodin. Les encodeurs comme <a href=\"\/blog\/deep-learning\/le-modele-bert\/\" title=\"BERT\">BERT<\/a> ne sont pas optimaux pour les t\u00e2ches g\u00e9n\u00e9ratives, \u00e0 cause de leur entra\u00eenement par masquage, alors que les d\u00e9codeurs le sont. En revanche, BERT a battu l&rsquo;\u00e9tat de l&rsquo;art \u00e0 sa sortie sur plusieurs t\u00e2ches de compr\u00e9hension (paraphrases, questions-r\u00e9ponses, sentiments) et a donn\u00e9 naissance \u00e0 des variantes de domaine comme SciBERT.<\/p>\n<h2 id=\"dans-le-code-la-boucle-d-entrainement\">Dans le code : la boucle d&rsquo;entra\u00eenement<\/h2>\n<p>Tu as un mod\u00e8le de d\u00e9part et des paires (invite, r\u00e9ponse) rang\u00e9es en un jeu d&rsquo;entra\u00eenement et un jeu de test. Reste \u00e0 lancer l&rsquo;entra\u00eenement. Cette fonction, \u00e9crite avec la biblioth\u00e8que TRL de Hugging Face, configure et ex\u00e9cute un finetuning supervis\u00e9 :<\/p>\n<pre><code>def train(\n    model,\n    tokenizer,\n    dataset: DatasetDict,\n    peft_cfg: LoraConfig,\n    output_dir: str,\n    epochs: int = 1,\n    lr: float = 1e-4,\n    batch_size: int = 1,\n    grad_accum: int = 4,\n    max_seq_len: int = 1500,\n):\n    train_args = SFTConfig(\n        output_dir=output_dir,\n        per_device_train_batch_size=batch_size,\n        per_device_eval_batch_size=batch_size,\n        gradient_accumulation_steps=grad_accum,\n        save_strategy=&quot;no&quot;,\n        eval_strategy=&quot;epoch&quot;,\n        logging_steps=5,\n        learning_rate=lr,\n        num_train_epochs=epochs,\n        max_grad_norm=1.0,\n        warmup_ratio=0.1,\n        lr_scheduler_type=&quot;cosine&quot;,\n        report_to=None,\n        bf16=True,\n        gradient_checkpointing=True,\n        gradient_checkpointing_kwargs={&quot;use_reentrant&quot;: False},\n        packing=True,\n        max_seq_length=max_seq_len,\n    )\n\n    trainer = SFTTrainer(\n        model=model,\n        args=train_args,\n        train_dataset=dataset[&quot;train&quot;],\n        eval_dataset=dataset[&quot;test&quot;],\n        processing_class=tokenizer,\n        peft_config=peft_cfg,\n    )\n\n    trainer.train()\n    trainer.save_model()\n    return trainer\n<\/code><\/pre>\n<p>Lis le code de bas en haut. <code>SFTTrainer<\/code> re\u00e7oit le mod\u00e8le, les r\u00e9glages, le jeu d&rsquo;entra\u00eenement et le jeu de test (<code>dataset[&quot;train&quot;]<\/code> et <code>dataset[&quot;test&quot;]<\/code>), plus <code>peft_cfg<\/code>, la configuration qui active l&rsquo;ajustement par LoRA, dont il est question juste apr\u00e8s. <code>trainer.train()<\/code> lance l&rsquo;apprentissage et <code>trainer.save_model()<\/code> sauvegarde le r\u00e9sultat.<\/p>\n<p>Les r\u00e9glages de <code>SFTConfig<\/code> sont ceux d&rsquo;un <strong>entra\u00eenement classique<\/strong> : nombre d&rsquo;\u00e9poques, taille de lot, taux d&rsquo;apprentissage avec une planification cosinus, pr\u00e9cision <code>bf16<\/code>. Deux options servent surtout \u00e0 tenir en m\u00e9moire, le gradient checkpointing et le packing des s\u00e9quences.<\/p>\n<p>Une fois l&rsquo;ajustement termin\u00e9, on mesure le r\u00e9sultat sur ce pour quoi on l&rsquo;a fait : suivi d&rsquo;instructions, conversation, usage d&rsquo;outils. L&rsquo;\u00e9valuation ne s&rsquo;arr\u00eate donc pas \u00e0 la courbe de perte.<\/p>\n<h2 id=\"ajuster-sans-tout-toucher-l-idee-de-lora\">Ajuster sans tout toucher : l&rsquo;id\u00e9e de LoRA<\/h2>\n<p>Les grands mod\u00e8les sont surparam\u00e9tr\u00e9s. C&rsquo;est un atout au pr\u00e9entra\u00eenement, mais \u00e7a rend le finetuning complet tr\u00e8s co\u00fbteux : leurs matrices de poids contiennent beaucoup de d\u00e9pendance lin\u00e9aire, ce qui est surtout inutile pour s&rsquo;adapter \u00e0 un domaine. <a href=\"\/blog\/machine-learning\/lora-low-rank-adaptation\/\" title=\"LoRA (Low-Rank Adaptation)\">LoRA (Low-Rank Adaptation)<\/a> exploite cette redondance.<\/p>\n<p>Le principe : on <strong>garde gel\u00e9s les poids d&rsquo;origine<\/strong> <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;\"\/> et l&rsquo;on ne leur ajoute qu&rsquo;une correction, produit de deux petites matrices <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-770fd1447ccf2fc229801b486b0d8f8a_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#66;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/> et <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-25b206f25506e6d6f46be832f7119ffa_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#65;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"13\" style=\"vertical-align: 0px;\"\/> :<\/p>\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 20px;\"><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-f17aa5818444f5e8183a9b88825f5654_l3.png\" height=\"20\" width=\"240\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91; &#89;&#61;&#87;&#39;&#88;&#44;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#87;&#39;&#61;&#87;&#43;&#66;&#65;&#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-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 l&rsquo;entr\u00e9e et <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-82606c3098bb09002088b0f6f9ffbb2a_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#89;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/> la sortie. <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-ee3daf21bf5ff06daf5e6cc5f34c8591_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#87;&#39;\" title=\"Rendered by QuickLaTeX.com\" height=\"14\" width=\"23\" style=\"vertical-align: 0px;\"\/> d\u00e9signe les poids ajust\u00e9s, <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-770fd1447ccf2fc229801b486b0d8f8a_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#66;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"14\" style=\"vertical-align: 0px;\"\/> et <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-25b206f25506e6d6f46be832f7119ffa_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#65;\" title=\"Rendered by QuickLaTeX.com\" height=\"13\" width=\"13\" style=\"vertical-align: 0px;\"\/> sont deux matrices de faible rang, et seules elles sont entra\u00een\u00e9es.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46defb90&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46defb90\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2250\" height=\"1200\" 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_ch03_lora.png\" alt=\"Une entr\u00e9e x passe en parall\u00e8le par une grande matrice W gel\u00e9e et par deux petites matrices A puis B, seules entra\u00een\u00e9es ; les deux sorties s'additionnent\" class=\"wp-image-532\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch03_lora.png 2250w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch03_lora-300x160.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch03_lora-1024x546.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch03_lora-768x410.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch03_lora-1536x819.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b2_ch03_lora-2048x1092.png 2048w\" sizes=\"auto, (max-width: 2250px) 100vw, 2250px\" \/><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\">Rep\u00e8re les deux branches : celle du haut, gel\u00e9e, p\u00e8se des milliards de param\u00e8tres ; celle du bas, entra\u00een\u00e9e, est minuscule. Pendant l&rsquo;ajustement, l&rsquo;entr\u00e9e traverse les deux, on additionne les sorties, on calcule la perte et l&rsquo;on met \u00e0 jour A et B par r\u00e9tropropagation classique.<\/figcaption><\/figure>\n\n\n<p>Un hyperparam\u00e8tre <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/ql-cache\/quicklatex.com-c409433a9e2dfcdb83360a974d243f18_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#114;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"8\" style=\"vertical-align: 0px;\"\/> r\u00e8gle leur taille : plus il est grand, plus les matrices portent d&rsquo;information, mais aussi de param\u00e8tres et de co\u00fbt de calcul. Les r\u00e9sultats montrent que m\u00eame un rang faible fonctionne bien.<\/p>\n<p>Le gain se compte vite. Pour GPT-3 (175 milliards de param\u00e8tres), on n&rsquo;entra\u00eene que 17,5 millions de param\u00e8tres, soit <strong>un param\u00e8tre sur dix mille<\/strong>. L&rsquo;inf\u00e9rence ne co\u00fbte pas plus cher, puisqu&rsquo;on additionne simplement la matrice de changement aux poids d&rsquo;origine.<\/p>\n<p>Les poids d&rsquo;origine restent intacts, donc LoRA n&rsquo;alt\u00e8re pas les capacit\u00e9s de d\u00e9part du mod\u00e8le, et les points de sauvegarde p\u00e8sent moins en m\u00e9moire. On peut aussi cr\u00e9er des matrices de changement diff\u00e9rentes pour des applications et des domaines diff\u00e9rents.<\/p>\n<h2 id=\"quatre-leviers-quatre-apprentissages\">Quatre leviers, quatre apprentissages<\/h2>\n<p>Le finetuning ne se limite pas \u00e0 imiter des r\u00e9ponses : on distingue <strong>quatre leviers<\/strong> pour adapter un mod\u00e8le pr\u00e9entra\u00een\u00e9, selon ce qu&rsquo;on lui montre :<\/p>\n<table>\n<thead>\n<tr>\n<th>Levier<\/th>\n<th>Ce qu&rsquo;on lui donne<\/th>\n<th>Ce qu&rsquo;il apprend<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Finetuning supervis\u00e9 (SFT)<\/td>\n<td>Des paires (invite, r\u00e9ponse) soigneusement choisies<\/td>\n<td>Exactement comment se comporter : classification, sorties structur\u00e9es, correction d&rsquo;erreurs de suivi d&rsquo;instructions<\/td>\n<\/tr>\n<tr>\n<td>Finetuning de vision<\/td>\n<td>Des paires image-\u00e9tiquette<\/td>\n<td>\u00c0 mieux comprendre le multimodal<\/td>\n<\/tr>\n<tr>\n<td>Optimisation directe des pr\u00e9f\u00e9rences (DPO)<\/td>\n<td>Des couples (bonne r\u00e9ponse, mauvaise r\u00e9ponse)<\/td>\n<td>\u00c0 pr\u00e9f\u00e9rer la meilleure r\u00e9ponse des deux, ce qui sert le ton, le style ou la fa\u00e7on de r\u00e9sumer<\/td>\n<\/tr>\n<tr>\n<td>Finetuning par renforcement (RFT)<\/td>\n<td>Des sorties not\u00e9es par des experts<\/td>\n<td>\u00c0 renforcer des cha\u00eenes de raisonnement complexes, pour des domaines \u00e0 fort enjeu comme l&rsquo;analyse juridique<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Un cas concret pour la DPO : am\u00e9liorer les r\u00e9ponses d&rsquo;un centre d&rsquo;assistance informatique avec un petit mod\u00e8le Phi-3. Chaque ligne du jeu de donn\u00e9es porte une invite, une r\u00e9ponse pr\u00e9f\u00e9r\u00e9e (<code>chosen<\/code>) et une r\u00e9ponse moins bonne (<code>rejected<\/code>), et un param\u00e8tre <code>beta<\/code> r\u00e8gle avec quelle force le mod\u00e8le privil\u00e9gie la pr\u00e9f\u00e9r\u00e9e. Le mod\u00e8le de base y est charg\u00e9 en 4 bits, avec des adaptateurs LoRA de rang 8.<\/p>\n<p>L&rsquo;instruction tuning et l&rsquo;alignement sur les pr\u00e9f\u00e9rences humaines sont eux aussi des finetunings : on ajuste les m\u00eames poids, avec un autre objectif.<\/p>\n<h2 id=\"prompt-generation-augmentee-distillation-ou-il-se-place\">Prompt, g\u00e9n\u00e9ration augment\u00e9e, distillation : o\u00f9 il se place<\/h2>\n<p>On pr\u00e9sente souvent le finetuning et la <a href=\"\/blog\/rag\/a-quoi-ressemble-un-systeme-rag\/\" title=\"g\u00e9n\u00e9ration augment\u00e9e par r\u00e9cup\u00e9ration\">g\u00e9n\u00e9ration augment\u00e9e par r\u00e9cup\u00e9ration<\/a> comme des rivaux. Ils rel\u00e8vent en r\u00e9alit\u00e9 de m\u00e9canismes compl\u00e9mentaires : la r\u00e9cup\u00e9ration enrichit la m\u00e9moire non param\u00e9trique du mod\u00e8le sans toucher \u00e0 ses poids, tandis que le finetuning supervis\u00e9 modifie la <a href=\"\/blog\/inference\/qu-est-ce-qu-une-memoire-parametrique\/\" title=\"m\u00e9moire param\u00e9trique\">m\u00e9moire param\u00e9trique<\/a> elle-m\u00eame. Il est surtout pertinent quand on veut changer la mani\u00e8re de r\u00e9pondre : style, ton, vocabulaire.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46defff0&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46defff0\" 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\/b1_ch09_spectre_finetuning.png\" alt=\"Graphique \u00e0 deux axes : connaissance externe requise en abscisse, adaptation du mod\u00e8le requise en ordonn\u00e9e ; prompting en bas \u00e0 gauche, finetuning en haut \u00e0 gauche, r\u00e9cup\u00e9ration en bas \u00e0 droite, approche hybride en haut \u00e0 droite\" class=\"wp-image-533\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch09_spectre_finetuning.png 2550w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch09_spectre_finetuning-300x194.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch09_spectre_finetuning-1024x663.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch09_spectre_finetuning-768x497.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch09_spectre_finetuning-1536x994.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch09_spectre_finetuning-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\">Place ton besoin sur les deux axes. Si le mod\u00e8le doit surtout \u00eatre adapt\u00e9, tu montes vers le finetuning ; s&rsquo;il doit surtout acc\u00e9der \u00e0 des connaissances externes, tu te d\u00e9places vers la droite ; si les deux comptent, la zone hybride combine les deux.<\/figcaption><\/figure>\n\n\n<p>Les exemples pratiques parlent d&rsquo;eux-m\u00eames. R\u00e9sumer dans un domaine tr\u00e8s sp\u00e9cialis\u00e9 demande que le mod\u00e8le comprenne bien le contexte, donc le finetuning convient mieux. R\u00e9pondre \u00e0 des questions sur une documentation exige de <a href=\"\/blog\/agentic\/eviter-hallucination-documents-recuperes\/\" title=\"r\u00e9duire les hallucinations\">r\u00e9duire les hallucinations<\/a> et de citer des sources, donc la r\u00e9cup\u00e9ration est meilleure. G\u00e9n\u00e9rer du code appelle les deux : une base de code dynamique et un mod\u00e8le adapt\u00e9 \u00e0 la t\u00e2che.<\/p>\n<p>Le finetuning ne concerne pas que le mod\u00e8le de langage. On peut aussi ajuster le mod\u00e8le d&#8217;embedding sur un jeu de donn\u00e9es pr\u00e9cis : il saisit mieux les nuances du domaine, d&rsquo;o\u00f9 une meilleure r\u00e9cup\u00e9ration. \u00c7a co\u00fbte bien moins que de l&rsquo;entra\u00eener de z\u00e9ro, et des biblioth\u00e8ques comme Sentence Transformers facilitent le processus, avec des exemples positifs et n\u00e9gatifs.<\/p>\n<p>Reste une confusion fr\u00e9quente avec la distillation. Dans celle-ci, un grand mod\u00e8le \u00ab enseignant \u00bb entra\u00eene un petit mod\u00e8le \u00ab \u00e9l\u00e8ve \u00bb \u00e0 l&rsquo;imiter, en lui montrant ses distributions de probabilit\u00e9s, pas seulement ses r\u00e9ponses.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef46df0461&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef46df0461\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1164\" 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\/b4_ch02_finetuning_contre_distillation-scaled.png\" alt=\"Deux rang\u00e9es de blocs : le finetuning part d'un mod\u00e8le pr\u00e9entra\u00een\u00e9 et de donn\u00e9es du domaine pour produire un mod\u00e8le sp\u00e9cialis\u00e9 de m\u00eame architecture aux poids modifi\u00e9s ; la distillation transmet les probabilit\u00e9s d'un grand mod\u00e8le \u00e0 un petit\" class=\"wp-image-534\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b4_ch02_finetuning_contre_distillation-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b4_ch02_finetuning_contre_distillation-300x136.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b4_ch02_finetuning_contre_distillation-1024x465.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b4_ch02_finetuning_contre_distillation-768x349.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b4_ch02_finetuning_contre_distillation-1536x698.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b4_ch02_finetuning_contre_distillation-2048x931.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 sorties des deux rang\u00e9es : le finetuning rend un mod\u00e8le de m\u00eame architecture aux poids modifi\u00e9s, alors que la distillation fabrique un mod\u00e8le plus petit. La premi\u00e8re <strong>apprend \u00e0 mieux faire dans un domaine<\/strong>, la seconde \u00e0 \u00e9muler le comportement d&rsquo;un mod\u00e8le plus grand, bon ou mauvais.<\/figcaption><\/figure>\n\n\n<h2 id=\"idees-recues-et-limites\">Id\u00e9es re\u00e7ues et limites<\/h2>\n<h3>\u00ab Finetuner, c&rsquo;est entra\u00eener un mod\u00e8le \u00bb<\/h3>\n<p>Pas au sens du pr\u00e9entra\u00eenement. Souvent, les mod\u00e8les libres de qualit\u00e9 comprennent d\u00e9j\u00e0 un post-entra\u00eenement ou un r\u00e9glage d&rsquo;instructions proche de la t\u00e2che. Cela supprime le besoin d&rsquo;ajustement suppl\u00e9mentaire, ou le r\u00e9duit \u00e0 des mises \u00e0 jour cibl\u00e9es minimales.<\/p>\n<h3>\u00ab C&rsquo;est une potion magique \u00bb<\/h3>\n<p>L&rsquo;ajustement exploite les connaissances pr\u00e9existantes mais recentre le mod\u00e8le sur un domaine, ce qui <strong>peut d\u00e9grader la performance<\/strong> et provoquer des hallucinations. Un jeu d&rsquo;exemples trop \u00e9troit ou p\u00e9rim\u00e9 expose aussi au surajustement aux donn\u00e9es historiques, et \u00e0 l&rsquo;oubli des tendances \u00e9mergentes. C&rsquo;est pour cela qu&rsquo;on d\u00e9contamine le jeu de test, comme vu plus haut.<\/p>\n<h3>\u00ab On finetune une fois, et c&rsquo;est r\u00e9gl\u00e9 \u00bb<\/h3>\n<p>Un mod\u00e8le ajust\u00e9 exige une gestion de versions, un calendrier de r\u00e9entra\u00eenement et des contr\u00f4les de compatibilit\u00e9. Pire, les fournisseurs sortent r\u00e9guli\u00e8rement de meilleurs mod\u00e8les de base : une nouvelle version peut surpasser ton mod\u00e8le ajust\u00e9 et <strong>an\u00e9antir des mois de r\u00e9entra\u00eenement<\/strong>.<\/p>\n<p>Et le mod\u00e8le ne peut pas apprendre en continu sans accroc : permettre \u00e0 un mod\u00e8le de s&rsquo;adapter \u00e0 de nouvelles t\u00e2ches sans oublier ce qu&rsquo;il a appris, c&rsquo;est le probl\u00e8me de l&rsquo;oubli catastrophique, qui reste ouvert aujourd&rsquo;hui.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc \u00c0 retenir<\/strong> Avant d&rsquo;investir, on regarde si un mod\u00e8le pr\u00e9entra\u00een\u00e9 ou r\u00e9gl\u00e9 pour les instructions r\u00e9pond au besoin avec de l&rsquo;ing\u00e9nierie d&rsquo;invite, un apprentissage non param\u00e9trique ou une adaptation l\u00e9g\u00e8re. Dans le doute, ne finetune pas : d&rsquo;autres actions co\u00fbtent moins cher et p\u00e8sent souvent davantage.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Le finetuning reprend un mod\u00e8le d\u00e9j\u00e0 entra\u00een\u00e9 et d\u00e9place ses poids vers ton usage. Ce qui change, comment \u00e7a se passe, et ce que \u00e7a ne fait pas.<\/p>\n","protected":false},"author":1,"featured_media":535,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-536","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\/536","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=536"}],"version-history":[{"count":3,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/536\/revisions"}],"predecessor-version":[{"id":781,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/536\/revisions\/781"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media\/535"}],"wp:attachment":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media?parent=536"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/categories?post=536"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/tags?post=536"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}