Hyperparamètres : epochs, learning rate, batch size
Le rôle des hyperparamètres
Les hyperparamètres contrôlent comment le modèle apprend à partir de vos données. Par défaut, OpenAI choisit automatiquement des valeurs raisonnables, mais les ajuster manuellement peut significativement améliorer les résultats.
Les trois hyperparamètres principaux
Nombre d’epochs (n_epochs)
Un epoch correspond à un passage complet sur l’ensemble de vos données d’entraînement. Plus vous faites d’epochs, plus le modèle voit chaque exemple.
- Trop peu d’epochs : le modèle n’a pas assez appris (sous-apprentissage)
- Trop d’epochs : le modèle mémorise les exemples au lieu de généraliser (surapprentissage)
job = client.fine_tuning.jobs.create(
training_file=training_file.id,
model="gpt-5.3-mini",
hyperparameters={
"n_epochs": 3
}
)
Recommandations :
| Taille du dataset | Epochs recommandés | Raison |
|---|---|---|
| 50-100 exemples | 4-8 | Peu de données, besoin de plus de passages |
| 100-500 exemples | 2-4 | Bon équilibre apprentissage/généralisation |
| 500+ exemples | 1-2 | Assez de données, risque de surapprentissage |
Learning rate multiplier (learning_rate_multiplier)
Le learning rate contrôle l’amplitude des ajustements appliqués aux poids du modèle à chaque étape d’entraînement.
- Trop élevé : le modèle oscille et ne converge pas
- Trop bas : le modèle apprend très lentement, voire pas du tout
job = client.fine_tuning.jobs.create(
training_file=training_file.id,
model="gpt-5.3-mini",
hyperparameters={
"learning_rate_multiplier": 1.8
}
)
La valeur par défaut est calculée automatiquement par OpenAI en fonction de la taille de votre dataset. En général :
- 0.5-1.0 : apprentissage prudent, bon pour les petits datasets
- 1.0-2.0 : valeur par défaut, convient à la plupart des cas
- 2.0+ : apprentissage agressif, à utiliser avec précaution
Batch size (batch_size)
Le batch size détermine le nombre d’exemples traités ensemble avant de mettre à jour les poids du modèle.
- Petit batch : mises à jour fréquentes, apprentissage plus bruité mais plus réactif
- Grand batch : mises à jour moins fréquentes, apprentissage plus stable
job = client.fine_tuning.jobs.create(
training_file=training_file.id,
model="gpt-5.3-mini",
hyperparameters={
"batch_size": 4
}
)
Combinaison d’hyperparamètres
Vous pouvez définir tous les hyperparamètres en même temps :
job = client.fine_tuning.jobs.create(
training_file=training_file.id,
validation_file=validation_file.id,
model="gpt-5.3-mini",
suffix="optimise-v2",
hyperparameters={
"n_epochs": 3,
"learning_rate_multiplier": 1.5,
"batch_size": 4
}
)
Stratégie d’optimisation
Approche itérative recommandée
- Premier run : laissez les valeurs par défaut (auto)
- Analysez la loss : si la training loss descend mais la validation loss remonte, vous surapprenez
- Ajustez un paramètre à la fois : ne changez jamais tout en même temps
- Documentez chaque run : notez les hyperparamètres et les résultats
Diagnostic rapide
- Training loss ne descend pas : augmentez le learning rate ou le nombre d’epochs
- Validation loss remonte : réduisez le nombre d’epochs, augmentez le batch size
- Résultats instables : réduisez le learning rate
- Modèle trop similaire au modèle de base : augmentez le nombre d’epochs
Valeur “auto”
Si vous ne spécifiez pas un hyperparamètre, OpenAI choisit automatiquement une valeur optimale. C’est souvent le meilleur point de départ :
# Seul n_epochs est fixé, le reste est auto
job = client.fine_tuning.jobs.create(
training_file=training_file.id,
model="gpt-5.3-mini",
hyperparameters={
"n_epochs": 3
# learning_rate_multiplier et batch_size seront auto
}
)
Points clés à retenir
- Commencez toujours avec les valeurs par défaut (auto) avant d’ajuster
n_epochs: ajustez en premier, en fonction de la taille de vos donnéeslearning_rate_multiplier: ajustez si la convergence est trop lente ou trop instablebatch_size: ajustez si l’entraînement est bruité- Ne changez qu’un hyperparamètre à la fois pour comprendre son impact
- Utilisez toujours un fichier de validation pour détecter le surapprentissage