mirror of
https://github.com/hiyouga/LLaMA-Factory.git
synced 2026-09-27 01:45:42 +08:00
[v1] update docs (#10684)
This commit is contained in:
61
docs/zh/feature-guide/model_saving.md
Normal file
61
docs/zh/feature-guide/model_saving.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 模型保存与恢复
|
||||
|
||||
训练结束时 `save_model()` 保存最终模型;训练过程中可以按 step 或 epoch 保存 checkpoint。
|
||||
|
||||
## 保存训练 Checkpoint
|
||||
|
||||
`save_steps` 按更新步数触发保存,`save_epochs` 按数据遍历进度触发保存。同时设置时,训练器根据 `save_epochs` 重新计算并覆盖 `save_steps`。纯 `dynamic_batching` 只支持按 step 保存。
|
||||
|
||||
以下字段位于训练 YAML 的顶层:
|
||||
|
||||
```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:
|
||||
|
||||
```yaml
|
||||
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 模型权重初始化新训练:
|
||||
|
||||
```yaml
|
||||
dist_config:
|
||||
name: fsdp2
|
||||
dcp_path: path/to/dcp_model
|
||||
```
|
||||
|
||||
以下配置从 `output_dir` 中最新的完整 checkpoint 恢复训练状态:
|
||||
|
||||
```yaml
|
||||
resume_from_checkpoint: auto
|
||||
```
|
||||
Reference in New Issue
Block a user