Aller au contenu principal

Chapitre 3 : Arguments d'entraînement et optimisation

Affiner votre configuration d'entraînement​

Des arguments d'entraînement optimaux sont cruciaux pour un ajustement fin réussi.


Compléter TrainingArguments​

from transformers import TrainingArguments

training_args = TrainingArguments(
# Output
output_dir="./results",
overwrite_output_dir=True,

# Training duration
num_train_epochs=3,
max_steps=-1, # -1 means use epochs

# Batch size
per_device_train_batch_size=4,
per_device_eval_batch_size=4,
gradient_accumulation_steps=4,

# Learning rate
learning_rate=2e-4,
lr_scheduler_type="cosine",
warmup_ratio=0.03,
weight_decay=0.01,

# Precision
bf16=True,

# Memory optimization
gradient_checkpointing=True,
optim="paged_adamw_8bit",

# Logging
logging_steps=10,
logging_first_step=True,

# Saving
save_strategy="epoch",
save_total_limit=2,

# Evaluation
evaluation_strategy="epoch",
load_best_model_at_end=True,

# Other
seed=42,
dataloader_num_workers=4,
)

Schedules de taux d'apprentissage​

ScheduleComportementIdéal pour
linearDécroissance linéaireTâches simples
cosineDécroissance cosinusLa plupart des ajustements fins
constantPas de décroissanceEntraînement très court
polynomialDécroissance polynomialeEntraînement plus long

Lignes directrices pour les hyperparamètres​

ParamètreLoRAQLoRA
Taux d'apprentissage1e-4 à 5e-41e-4 à 2e-4
Époques1-51-3
Taille de lot (effective)8-328-16
Échauffement3-10%3-5%

Dépannage​

ProblèmeSolution
Perte ne diminue pasAugmenter le taux d'apprentissage
Perte NaNRéduire le LR, activer le découpage des gradients
Erreur OOMRéduire la taille de lot, activer le point de contrôle
SurapprentissageArrêt précoce, plus de données, régularisation

Continuer vers le quiz →