Closed Double-bear closed 1 year ago
trainer.add_callback(SaveModelCallback) 这个是也注释掉试试?
trainer.add_callback(SaveModelCallback) 这个是也注释掉试试?
因为我需要将checkpoint存成huggingface格式的模型,所以我加上了这个callback函数,但是正常存zero的pth格式的文件是有的
我似乎找到问题在哪里,因为我是使用zero3进行训练,我发现模型的vacab size有问题:
INFO - main - Rezize model vocab size to 55296 请问有大佬知道这个是什么原因吗?
# 这是zero3配置
{
"fp16": {
"enabled": "auto",
"loss_scale": 0,
"loss_scale_window": 100,
"initial_scale_power": 16,
"hysteresis": 2,
"min_loss_scale": 1e-10
},
"bf16": {
"enabled": "auto"
},
"zero_optimization": {
"stage": 3,
"allgather_partitions": true,
"allgather_bucket_size": 1e8,
"overlap_comm": true,
"reduce_scatter": true,
"reduce_bucket_size": 1e8,
"contiguous_gradients": true
},
"gradient_accumulation_steps": "auto",
"gradient_clipping": "auto",
"steps_per_print": 2000,
"train_batch_size": "auto",
"train_micro_batch_size_per_gpu": "auto",
"wall_clock_breakdown": false
}
{ "fp16": { "enabled": "auto", "loss_scale": 0, "loss_scale_window": 100, "initial_scale_power": 16, "hysteresis": 2, "min_loss_scale": 1e-10 },
"bf16": {
"enabled": "auto"
},
"zero_optimization": {
"stage": 2,
"allgather_partitions": true,
"allgather_bucket_size": 1e8,
"overlap_comm": true,
"reduce_scatter": true,
"reduce_bucket_size": 1e8,
"contiguous_gradients": true
},
"gradient_accumulation_steps": "auto",
"gradient_clipping": "auto",
"steps_per_print": 2000,
"train_batch_size": "auto",
"train_micro_batch_size_per_gpu": "auto",
"wall_clock_breakdown": false
}
我的经验是,即使不加trainer.add_callback(SaveModelCallback),trainer保存的checkpoint也是.bin格式的,我不知道你为什么会保存成.pth格式。 另外,zero3和lora貌似不能同时使用。但按理来说,全参数是不用lora的,你不应该遇到这个问题才对。
我的经验是,即使不加trainer.add_callback(SaveModelCallback),trainer保存的checkpoint也是.bin格式的,我不知道你为什么会保存成.pth格式。 另外,zero3和lora貌似不能同时使用。但按理来说,全参数是不用lora的,你不应该遇到这个问题才对。
我用deepspeed训练checkpoint保存的就是rngstate*.pth格式的文件,这个好像是因为deepspeed的原因。我没有用zero3训练lora,我训的是全部参数,而且使用zero3训练读取模型后model vocab size就是0,就很奇怪。
@Double-bear 在你的zero3 config 里面设置stage3_gather_16bit_weights_on_model_save
为true
就可以正常保存pytorch_model.bin
了。使用zero3训练读取模型后model vocab size为0是正常的,不耽误训练即可
stage3_gather_16bit_weights_on_model_save
非常感谢,已经可以正常保存了。
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your consideration.
提交前必须检查以下项目
问题类型
模型训练与精调
基础模型
Chinese-LLaMA-2 (7B/13B)
操作系统
Linux
详细描述问题
我将run_clm_pt_with_peft.py中关于lora的部分删除了,想要进行全参数的训练,发现通过callback函数保存的checkpoint的bin文件非常小,请问这个有什么解决方案吗? 预训练代码:
提交任务脚本:
依赖情况(代码类问题务必提供)
运行日志或截图
保存下来的bin文件参数都是空