Aller au contenu principal

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

  1. Premier run : laissez les valeurs par défaut (auto)
  2. Analysez la loss : si la training loss descend mais la validation loss remonte, vous surapprenez
  3. Ajustez un paramètre à la fois : ne changez jamais tout en même temps
  4. 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ées
  • learning_rate_multiplier : ajustez si la convergence est trop lente ou trop instable
  • batch_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