🏁从上一个检查点继续微调
检查点功能可保存你的微调进度,因此你可以暂停后继续。
你必须先编辑 Trainer 以添加 save_strategy 以及 save_steps。下面会每 50 步将一个检查点保存到文件夹 outputs.
trainer = SFTTrainer(
....
args = TrainingArguments(
....
output_dir = "outputs",
save_strategy = "steps",
save_steps = 50,
),
)然后在 trainer 中执行:
trainer_stats = trainer.train(resume_from_checkpoint = True)这将从最新的检查点开始并继续训练。
Wandb 集成
# 安装库
!pip install wandb --upgrade
# 设置 Wandb
!wandb login <token>
import os
os.environ["WANDB_PROJECT"] = "<name>"
os.environ["WANDB_LOG_MODEL"] = "checkpoint"然后在 TrainingArguments() 中设置
要训练模型,请执行 trainer.train();要恢复训练,请执行
❓我该如何进行早停?
如果你想在评估损失不再下降时停止或暂停微调/训练运行,那么你可以使用早停,它会停止训练过程。使用 EarlyStoppingCallback.
和往常一样,先设置好你的 trainer 和评估数据集。下面的设置用于在 eval_loss (评估损失)在大约 3 步之后不再下降时停止训练运行。
然后我们添加回调,也可以进行自定义:
然后像往常一样通过以下方式训练模型 trainer.train() 。
最后更新于
这有帮助吗?

