LlamaFactory 通过继承 transformers 的 Seq2SeqTrainingArguments 来获得完整的训练参数,无需单独定义。因此,你可以直接在 YAML 配置文件中添加 save_total_limit 参数,它会自动被识别和使用。
具体使用方式
在 YAML 配置文件中设置如下参数:
yaml展开代码save_steps: 500
save_strategy: steps
save_total_limit: 3 # 最多只保留最近的3个检查点
参数说明
| 参数 | 说明 |
|---|---|
save_total_limit | 设置保留的检查点文件的最大数量。旧的检查点会被自动删除。 |
save_steps | 每隔多少步训练保存一次检查点。 |
save_strategy | 检查点的保存策略。可选 "steps" (按步数保存)、"epoch" (按轮次保存) 或 "no" (不保存)。 |
save_only_model | 如果为 True,则只保存模型权重,不保存优化器状态,以节省空间。 |
load_best_model_at_end | 如果为 True,训练结束时自动加载效果最佳的模型。开启后,最佳模型不会被 save_total_limit 删除。 |
工作流程
HfArgumentParser 进行解析。transformers.TrainingArguments 的 TrainingArguments 类。Trainer 在训练过程中将根据这些设置自动管理检查点的保存和删除。注意事项
load_best_model_at_end 时,最佳的模型检查点会被额外保留,不计入 save_total_limit 的限制。save_strategy 设置为 "steps" 以配合 save_steps 使用,实现定期的检查点保存。

本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!