Le Fine-tuning est le processus de spécialisation d'un modèle de langage pré-entraîné (comme GPT-4o ou Llama 3) sur un jeu de données spécifique à votre domaine. Plutôt que d'utiliser le modèle tel quel, vous l'entraînez davantage sur vos propres exemples pour qu'il adopte votre style, votre vocabulaire et vos conventions. Coût OpenAI : 25$/M tokens d'entraînement.
Le Fine-tuning (affinage) consiste à poursuivre l'entraînement d'un LLM pré-entraîné sur un corpus spécialisé, généralement composé de milliers d'exemples prompt-completion. OpenAI facture le fine-tuning de GPT-4o à 25$/M tokens d'entraînement, avec un minimum de 3 epochs. Un jeu de données typique contient 50-500 exemples. Le fine-tuning améliore la cohérence du format (toujours répondre en JSON avec les mêmes champs), le ton (formel vs conversationnel), et la précision factuelle (vocabulaire technique spécifique au domaine). Alternative économique : le LoRA (Low-Rank Adaptation), qui n'optimise qu'une fraction des paramètres du modèle, réduisant les coûts de fine-tuning de -90% avec des performances proches du full fine-tuning. Hugging Face TRL et Unsloth sont les outils les plus utilisés pour le fine-tuning open-source.
Le fine-tuning, c'est comme prendre un professeur complètement polyvalent et lui faire passer un diplôme de spécialisation. Il reste capable d'enseigner toute matière, mais il devient chirurgical dans votre domaine précis. Après le fine-tuning, le modèle ne devine plus votre format — il le connaît par cœur.
La qualité du fine-tuning dépend à 90% des données. Chaque exemple contient un prompt (instruction) et une completion (réponse idéale). Minimum recommandé : 50 exemples (fine-tuning léger), 500 exemples (amélioration significative), 5 000+ exemples (transformation du modèle). Les exemples doivent être cohérents (même format, même ton) et diversifiés (couvrir tous les cas d'usage). Les erreurs dans le dataset se propagent directement dans le modèle — nettoyez religieusement : pas de contradictions, pas de hallucinations étiquetées comme correctes. Format : JSONL avec messages (system, user, assistant).
Les hyperparamètres critiques : epochs (3-5 typique), learning rate (1e-5 à 5e-5 pour OpenAI), et batch size. Trop d'epochs = overfitting (le modèle mémorise vos exemples au lieu de généraliser). Trop peu = underfitting. Utilisez un jeu de validation (10-20% des données) pour évaluer la perplexité pendant l'entraînement. La loss sur validation doit diminuer puis se stabiliser — si elle remonte, early stopping. OpenAI fournit des métriques en temps réel. Pour LoRA : rank (4-64), alpha (2× rank), target modules (q_proj, v_proj).
Un modèle fine-tuné est accessible via API dédiée (ex: ft:gpt-4o-2024-08-06:org:model). Latence légèrement supérieure au modèle standard (+10-20ms). Monitorez la qualité en production : la distribution des requêtes réelles peut différer des exemples d'entraînement (distribution shift). Mettez à jour le fine-tuning tous les 3-6 mois avec de nouveaux exemples représentatifs. Le fine-tuning OpenAI ne permet pas d'augmenter les connaissances du modèle (pas de RAG intégré) — il modifie uniquement le comportement et le style.
Une legaltech française fine-tune GPT-4o sur 800 exemples de réponses juridiques en droit du travail (questions/réponses validées par des avocats). Coût : 800 exemples × 500 tokens moyens × 3 epochs × 25$/M = 30$ (marginal). Résultat : le modèle répond dans le format exact attendu (base légale, article de loi, recommandation), avec le ton juridique approprié. Avant fine-tuning : réponses informatives mais pas exploitables professionnellement. Après : 94% des réponses directement utilisables par les avocats clients. Gain productivité : 8 heures/semaine pour l'équipe juridique.
| Métrique | Valeur |
|---|---|
| Coût fine-tuning OpenAI (GPT-4o) | 25$/M tokens entraînement |
| Exemples minimum | 50 (léger), 500 (significatif) |
| Epochs typique | 3-5 |
| Réduction tokens prompt système | -20 à -40% vs prompting |
| Réduction coût LoRA vs full fine-tuning | -90% |
| Durée entraînement (500 exemples) | 15-45 minutes |