🏁Finetuning vom letzten Checkpoint

Checkpointing ermöglicht es dir, deinen Finetuning-Fortschritt zu speichern, sodass du ihn pausieren und später fortsetzen kannst.

Sie müssen den Trainer zuerst bearbeiten, um hinzuzufügen save_strategy und save_steps. Unten speichert es alle 50 Schritte einen Checkpoint in den Ordner outputs.

trainer = SFTTrainer(
    ....
    args = TrainingArguments(
        ....
        output_dir = "outputs",
        save_strategy = "steps",
        save_steps = 50,
    ),
)

Dann im Trainer tun:

trainer_stats = trainer.train(resume_from_checkpoint = True)

Was vom neuesten Checkpoint startet und das Training fortsetzt.

Wandb-Integration

# Bibliothek installieren
!pip install wandb --upgrade

# Wandb einrichten
!wandb login <token>

import os

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

Dann in TrainingArguments() setzen

Um das Modell zu trainieren, machen Sie trainer.train(); um das Training fortzusetzen, machen Sie

Wie mache ich Early Stopping?

Wenn Sie das Fine-Tuning / den Trainingslauf stoppen oder pausieren möchten, weil der Evaluationsverlust nicht sinkt, können Sie Early Stopping verwenden, das den Trainingsprozess beendet. Verwenden Sie EarlyStoppingCallback.

Wie üblich richten Sie Ihren Trainer und Ihren Evaluations-Datensatz ein. Das Folgende wird verwendet, um den Trainingslauf zu stoppen, wenn der eval_loss (der Evaluationsverlust) sich nach etwa 3 Schritten nicht verringert.

Wir fügen dann den Callback hinzu, der ebenfalls angepasst werden kann:

Dann trainieren Sie das Modell wie gewohnt über trainer.train() .

Zuletzt aktualisiert

War das hilfreich?