[BUG/Help] <微调训练完毕发现output文件夹中只有几个json文件后续怎么使用>
Is there an existing issue for this?
- [X] I have searched the existing issues
Current Behavior
微调训练完毕发现output文件夹中只有几个json文件后续怎么使用,这几个json都是训练中结果的输出,模型微调怎么调了 我应该加载那个模型?后续怎么操作 望解答!
Expected Behavior
No response
Steps To Reproduce
1.bash train.sh 2.output文件夹
Environment
- OS:ubuntu
- Python:3.10
- Transformers:
- PyTorch:2.0.0
- CUDA Support (`python -c "import torch; print(torch.cuda.is_available())"`) :12
Anything else?
No response
不管是二次预训练,微调,还是奖励模型训练,最终都会生成.bin文件,没有则说明你的参数写错了,或者是中途失败了
检查一下你的脚本中的--max_steps,这表示每隔多少步存一次checkpoint,这里面有你的模型文件。如果这个值大于你实际的steps,那是不存checkpoint的,所以没有模型文件,一般来说,这个值要被你的steps整除,然后你选择最后存的那次checkpoint目录就行
是不是你的transformer版本太高,生成的是model.safetensors,把Transformer的modeling_utils.py文件下的save_pretrained函数参数safe_serialization改成False就可以生成之前格式的bin
我也刚刚遇到这个问题。个人认为也许是代码逻辑里有不太合理的地方(算不上bug)。
比如说我一个epoch是50 steps,设置了训练2 epochs,也就是100 steps。 我设置每save_steps=32,即每32 steps保存一次checkpoint。 最终会发现在32、64、96 steps处都保存了完整的checkpoint(即包含bin参数文件),但是并不会保存100 steps完全训练完成时的bin文件。 这个地方就需要我们自己确定save_steps可以被总steps数整除,才能确保训练完成时会生成一个checkpoint。这对直接设置训练epochs数(而不是steps数)的用户来说,并不方便。