Tensoria
Parlez-nous de votre projet : 07 82 80 51 40
Outils & Modèles Par

Préparer un dataset de fine-tuning LLM : la méthode

Préparer un dataset de fine-tuning LLM - méthode format JSONL et annotation données entreprise

Préparer un dataset de fine-tuning LLM, c'est là que 80 % des projets déraillent — pas à l'entraînement, pas au déploiement. Un dataset mal formaté ou rempli d'exemples contradictoires produit un modèle instable, même avec les meilleures techniques LoRA et le meilleur GPU du monde. La bonne nouvelle : l'entraînement coûte entre 5 et 100 € de compute en 2026. Le vrai coût, c'est 40 à 200 heures de préparation de données.

Cet article pose la méthode complète pour préparer un dataset de fine-tuning LLM : combien d'exemples, quel format JSONL choisir, comment construire vos données depuis des sources internes, comment nettoyer, dédupliquer et équilibrer. Et surtout, les pièges qui font échouer les projets les plus sérieux.

Combien d'exemples pour fine-tuner un LLM : la règle qui dérange

La question revient sur presque tous les projets : "Il nous faut combien d'exemples ?" Et la réponse dérange souvent, parce qu'elle contredit l'intuition.

200 exemples excellents valent mieux que 2 000 médiocres. Ce n'est pas une figure de style. C'est ce qu'on observe sur le terrain, et c'est cohérent avec ce que publient les équipes de recherche d'LIMA (Meta AI, 2023) : un modèle fine-tuné sur 1 000 exemples soigneusement sélectionnés surpasse des modèles entraînés sur des dizaines de milliers d'exemples bruyants.

Mais "combien" dépend de ce que vous demandez au modèle. Voici les ordres de grandeur constatés sur des projets réels :

Type de tâche Exemples minimum Exemples recommandés Complexité de l'annotation
Adaptation de style / ton rédactionnel 200 500–800 Faible (vos meilleures productions)
Classification (5–15 catégories) 300 par classe 500–1 000 par classe Moyenne (validation expert métier)
Extraction d'entités nommées métier 500 1 000–2 000 Élevée (annotation manuelle)
Génération structurée (JSON, formulaires) 300 600–1 200 Moyenne
Raisonnement complexe / domaine très spécialisé 1 000 2 000–5 000 Très élevée

Ces chiffres supposent des données de qualité. Si vos exemples sont hétérogènes ou partiellement incohérents, doublez les volumes estimés — et acceptez quand même un résultat moins prévisible.

Le format dataset fine-tuning LLM : l'erreur n°1 des projets qui échouent

Ne pas respecter le format attendu par le modèle est la cause d'échec la plus fréquente et la moins évidente. Le modèle s'entraîne, les métriques semblent raisonnables, et pourtant en inférence les réponses sont incohérentes, trop courtes, ou le modèle répète la question au lieu de répondre.

Format Alpaca (instruction/output) : simple, mais limité

Le format Alpaca est le plus simple. Chaque exemple JSON a trois champs :

{
  "instruction": "Rédige un résumé de ce contrat en trois points.",
  "input": "[texte du contrat]",
  "output": "1. Durée : 24 mois à compter du 1er janvier 2026. 2. ..."
}

Ce format convient aux modèles de base (base models) non-instruct. Pour les modèles Instruct — Mistral-Instruct, Llama-3-Instruct, Phi-3-Instruct — ce format seul ne suffit plus. Il faut l'envelopper dans le template natif du modèle.

Le chat template : obligatoire pour les modèles Instruct

Chaque famille de modèles Instruct a son propre template de tokenisation. Le non-respect de ce template est la cause n°1 d'échec silencieux en fine-tuning. Deux exemples :

Mistral v1/v2 attend le format [INST]...[/INST] :

<s>[INST] Rédige un résumé en trois points. [/INST]
1. Durée : 24 mois... </s>

