Aller au contenu
Cercle IA Tech · Fine-tuning Un site du réseau Cercle IA Tech

Guide

Préparer un jeu de données de fine-tuning en JSONL

Format JSONL, nombre d'exemples indiqué par Google, Amazon et Mistral, découpage entraînement / validation / test, nettoyage : la préparation pas à pas.

Mis à jour le

Un jeu de données de fine-tuning est un fichier JSONL (JSON Lines) : une ligne par exemple, chaque ligne étant un objet JSON complet qui contient une conversation modèle, c'est-à-dire une demande et la réponse exacte que vous attendez. Le format précis varie selon le fournisseur ; le volume utile se compte en centaines d'exemples pour commencer, pas en millions. Voici la préparation, d'après les documentations lues le 15/11/2026.

Une ligne, un exemple

La structure la plus répandue reprend celle d'une conversation : un message système facultatif, puis des messages utilisateur et assistant qui alternent.

{"messages": [{"role": "system", "content": "Vous classez les demandes du service client."}, {"role": "user", "content": "Ma facture de mars est fausse."}, {"role": "assistant", "content": "Facturation"}]}

Chaque fournisseur a sa variante :

Fournisseur Clés principales Rôles
Mistral messages system, user, assistant, tool
Amazon Bedrock (Claude 3 Haiku) system, messages user, assistant
Amazon Bedrock (tâches non conversationnelles) prompt, completion —
Google Vertex AI (Gemini) systemInstruction, contents avec des parts user, model
Hugging Face TRL messages, ou prompt / completion, ou text user, assistant…

Gardez vos exemples dans un format neutre (un tableur ou une base) et générez le JSONL par un script : passer d'un fournisseur à l'autre ne demandera qu'une fonction de conversion.

import json

with open("train.jsonl", "w", encoding="utf-8") as f:
    for demande, categorie in exemples:
        ligne = {"messages": [{"role": "user", "content": demande},
                              {"role": "assistant", "content": categorie}]}
        f.write(json.dumps(ligne, ensure_ascii=False) + "\n")

ensure_ascii=False conserve les accents lisibles dans le fichier.

Combien d'exemples

Source Ce qu'elle indique
Google, Gemini sur Vertex AI commencer avec 100 exemples, monter à quelques milliers si nécessaire ; la qualité du jeu compte bien plus que sa quantité
Amazon Bedrock, Claude 3 Haiku 32 enregistrements au minimum, 10 000 au plus pour l'entraînement, 1 000 pour la validation
Amazon Bedrock, Llama 3.1 à 3.3 100 enregistrements au minimum (entraînement et validation cumulés), 10 000 au plus par défaut
Mistral pas de chiffre général ; un exemple de sa documentation suit la règle empirique selon laquelle chaque jeton devrait être vu trois fois

Pour estimer la taille d'un jeu, Amazon donne un repère : environ 6 caractères par jeton. Les limites de longueur existent aussi par exemple : 32 000 jetons pour Claude 3 Haiku sur Bedrock, 131 072 pour Gemini sur Vertex AI.

Ce qui fait un bon exemple

  • La réponse est exactement celle que vous voulez obtenir. Chez Mistral, la perte n'est calculée que sur les messages de l'assistant : le modèle apprend vos réponses, défauts compris.
  • Les entrées ressemblent à la production. Google demande que les requêtes réelles reprennent le format, les mots-clés et l'ordre des exemples : si vos exemples commencent par « question : » et « contexte : », les requêtes aussi.
  • La consigne est écrite dans l'exemple. Google recommande d'appliquer aux données les bonnes pratiques de rédaction de consignes, en décrivant la tâche et la sortie attendue.
  • Les cas limites sont présents : demandes ambiguës, hors sujet, mal orthographiées, et la réponse attendue dans chacun de ces cas.
  • Pas de doublons. La CNIL recommande de filtrer le jeu d'entraînement pour en retirer doublons et valeurs aberrantes ; elle range les données dupliquées parmi les indices d'un risque de mémorisation.

Le découpage

Prévoyez trois jeux distincts : entraînement, validation (suivi pendant l'entraînement) et test (mis de côté, jamais vu, pour l'évaluation finale). La documentation de Mistral recommande les trois ; l'exemple de son ancienne page « Fine-tuning API (legacy) » les découpe en 70 / 15 / 15. Vérifiez qu'un même cas, reformulé, ne se retrouve pas à la fois dans l'entraînement et dans le test : la mesure serait faussée. Voir Évaluer un modèle affiné.

Les données sensibles

Un modèle peut mémoriser des passages de ses données d'entraînement. La CNIL l'écrit dans sa fiche du 22/07/2025 sur le statut des modèles : « Les modèles d'IA peuvent relever du RGPD s'ils mémorisent des données personnelles issues de leur entraînement », et elle cite le fine-tuning parmi les indices de ce risque. Si vos exemples sont tirés de vrais échanges clients, retirez ou pseudonymisez les noms, adresses et numéros avant tout envoi, et faites valider la démarche par votre délégué à la protection des données ou un juriste. Pensez aussi à l'intégrité du jeu : un exemple piégé glissé parmi les autres s'apprend comme les autres, un risque décrit sur Empoisonnement de données.

Liste de vérification avant envoi

  1. Le fichier est en UTF-8, une ligne JSON valide par exemple.
  2. Les clés et les rôles correspondent au fournisseur visé.
  3. Aucun exemple ne dépasse la longueur maximale du modèle.
  4. Le volume atteint au moins le minimum du fournisseur.
  5. Les jeux d'entraînement, de validation et de test sont séparés, sans recoupement.
  6. Les données personnelles ont été retirées ou pseudonymisées.
  7. Un échantillon a été relu par quelqu'un qui connaît le métier.

Questions fréquentes

Combien d'exemples faut-il pour un fine-tuning ?

Il n'y a pas de chiffre universel. Google recommande de commencer avec 100 exemples pour Gemini ; Amazon Bedrock impose au moins 32 enregistrements pour Claude 3 Haiku et 100 pour les modèles Llama 3.x. Tous insistent sur la qualité plutôt que la quantité.

Qu'est-ce qu'un fichier JSONL ?

Un fichier texte où chaque ligne est un objet JSON complet, autrement dit un exemple d'entraînement. C'est le format demandé par Vertex AI, Bedrock et Mistral.

Sources

Pages consultées pour écrire cet article :

  1. https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini-supervised-tuning-prepare
  2. https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini-supervised-tuning
  3. https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-prepare.html
  4. https://docs.mistral.ai/resources/deprecated/finetuning/text_vision_finetuning
  5. https://docs.mistral.ai/resources/deprecated/customization
  6. https://huggingface.co/docs/trl/sft_trainer
  7. https://www.cnil.fr/fr/ia-analyser-le-statut-dun-modele-dia-au-regard-du-rgpd
  8. https://www.cnil.fr/fr/les-fiches-pratiques-ia

À lire aussi