Fine-tuning : Personnalisez votre IA
Le fine-tuning permet d'adapter un modèle pré-entraîné à votre cas d'usage spécifique. C'est comme enseigner une spécialité à un expert généraliste.
Quand utiliser le fine-tuning ?
- Style spécifique : Ton de marque, format de sortie
- Domaine expert : Médical, juridique, technique
- Langue rare : Dialectes, langues peu représentées
- Tâche répétitive : Classification, extraction, génération structurée
- Réduction de coûts : Modèle plus petit mais spécialisé
Types de fine-tuning
1. Full Fine-tuning
Réentraîner tous les paramètres du modèle
- ✅ Meilleure performance
- ❌ Très coûteux (GPU A100/H100)
- ❌ Risque d'oubli catastrophique
2. LoRA (Low-Rank Adaptation)
Ajouter des matrices de faible rang
- ✅ 100x moins de paramètres à entraîner
- ✅ Rapide et économique
- ✅ Plusieurs adaptateurs sur un même modèle
3. QLoRA
LoRA + quantification 4-bit
- ✅ Fine-tune un modèle 70B sur 1 GPU 24GB
- ✅ Performances proches du full fine-tuning
Plateformes de fine-tuning
OpenAI
# Fine-tune GPT-4o-mini openai api fine_tunes.create \ -t "train.jsonl" \ -v "valid.jsonl" \ -m "gpt-4o-mini-2024-07-18" \ --n_epochs 3
Prix : $3/1M tokens (training) + $6/1M tokens (usage)
Anthropic (Claude)
Fine-tuning disponible via API pour Claude 3.5
Hugging Face
from transformers import AutoModelForCausalLM, TrainingArguments from peft import LoraConfig, get_peft_model # Charger le modèle model = AutoModelForCausalLM.from_pretrained( "meta-llama/Llama-3.1-8B" ) # Configuration LoRA lora_config = LoraConfig( r=16, # Rang lora_alpha=32, target_modules=["q_proj", "v_proj"], lora_dropout=0.05 ) # Appliquer LoRA model = get_peft_model(model, lora_config) # Entraîner trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset ) trainer.train()
Together AI
Fine-tuning de Llama, Mistral, Qwen avec interface simple
Format des données
Exemple JSONL pour fine-tuning conversationnel:
{"messages": [ {"role": "system", "content": "Tu es un assistant juridique expert."}, {"role": "user", "content": "Qu'est-ce qu'un contrat de travail CDI ?"}, {"role": "assistant", "content": "Un CDI (Contrat à Durée Indéterminée) est..."} ]} {"messages": [ {"role": "system", "content": "Tu es un assistant juridique expert."}, {"role": "user", "content": "Quels sont les droits du salarié en cas de licenciement ?"}, {"role": "assistant", "content": "En cas de licenciement, le salarié a droit à..."} ]}
Combien de données ?
- Minimum : 50-100 exemples
- Recommandé : 500-1000 exemples
- Optimal : 5000+ exemples
Métriques d'évaluation
- Perplexité : Mesure la confiance du modèle
- Accuracy : Pour la classification
- BLEU/ROUGE : Pour la génération de texte
- Human eval : Évaluation manuelle (gold standard)
Outils no-code
- OpenAI Playground : Fine-tuning GPT via interface
- Predibase : Fine-tuning LoRA sans code
- Monster API : Fine-tuning Llama en quelques clics
- Lamini : Plateforme enterprise pour fine-tuning
Cas d'usage réels
1. Support client (Intercom)
Fine-tuning sur 10K tickets → Réduction de 40% du temps de réponse
2. Génération de code (Replit)
Fine-tuning sur leur codebase → Suggestions plus pertinentes
3. Rédaction médicale (Hippocratic AI)
Fine-tuning sur littérature médicale → Diagnostic assisté
Coûts comparés
| Méthode | Coût training | Temps |
|---|---|---|
| Full fine-tuning (70B) | $5000-10000 | 2-5 jours |
| LoRA (70B) | $100-500 | 4-12h |
| QLoRA (70B) | $50-200 | 6-24h |
| OpenAI GPT-4o-mini | $30-100 | 1-3h |
Bonnes pratiques
- Commencez avec prompt engineering + RAG
- Si insuffisant, essayez le fine-tuning
- Utilisez LoRA/QLoRA pour économiser
- Validez sur un set de test séparé
- Surveillez l'overfitting
- Itérez sur la qualité des données