🏁从上次检查点继续微调

检查点允许您保存微调进度,以便可以暂停然后继续。

您必须编辑 Trainer(训练器) 首先以添加 save_strategysave_steps。下面每50步将检查点保存到文件夹 outputs(输出).

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

然后在训练器中这样做:

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();要恢复训练,请执行

如何进行早停(Early Stopping)?

如果您想在评估损失不下降时停止或暂停微调/训练运行,则可以使用早停来停止训练过程。使用 EarlyStoppingCallback.

像往常一样,设置您的训练器和评估数据集。下面用于在 eval_loss (评估损失)在大约3步后仍未下降时停止训练运行。

然后我们添加回调,该回调也可以自定义:

然后像往常一样通过以下方式训练模型: trainer.train() 。

最后更新于

这有帮助吗?