从错误信息来看,问题出在训练完成后尝试删除tokenizer_config.json
文件时,找不到该文件。这可能是因为在训练过程中,该文件被移动或删除了。
为了解决这个问题,你可以在训练完成后确保tokenizer_config.json
文件仍然存在,或者在删除检查点之前先将模型权重保存到其他位置。你可以使用以下代码来保存模型权重:
model.save_checkpoint(f"{checkpoint_path}/best_model")
然后,你可以继续删除检查点文件夹:
shutil.rmtree(checkpoint_path)
8条答案
按热度按时间n8ghc7c11#
请查看您的checkpoint/checkpoint-170目录,是否已保存tokenizer。一个简单的解决方法是去掉参数:
oxf4rvwz2#
可以看一下你的checkpoint/checkpoint-170目录,是不是没有保存tokenizer,一个简单的解决方式是去掉参数:
是这样的,如果要使用early_stopping ,那么load_best_model_at_end是必须项。当报这个错的时候,类似checkpoint-170这种目录已经不存在了。我查看worklog发现,其实训练已经完成了。但是可能是多进程开启的原因,每个进程都想load_best_model_at_end。所以只有一个进程能成功。其它的进程应该都失败了。
python3 -m paddle.distributed.launch --nproc_per_node=24
这样是正确开启多进程的方式吗? 在CPU模式下
ttp71kqs3#
不建议在CPU上进行训练,因为训练效率较低。关于GPU的分布式训练,可以参考以下文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/distributed/launch_cn.html#launch
col17t5w4#
您可以使用
paddle.distributed.launch
模块启动训练任务。该模块通过指定启动的程序文件,以文件为单位启动多进程来实现多卡同步训练。如果您不想使用paddle.distributed.launch
,您可以使用paddle.distributed.spawn
方法以函数为单位启动多进程来实现多卡同步的,可以更好地控制进程,在日志打印、训练退出时更友好 。hs1ihplo5#
这个可以在框架下面提issue,CPU场景不是很高频,应该是不支持的。分布式训练可以参考文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/index_cn.html
mum43rcc6#
这个可以在框架下面提issue,cpu场景不是很高频,应该是不支持的,分布式训练可以参考文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/index_cn.html。
明白了,感谢。
wlwcrazw7#
这个问题已经过时了,因为它已经开放了60天,没有任何活动。当前的问题在60天内没有活动,被标记为过时。
voj3qocg8#
使用的版本如下: