Files
LLaMA-Factory/docs/zh/feature-guide/model_saving.md
2026-09-14 16:09:48 +08:00

2.5 KiB
Raw Permalink Blame History

模型保存与恢复

训练结束时 save_model() 保存最终模型;训练过程中可以按 step 或 epoch 保存 checkpoint。

保存训练 Checkpoint

save_steps 按更新步数触发保存,save_epochs 按数据遍历进度触发保存。同时设置时,训练器根据 save_epochs 重新计算并覆盖 save_steps。纯 dynamic_batching 只支持按 step 保存。

以下字段位于训练 YAML 的顶层:

save_steps: 500
save_epochs: null
save_total_limit: 3
save_ckpt_as_hf: false

save_steps 与 save_epochs 控制触发时机。save_total_limit 删除最旧的完整 checkpoint。

从 Checkpoint 恢复训练

resume_from_checkpoint 恢复训练状态。以下配置从当前 output_dir 中自动查找 checkpoint:

resume_from_checkpoint: auto

auto 在 output_dir 下寻找最新的完整 checkpoint,也可以直接填写 checkpoint 路径。未设置 resume_from_checkpoint 时,即使 output_dir 中存在 checkpoint,也不会触发续训。

不同后端的保存格式

训练后端 默认 checkpoint save_ckpt_as_hf: true
FSDP2 / FSDPTurbo 保存用于续训的分布式 checkpoint 额外在 checkpoint 中生成 hf_model 目录
DeepSpeed 保存 DeepSpeed 训练状态 额外在 checkpoint 中生成 hf_model 目录
单设备 / DDP 模型权重使用 HF 格式保存 不生成额外的 hf_model 目录

FSDP2、FSDPTurbo 和 DeepSpeed 启用 save_ckpt_as_hf 后,仍会保留用于恢复训练的原始 checkpoint,同时额外保存 HF 格式模型。聚合完整模型权重会提高保存时的内存占用。

save_ckpt_as_hf: false 是默认值,保存中间 checkpoint 时不额外聚合 HF 格式权重。

初始化权重与恢复训练

配置 用途 加载时机 恢复内容
dist_config.dcp_path 使用 DCP 权重初始化模型 FSDP2/FSDPTurbo 模型分片阶段 仅模型权重
resume_from_checkpoint 从训练 checkpoint 继续训练 Trainer 初始化阶段 模型、优化器、学习率调度器、批次进度、训练步数及可用的随机数状态

以下配置使用已有 DCP 模型权重初始化新训练:

dist_config:
  name: fsdp2
  dcp_path: path/to/dcp_model

以下配置从 output_dir 中最新的完整 checkpoint 恢复训练状态:

resume_from_checkpoint: auto