首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Huggingface的"resume_from_checkpoint“有效吗?

Huggingface的"resume_from_checkpoint“有效吗?
EN

Stack Overflow用户
提问于 2022-06-18 19:46:45
回答 2查看 856关注 0票数 2

我现在把我的教练设置为:

代码语言:javascript
运行
复制
training_args = TrainingArguments(
    output_dir=f"./results_{model_checkpoint}",
    evaluation_strategy="epoch",
    learning_rate=5e-5,
    per_device_train_batch_size=4,
    per_device_eval_batch_size=4,
    num_train_epochs=2,
    weight_decay=0.01,
    push_to_hub=True,
    save_total_limit = 1,
    resume_from_checkpoint=True,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_qa["train"],
    eval_dataset=tokenized_qa["validation"],
    tokenizer=tokenizer,
    data_collator=DataCollatorForMultipleChoice(tokenizer=tokenizer),
    compute_metrics=compute_metrics
)

培训结束后,在我的output_dir中,我有几个培训师保存的文件:

代码语言:javascript
运行
复制
['README.md',
 'tokenizer.json',
 'training_args.bin',
 '.git',
 '.gitignore',
 'vocab.txt',
 'config.json',
 'checkpoint-5000',
 'pytorch_model.bin',
 'tokenizer_config.json',
 'special_tokens_map.json',
 '.gitattributes']

文档中可以看出,resume_from_checkpoint将继续从上一个检查点训练该模型:

resume_from_checkpoint (str or bool, optional) — If a str, local path to a saved checkpoint as saved by a previous instance of Trainer. If a bool and equals True, load the last checkpoint in args.output_dir as saved by a previous instance of Trainer. If present, training will resume from the model/optimizer/scheduler states loaded here.

但是当我调用trainer.train()时,它似乎删除了最后一个检查点,并启动了一个新的检查点:

代码语言:javascript
运行
复制
Saving model checkpoint to ./results_distilbert-base-uncased/checkpoint-500
...
Deleting older checkpoint [results_distilbert-base-uncased/checkpoint-5000] due to args.save_total_limit

它真的从上一个检查点(即5000)开始训练,只是在0开始新检查点的计数(保存500步后的第一个-“检查点-500”),还是干脆不继续培训?我还没有找到测试它的方法,而且文档也不清楚。

EN

回答 2

Stack Overflow用户

发布于 2022-06-27 21:07:01

看看代码,首先是加载检查点状态。更新已经运行了多少个时代继续培训,从这里到运行作业的总时间(不重置为0)。

若要继续进行培训,请在您的检查点上调用num_train_epochs之前增加您的trainer.train()

票数 1
EN

Stack Overflow用户

发布于 2022-07-18 11:23:06

您还应该将resume_from_checkpoint参数添加到trainer.train中,并链接到检查点。

trainer.train(resume_from_checkpoint="{/checkpoint-0000")

0000-支票号码的例子。

别忘了在整个过程中安装你的驱动器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72672281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档