Llama 3 / Mistral Instruct v3+ utilisent le format ChatML avec des rôles explicites :

{
  "messages": [
    {"role": "system", "content": "Tu es un assistant juridique expert."},
    {"role": "user", "content": "Rédige un résumé de ce contrat en trois points."},
    {"role": "assistant", "content": "1. Durée : 24 mois..."}
  ]
}

Les librairies comme TRL (Transformer Reinforcement Learning, HuggingFace) et Axolotl appliquent automatiquement le bon template si vous leur passez les données au format messages et précisez le bon modèle de base. Ne jamais construire les tokens manuellement — laissez le tokenizer du modèle faire ce travail.

Le fichier JSONL : une ligne = un exemple

Le format de fichier standard est le JSONL (JSON Lines) : chaque ligne du fichier est un objet JSON complet et indépendant. Pas de tableau à la racine, pas de virgule entre les lignes. Un fichier de 500 exemples = 500 lignes.

{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}

Ce format est nativement supporté par TRL, Axolotl, Unsloth (la librairie la plus rapide pour fine-tuner Mistral et Llama en 2026) et les APIs de fine-tuning managé comme OpenAI ou Mistral La Plateforme.

Construire votre dataset depuis des sources internes

Soyons honnêtes : la plupart des PME n'ont pas un dataset propre qui attend dans un coin. Les données existent, mais sous forme brute. Les transformer en exemples exploitables pour un fine-tuning, c'est le vrai travail.

Les meilleures sources de données internes

Sur les projets que nous accompagnons, les sources les plus productives sont, dans l'ordre :

  • Tickets de support résolus : la paire (demande client, réponse validée par un agent senior) est naturellement au format instruction/réponse. Source idéale pour fine-tuner un assistant de support ou de première ligne.
  • Emails traités : les boîtes mail des commerciaux ou des équipes juridiques contiennent des milliers de paires (email entrant, réponse rédigée). Attention à l'anonymisation.
  • Rapports et synthèses validés : si vos équipes produisent régulièrement des synthèses à partir de notes brutes ou de comptes rendus, ce couple (source brute, synthèse finale validée) est en or pour fine-tuner un modèle de génération structurée.
  • Formulaires remplis : pour les tâches d'extraction (extraire des entités depuis un document), les formulaires déjà complétés manuellement à partir de documents source sont une mine.
  • Conversations de chat interne annotées : si votre équipe utilise déjà un chatbot en production, les logs avec les corrections humaines sont directement exploitables.

Pipeline de nettoyage en 5 étapes

Aucune source interne ne s'utilise brute. Le pipeline minimal avant tout entraînement :

  1. Anonymisation. Supprimer les noms, emails, numéros de clients, données bancaires. Des outils comme Presidio (Microsoft, open source) automatisent 80 % du travail. Le reste se valide à la main.
  2. Déduplication exacte et approchée. Les doublons exacts sont faciles à supprimer (hash MD5 sur le texte normalisé). Les quasi-doublons sont plus sournois : un même email avec deux formulations légèrement différentes peut faire apprendre au modèle une incohérence. MinHash LSH ou une simple similarité cosinus sur embeddings permettent de les détecter.
  3. Filtrage des exemples ambigus ou contradictoires. Si deux exemples posent la même question et donnent deux réponses opposées, le modèle apprend à être incertain. Ces cas doivent être résolus manuellement, pas supprimés automatiquement — parfois l'un des deux exemples est juste incorrect.
  4. Validation experte sur échantillon. Faire valider 10 à 15 % du dataset par un expert métier, tiré aléatoirement. Si l'expert valide moins de 85 % des exemples, le dataset a un problème systémique à corriger avant de continuer.
  5. Équilibrage des classes (pour la classification). Si 90 % de vos exemples appartiennent à la même catégorie, le modèle apprendra à prédire toujours cette catégorie et obtiendra 90 % d'accuracy en faisant n'importe quoi. Sur-échantillonner les classes rares ou sous-échantillonner les classes dominantes. Pas les deux à la fois.

