🏁Fine-tuning depuis le dernier checkpoint

Le checkpointing vous permet de sauvegarder votre progression de fine-tuning afin que vous puissiez la mettre en pause puis la reprendre.

Vous devez modifier le Trainer d'abord pour ajouter save_strategy et save_steps. Ci-dessous enregistre un checkpoint toutes les 50 étapes dans le dossier outputs.

trainer = SFTTrainer(
    ....
    train_dataset = dataset,
        ....
        output_dir = "outputs",
        save_strategy = "steps",
        save_steps = 50,
    ),
)

Ensuite dans le trainer faites :

trainer_stats = trainer.train(resume_from_checkpoint = True)

Ce qui reprendra depuis le dernier checkpoint et continuera l'entraînement.

Intégration Wandb

# Installer la bibliothèque
!pip install wandb --upgrade

# Configuration de Wandb
!wandb login <token>

import os

os.environ["WANDB_PROJECT"] = "<name>"
os.environ["WANDB_LOG_MODEL"] = "checkpoint"

Ensuite dans TrainingArguments() définissez

Pour entraîner le modèle, faites trainer.train(); pour reprendre l'entraînement, faites

Comment faire un Early Stopping ?

Si vous voulez arrêter ou mettre en pause la fine-tuning / exécution d'entraînement parce que la perte d'évaluation ne diminue pas, vous pouvez utiliser l'arrêt précoce qui arrête le processus d'entraînement. Utilisez EarlyStoppingCallback.

Comme d'habitude, configurez votre trainer et votre jeu de données d'évaluation. Ce qui suit est utilisé pour arrêter l'exécution d'entraînement si la eval_loss (la perte d'évaluation) ne diminue pas après environ 3 étapes.

Nous ajoutons ensuite le callback qui peut également être personnalisé :

Ensuite entraînez le modèle comme d'habitude via trainer.train() .

Mis à jour

Ce contenu vous a-t-il été utile ?