调用Trainer.save_model未生成model.bin文件的技术问题
问题原因与解决办法
你遇到的情况是因为Hugging Face Transformers库的默认权重保存格式已经从model.bin改成了model.safetensors。safetensors是更安全、加载速度更快的权重格式,完全可以替代原来的model.bin,所有依赖model.bin的加载逻辑现在也都兼容safetensors格式,不用额外修改代码就能正常加载模型。
如果确实需要生成model.bin文件,可以通过以下两种方式实现:
- 在初始化
TrainingArguments时添加save_safetensors=False参数,修改后的代码如下:
args = TrainingArguments( output_dir="output_bert_training2", num_train_epochs=2, per_device_train_batch_size=8, weight_decay=0.01, evaluation_strategy="epoch", save_strategy="epoch", load_best_model_at_end=True, metric_for_best_model="eval_loss", save_safetensors=False # 添加该参数切换保存格式 )
- 或者在调用
trainer.save_model之后,单独用模型的save_pretrained方法指定不使用safetensors:
trainer.train() trainer.save_model('CustomModel_4000_2') # 额外执行该行生成model.bin model.save_pretrained('CustomModel_4000_2', safe_serialization=False)
内容的提问来源于stack exchange,提问作者Mufseera Kolayikkara Puthiya P
相关产品推荐
相关产品推荐