Split train/validation/test : la règle et le piège classique

La règle standard : 80 % entraînement / 10 % validation / 10 % test. Sur des datasets petits (moins de 500 exemples), on peut monter à 85/10/5.

Le split de validation est utilisé pendant l'entraînement pour surveiller la loss et décider quand stopper (early stopping). Le split de test ne doit jamais être vu pendant l'entraînement — il sert uniquement à l'évaluation finale du modèle.

Le piège le plus fréquent et le plus dévastateur : la fuite train/test (data leakage).

Piège à éviter

Si deux exemples très similaires (ou des quasi-doublons) se retrouvent un dans le split train et l'autre dans le split test, les métriques d'évaluation sont gonflées artificiellement. Le modèle "mémorise" plutôt qu'il n'apprend à généraliser. Toujours dédupliquer avant de faire le split, jamais après.

Un autre piège souvent oublié : le split temporel. Si vos données ont une dimension temporelle (emails de 2023 et 2025 mélangés), un split aléatoire fait "fuir" le futur dans l'entraînement. Pour évaluer la vraie capacité de généralisation, faites un split chronologique : train sur les données anciennes, test sur les données récentes.

Le vrai coût d'un dataset de fine-tuning en 2026

En 2026, l'entraînement LoRA sur Mistral 7B ou Llama 3 8B coûte entre 5 et 100 € de compute GPU sur RunPod, Lambda Labs ou Scaleway. Ce n'est pas le goulot d'étranglement.

Le vrai coût, c'est la préparation des données. Et c'est là que la plupart des budgets sont sous-estimés :

Étape Temps estimé (h) Part du budget projet
Extraction et audit des sources brutes 5–20 h 10–15 %
Nettoyage, anonymisation, déduplication 10–40 h 15–20 %
Annotation manuelle (si données brutes) 20–120 h 25–40 %
Validation experte et corrections 5–20 h 10–15 %
Formatage JSONL et vérification du split 2–5 h 5 %
Total préparation données 40–200 h 60–80 % du budget

Ces chiffres sont issus de projets accompagnés, pas de benchmarks théoriques. Sur un projet de 8 000 €, attendez-vous à 5 000 à 6 000 € de préparation de données et 2 000 à 3 000 € d'entraînement, évaluation et déploiement.

Limites et pièges à connaître avant de commencer

Les exemples contradictoires : pire que l'absence de données

Un dataset avec 10 % d'exemples contradictoires (même input, outputs incompatibles) génère un modèle instable. Sur les tâches de classification, il apprend à "hésiter" entre deux catégories et choisit presque aléatoirement sur les cas ambigus. Mieux vaut 400 exemples cohérents que 500 avec 100 contradictoires. La déduplication et la validation experte sont là pour ça.

La sur-représentation d'un sous-type

Si 70 % de vos exemples de style rédactionnel portent sur des emails commerciaux et 30 % sur des rapports techniques, le modèle fine-tuné sera excellent sur les emails et médiocre sur les rapports. L'équilibrage par sous-type est aussi important que l'équilibrage des classes.

L'annotation par un seul annotateur

