# Quand faut-il adapter un petit modèle de langage, et quand faut-il s’en abstenir?

Date: 2026-08-10 · Author: Robert Scales · https://guidetoartificialintelligence.com/fr/apprendre/adapter-petit-modele-langage-quand-ne-pas/

**Answer:** Adaptez un modèle pour lui enseigner un comportement, comme un format de sortie fixe, et utilisez une recherche pour les faits. Dans un test mesuré, un adaptateur LoRA a fait passer un petit modèle de 0 % à environ 55 % de réponses exactes sur une tâche de format avec des formulations inconnues, alors que la même méthode a enseigné des faits qui sont tombés à 0 % une fois reformulés, contre 92 % pour une simple recherche par plongements.

Adapter un modèle, c’est changer son comportement en l’entraînant sur des exemples, habituellement sans toucher à la plupart de ses poids. [LoRA](https://arxiv.org/abs/2106.09685) y arrive en gelant les poids d’origine et en ajoutant de petites matrices entraînables. Pour les étapes et les outils en général, y compris QLoRA sur de plus gros modèles, voyez [comment faire l’ajustement fin d’un petit modèle ouvert](/fr/apprendre/ajuster-petit-modele-ouvert-soi-meme/). Ce projet pose une question plus étroite et place une tâche qui convient à la méthode à côté d’une tâche qui ne lui convient pas.

Le modèle est [SmolLM2-135M-Instruct](https://huggingface.co/HuggingFaceTB/SmolLM2-135M-Instruct) : 135 millions de paramètres, licence Apache 2.0, environ 540 Mo en mémoire. Il est minuscule et se trompe souvent, ce qui est utile ici, parce qu’on voit ce que l’entraînement change. L’[article sur SmolLM2](https://arxiv.org/abs/2502.02737) décrit la famille. Toutes les données sont synthétiques et le script est `09_adapt_small_model.py`.

## L’adaptateur lui-même

```python
from peft import LoraConfig, get_peft_model

cfg = LoraConfig(r=16, lora_alpha=32, lora_dropout=0.05,
                 target_modules=["q_proj", "k_proj", "v_proj", "o_proj"], task_type="CAUSAL_LM")
model = get_peft_model(model, cfg)
```

`r` fixe la taille des matrices ajoutées, et les modules ciblés sont les couches d’attention. Il reste 1 843 200 paramètres entraînables, soit 1,4 % du modèle. Le fichier de l’adaptateur pèse 7,4 Mo, à côté de 538 Mo de poids gelés en 32 bits. La boucle d’entraînement masque le prompt, de sorte que le modèle n’est noté que sur sa réponse. Le fichier `lm_utils.py` contient la boucle entière, en une quarantaine de lignes.

Chaque exécution ci-dessous a duré 250 étapes avec des lots de 8, soit tout au plus environ deux minutes sur le GPU intégré d’un Apple M5 Max (PyTorch 2.15, Transformers 5.22, PEFT 0.21), sur une machine occupée à d’autres travaux en même temps.

## Tâche A : un bon candidat, un format fixe

Transformer une note de boutique en une ligne qu’un logiciel peut lire :

```prompt
Récris la note sur une seule ligne : ITEM=<article>; ISSUE=<noise|broken|late|billing>; URGENT=<yes|no>

The snow blower fell apart after a day. It cannot wait, answer right now.
```

Résultat attendu : `ITEM=snow blower; ISSUE=broken; URGENT=yes`. Le test utilise 100 notes sur des articles jamais vus à l’entraînement. Un des jeux de test emploie aussi des formulations jamais vues. Les données de ce projet sont en anglais.

| Modèle | Articles nouveaux, formulation connue : exact | Articles nouveaux, formulation nouvelle : exact |
|---|---|---|
| Non ajusté, instruction seule | | 0 % |
| Non ajusté, instruction et deux exemples | | 0 % |
| Adaptateur, 20 exemples d’entraînement | 78 % | 53 % |
| Adaptateur, 100 exemples d’entraînement | 84 % | 56 % |
| Adaptateur, 400 exemples d’entraînement | 84 % | 55 % |

Trois leçons. Le modèle non ajusté ne pouvait pas du tout faire ce travail, même avec des exemples dans le prompt. Un plus gros modèle le pourrait peut-être : testez d’abord les instructions avec le modèle que vous avez vraiment. Deuxièmement, 20 exemples ont donné l’essentiel du gain, et passer à 400 n’a rien ajouté sur les nouvelles formulations. Les 400 venaient tous des mêmes douze formulations : c’est de nouveau la leçon de variété du [projet trois](/fr/apprendre/construire-jeu-donnees-legalement/). Troisièmement, la perte d’entraînement a atteint 0,000 dans les trois exécutions, alors que l’exactitude sur les nouvelles formulations restait autour de 55 %. La perte vous aurait dit que tout allait bien.

Un modèle à 55 % n’est pas prêt à l’emploi. Sa valeur est dans ce qu’il montre : le format est venu facilement, la généralisation à de nouvelles formulations, non.

## Tâche B : un mauvais candidat, des faits qui changent

Enseignons maintenant 12 faits sur un centre communautaire fictif, comme l’heure de fermeture de la piscine. On entraîne sur une seule formulation de chaque question, puis on interroge.

| Méthode | Formulation entraînée | Formulation légèrement changée | Formulation vraiment différente |
|---|---|---|---|
| Modèle non ajusté, sans contexte | | | 0 % |
| Modèle non ajusté, avec la bonne ligne fournie | | | 58 % |
| Adaptateur entraîné sur les faits | 100 % | 92 % | **0 %** |
| Simple recherche par plongements, qui renvoie la ligne elle-même | | 100 % | 92 % |

Un score parfait sur la formulation entraînée a l’air d’un succès. Reformulez la question en « How late can I swim at night? » et le modèle ajusté répond « 24 hours ». À la question de savoir ce que paie un adulte par année, il répond « 75 dollars », une vraie valeur tirée d’un autre fait. Il a appris à sortir des valeurs en réponse à un motif, et il les livre avec la même assurance quand il se trompe.

Puis trois faits ont changé, comme les faits le font. Le modèle ajusté a continué de donner les trois anciennes valeurs, et le corriger exige un autre entraînement. La recherche a demandé trois lignes modifiées et trois nouveaux vecteurs, et a gardé 92 % sur les formulations difficiles. Elle fonctionne exactement comme dans le [projet huit](/fr/apprendre/chercher-documents-plongements-mesure/), sans qu’aucun modèle de langage n’écrive quoi que ce soit.

La ligne du milieu mérite une remarque. Un modèle aussi petit, même avec la bonne ligne, n’a répondu correctement que dans 58 % des cas, et il a parfois inventé des détails : il a créé une limite de revenu de « $25,000 » qui ne figurait sur aucune ligne. Donner le bon texte à un modèle faible ne garantit pas une bonne réponse, et une ligne retrouvée affichée telle quelle peut être le meilleur produit.

> **À essayer :** notez une tâche pour laquelle vous voulez un modèle. Placez chaque partie dans une de deux colonnes, « comment il doit se comporter » et « ce qu’il doit savoir ». Seule la première colonne est candidate à l’entraînement.

## Comment décider en dix minutes?

Passez ces questions dans l’ordre et arrêtez-vous au premier oui.

| Question | Si oui |
|---|---|
| Du code ordinaire peut-il le faire, comme un gabarit ou une règle? | Écrivez le code |
| Le besoin est-il en fait un fait, un prix, une politique ou une date? | Utilisez une recherche ou la [récupération d’information](/fr/apprendre/preentrainer-ajuster-ou-rag-vrais-couts/) |
| Des instructions claires avec quelques exemples fonctionnent-elles sur 20 cas de test? | Arrêtez là et gardez le prompt |
| Un plus gros modèle tout prêt le ferait-il dans votre budget? | Utilisez-le |
| S’agit-il d’un format, d’un style ou d’une décision répétés, avec beaucoup d’exemples justes? | Essayez un adaptateur, avec un test à part |

Il existe de bonnes raisons de choisir un adaptateur : un modèle trop petit pour suivre des instructions, comme ici; un besoin de vitesse, de confidentialité ou de travail hors ligne; une forme de sortie que le prompt ne parvient pas à stabiliser. Les coûts comprennent des exemples à entretenir, un nouvel entraînement quand le modèle de base change, une licence à respecter et un jeu de test à faire vivre. Avant d’entraîner, écrivez le score que vous devez atteindre et ce que vous ferez s’il reste à 55 %.

## Sources

- LoRA: Low-Rank Adaptation of Large Language Models: https://arxiv.org/abs/2106.09685
- SmolLM2-135M-Instruct model card: https://huggingface.co/HuggingFaceTB/SmolLM2-135M-Instruct
- SmolLM2: When Smol Goes Big: https://arxiv.org/abs/2502.02737

---

Tiré du Guide de l’intelligence artificielle, par Robert Scales, publié par Holistic Hybrid inc. Partage et adaptation permis selon la licence CC BY-NC-SA 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/) : citez le guide, mettez un lien vers https://guidetoartificialintelligence.com/fr/apprendre/adapter-petit-modele-langage-quand-ne-pas/, pas d’usage commercial sans permission, et gardez la même licence.
