如何使用Hugging Face Trainer仅保存模型文件以节省存储空间与写入时间
解决方案
- 首选方案是直接配置
TrainingArguments的内置参数save_only_model,该参数在Transformers v4.26及以上版本提供,设置为True后,Trainer保存checkpoint时只会输出模型权重、配置文件等推理必需的文件,不会生成优化器状态、调度器状态、随机数状态等断点续训专用文件,完全满足节省存储空间、降低写入耗时的需求。
示例配置代码如下:
from transformers import TrainingArguments, Trainer training_args = TrainingArguments( output_dir="./your_checkpoint_dir", # 其他训练参数按需配置 save_strategy="epoch", save_only_model=True, # 核心配置项 ) trainer = Trainer( args=training_args, # 其他Trainer初始化参数按需配置 ) trainer.train()
- 如果你使用的Transformers版本较低,没有
save_only_model参数,可以通过重写Trainer的save_checkpoint方法实现,在保存逻辑中过滤掉不需要写入的优化器、调度器等对象,从根源避免多余的磁盘写入操作。
注意:开启上述配置后,你将无法使用断点续训功能,若后续有中断后恢复训练的需求,不要开启该配置。
内容的提问来源于stack exchange,提问作者cookiemonster
相关产品推荐
相关产品推荐