Un seul expert qui annote tout le dataset introduit ses propres biais et angles morts. Dès que c'est possible, faites annoter chaque exemple par deux personnes indépendantes et mesurez le taux d'accord inter-annotateurs (Cohen's Kappa). Sous 0,7, votre tâche n'est probablement pas assez bien définie pour un fine-tuning fiable.

Utiliser un LLM pour générer les données sans validation humaine

La génération synthétique accélère l'annotation, mais un LLM générateur produit des exemples à son image : ses biais, ses erreurs factuelles, ses reformulations préférées. Sans validation humaine systématique, on entraîne le modèle cible sur les défauts du modèle générateur. La distillation fonctionne bien sur des tâches très définies (voir notre article sur la distillation de modèles LLM) ; sur du raisonnement ouvert, les risques sont élevés.

Pour aller plus loin

Vous hésitez encore ?

Discutons de votre cas d'usage. 30 minutes pour cadrer votre dataset et savoir si votre projet de fine-tuning est mûr.

Réserver un échange

En résumé : le dataset décide du résultat, pas le GPU

Préparer un dataset de fine-tuning LLM sérieux, c'est 40 à 200 heures de travail pour quelques heures d'entraînement. Ce déséquilibre surprend toujours, et pourtant c'est ce qui différencie un projet qui tient de celui qui déçoit.

Les règles à retenir : respecter le chat template natif du modèle (la cause n°1 d'échec), viser la qualité plutôt que le volume, dédupliquer avant de faire le split, et faire valider chaque échantillon par un expert métier. Aucune librairie — ni Unsloth, ni Axolotl, ni TRL — ne rattrape un dataset incohérent.

Si vous démarrez de zéro, la question à poser en premier n'est pas "combien d'exemples" mais "est-ce que mes données internes sont exploitables telles quelles". C'est exactement ce qu'on évalue lors d'un cadrage avec nos clients, avant d'engager le moindre budget d'annotation. Notre service d'expert LLM et fine-tuning démarre toujours par cet audit des données.

Passer à l'action

Vous voulez appliquer ça dans votre entreprise ?

En quelques minutes, identifiez les cas d'usage IA les plus rentables pour votre métier. Sans engagement, et sans jargon.

Demander un devis

Articles liés

Outils & Modèles

Top SLM 2026 : les meilleurs petits modèles de langage

Comparatif des meilleurs SLM 2026 : Ministral, Phi-4-mini, Qwen2.5, Gemma 3, SmolLM2, Llama 3.2. Tailles, licences, VRAM, cas d'usage et RGPD pour les PME.

Lire l'article
Outils & Modèles

SLM vs LLM : quel modèle d'IA choisir en PME

SLM vs LLM : comparatif décisionnel complet. Coûts, latence, VRAM, souveraineté, cas d'usage. Quand le petit modèle gagne — et quand le LLM reste indispensable.

Lire l'article
Outils & Modèles

SLM : le guide des Small Language Models en entreprise

Small language model entreprise : définition, panorama des SLM (Phi-4, Mistral, Qwen, Gemma), comparatif coût/VRAM vs LLM, quand un SLM suffit et comment le spécialiser avec LoRA.

Lire l'article
Outils & Modèles

SLM on-device : l'IA générative en local et en edge

SLM on-device : faire tourner un modèle IA en local sur poste ou edge sans cloud. Outils (Ollama, llama.cpp), modèles 1B–8B, matériel requis, limites.

Lire l'article
Outils & Modèles

Router SLM/LLM : l'architecture hybride qui réduit les coûts

Architecture hybride SLM/LLM : comment router chaque requête vers le bon modèle pour diviser vos coûts d'inférence par 5 à 10. Outils, tableau €, pièges à éviter.

Lire l'article
Outils & Modèles

Quantization de LLM : faire tourner un modèle sur petit GPU

Quantization LLM : comment passer d'un modèle 7B de 14 Go en fp16 à 4 Go en int4 avec GGUF, GPTQ ou AWQ, sans sacrifier la qualité. Guide pratique 2026.

Lire l'article
Anas Rabhi, ingénieur IA et data scientist, fondateur de Tensoria
Anas Rabhi Ingénieur IA, fondateur de Tensoria ianas.fr

Je suis ingénieur IA et data scientist, fondateur de Tensoria. Depuis plus de 6 ans, j'accompagne les entreprises dans l'exploitation concrète de l'IA pour leur métier : assistants internes basés sur RAG, agents IA en production, automatisations sur mesure, traitement intelligent de documents. J'interviens du cadrage initial à la mise en production, sur stacks LLM modernes (Mistral, Claude, GPT) et infrastructures souveraines quand la confidentialité l'exige.