ms-swift icon indicating copy to clipboard operation
ms-swift copied to clipboard

全量微调full断点续训问题

Open jhrsya opened this issue 1 year ago • 4 comments

执行命令:

swift sft \
    --model_type qwen2-7b-instruct \
    --sft_type full \
    --dataset single_intent_filter_data_all.json \
    --model_id_or_path Qwen2-7B-Instruct \
    --output_dir output/Qwen \
    --ddp_find_unused_parameters true \
    --add_output_dir_suffix false \
    --batch_size 2 \
    --num_train_epochs 5 \
    --max_length 4096 \
    --save_strategy epoch \
    --save_total_limit 6 \
    --dataloader_num_workers 20 \
    --use_flash_attn true \
    --resume_from_checkpoint output/Qwen/checkpoint-12270 \
    --resume_only_model true

我跑完一个epoch后中断了,于是准备断点续训。 我执行这个命令后,发现训练进度还是从0开始,还是要跑5个epoch。我的问题是模型是从output/Qwen/checkpoint-12270参数中的开始接着再训练5个epoch呢,还是从原始的Qwen2-7B-Instruct训练5个epoch呢,也就是断点续训失败?希望能得到解答,谢谢!

jhrsya avatar Aug 02 '24 03:08 jhrsya

--resume_only_model false 就是从原来断开的地方开始继续训练,为true就仅使用上次的ckpt model,从0开始重新训练

tastelikefeet avatar Aug 05 '24 07:08 tastelikefeet

--resume_only_model false 就是从原来断开的地方开始继续训练,为true就仅使用上次的ckpt model,从0开始重新训练

所以我这里断点续训失败了吗?还是从最原始的Qwen2-7B-Instruct模型参数开始训练?

jhrsya avatar Aug 06 '24 02:08 jhrsya

--resume_only_model false 就是从原来断开的地方开始继续训练,为true就仅使用上次的ckpt model,从0开始重新训练

所以我这里断点续训失败了吗?还是从最原始的Qwen2-7B-Instruct模型参数开始训练?

--resume_only_model false 会读入steps数, optim, 随机种子, 模型.

--resume_only_model true 只读入模型.

Jintao-Huang avatar Aug 06 '24 02:08 Jintao-Huang

--resume_only_model false 就是从原来断开的地方开始继续训练,为true就仅使用上次的ckpt model,从0开始重新训练

所以我这里断点续训失败了吗?还是从最原始的Qwen2-7B-Instruct模型参数开始训练?

--resume_only_model false 会读入steps数, optim, 随机种子, 模型.

--resume_only_model true 只读入模型.

--resume_from_checkpoint output/Qwen/checkpoint-12270
--resume_only_model true 所以我这里的设置,是只读入模型,从output/Qwen/checkpoint-12270中模型的权重开始训练吗?

jhrsya avatar Aug 06 '24 03:08 jhrsya

--resume_only_model false 就是从原来断开的地方开始继续训练,为true就仅使用上次的ckpt model,从0开始重新训练

所以我这里断点续训失败了吗?还是从最原始的Qwen2-7B-Instruct模型参数开始训练?

--resume_only_model false 会读入steps数, optim, 随机种子, 模型. --resume_only_model true 只读入模型.

--resume_from_checkpoint output/Qwen/checkpoint-12270 --resume_only_model true 所以我这里的设置,是只读入模型,从output/Qwen/checkpoint-12270中模型的权重开始训练吗?

是的

Jintao-Huang avatar Aug 21 '24 07:08 Jintao-Huang

全参数训练 默认只会存储模型权重,如果要存储steps数, optim, 随机种子, 请显示开启--save_only_model false

Jintao-Huang avatar Aug 21 '24 07:08 Jintao-Huang