Self-Forcing / experiment.md
Cccccz's picture
Add files using upload-large-folder tool
d1d122e verified
|
Raw
History Blame Contribute Delete
21.6 kB
# Self-Forcing DMD / FRRF / Predictor v4 实验记录
## 结果总览
### 数据划分与统一设置
- 训练集:从 `vidprom_filtered_extended.txt` 以随机种子 0 采样的
1000 条提示词。
- 本文只展示验证集结果:`MovieGenVideoBench_extended.txt` 第 101–200
条非空提示词,即 Python 切片
`[100:200]`;保存在
`prompts/MovieGenVideoBench_extended_101_200.txt`
- 训练集与该验证集的精确字符串重合数为 0。
- 评测使用随机种子 0、每条提示词生成 1 个 81 帧、832 × 480
视频,并在 VBench `custom_input` 模式下计算相同六个维度。
- 六维均值是六项等权算术平均,仅用于本实验横向比较,不是 VBench
官方加权总分。
预测器与速度场复用调度的首个分块均为 FFFF,FPPF/FPPP/FRRF/FRRR
描述其后续分块;FFFF 则在所有分块都使用完整生成器。`F` 表示完整
生成器,`P` 表示预测器,`R` 表示复用同一分块第一步的速度场。
### 验证集(第 101–200 条)VBench
| 训练方案 | 推理方式 | 主体一致性 | 背景一致性 | 运动平滑度 | 动态程度 | 美学质量 | 成像质量 | 六维均值 | 相对 FFFF |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| DMD 基线 | FFFF | 0.9317 | 0.9443 | 0.9762 | 0.7000 | 0.6204 | 0.7004 | **0.8122** | 0.0000 |
| 无需训练(速度场复用) | FRRF | 0.9079 | 0.9334 | 0.9729 | 0.7100 | 0.6167 | 0.6865 | 0.8046 | -0.0076 |
| 阶段 1 | FPPF | 0.9186 | 0.9409 | 0.9803 | 0.7100 | 0.6132 | 0.6908 | **0.8089** | -0.0032 |
| 阶段 2-A 在线策略 | FPPF | 0.9161 | 0.9400 | 0.9820 | 0.7000 | 0.6120 | 0.6873 | 0.8062 | -0.0060 |
| 阶段 2-B 离线 FFFF | FPPF | 0.8959 | 0.9319 | 0.9825 | 0.6900 | 0.6086 | 0.6741 | 0.7972 | -0.0150 |
| | | | | | | | | | |
| 无需训练(速度场复用) | FRRR | 0.5739 | 0.7704 | 0.9179 | 1.0000 | 0.4117 | 0.4464 | 0.6867 | -0.1255 |
| 阶段 1 | FPPP | 0.8239 | 0.8979 | 0.9744 | 0.5100 | 0.5619 | 0.6636 | 0.7386 | -0.0736 |
| 阶段 2-A 在线策略 | FPPP | 0.8420 | 0.9074 | 0.9815 | 0.4400 | 0.5516 | 0.6238 | 0.7244 | -0.0878 |
| 阶段 2-B 离线 FFFF | FPPP | 0.7767 | 0.8816 | 0.9820 | 0.2900 | 0.4873 | 0.5085 | 0.6544 | -0.1578 |
在验证集上,阶段 1 FPPF 的运动平滑度比 FFFF 高 0.0041,动态程度高
0.01;其均值损失主要来自主体一致性、美学质量和成像质量。阶段 2-A
FPPF 的动态程度与 FFFF 相同,但其余质量项略低。
### 与 FFFF 的逐帧相似度
每个方案均按同名视频和帧位置与验证集 FFFF 配对,统计
100 个视频、8,100 对原始分辨率 RGB 帧。PSNR/SSIM 越高、LPIPS 越低
表示越接近 FFFF,但这些指标不代表对真实视频的保真度。
| 训练方案 | 推理方式 | VBench 六维均值 | PSNR | SSIM | LPIPS |
| --- | --- | ---: | ---: | ---: | ---: |
| 无需训练(速度场复用) | FRRF | 0.8046 | 18.2527 | 0.5706 | 0.2828 |
| 阶段 1 | FPPF | 0.8089 | 18.8213 | 0.6032 | 0.2497 |
| 阶段 2-A 在线策略 | FPPF | 0.8062 | 18.9809 | **0.6105** | **0.2497** |
| 阶段 2-B 离线 FFFF | FPPF | 0.7972 | **19.1423** | 0.6066 | 0.2721 |
| | | | | | |
| 无需训练(速度场复用) | FRRR | 0.6867 | 14.6036 | 0.2631 | 0.6725 |
| 阶段 1 | FPPP | 0.7386 | 18.3280 | 0.5483 | 0.3371 |
| 阶段 2-A 在线策略 | FPPP | 0.7244 | 18.7079 | 0.5867 | 0.3362 |
| 阶段 2-B 离线 FFFF | FPPP | 0.6544 | 18.7494 | 0.5700 | 0.4340 |
### 结论
1. **质量上限仍是 FFFF。** 它在验证集上的六维均值为 0.8122。
2. **当前推荐部署阶段 1 FPPF。** 它是验证集上最接近 FFFF 的
方案,均值为 0.8089,比 FFFF 低 0.0032。
3. **FRRF 是当前最好的无预测器复用方案。** 它的均值为 0.8046,
比 FFFF 低 0.0076,比阶段 1 FPPF 低 0.0044;其动态程度为
0.7100,但主体一致性、背景一致性、运动平滑度和成像质量仍低于 FFFF。
4. **FRRR 不适合当前部署。** 虽然其动态程度达到 1.0000,但六维均值
只有 0.6867;相对 FFFF 的 PSNR/SSIM/LPIPS 也恶化到
14.6036/0.2631/0.6725,说明连续三步复用导致明显漂移。
5. **阶段 2 展开训练仍未超过阶段 1。** 阶段 2-A 在线策略 FPPF
比阶段 1 FPPF 低 0.0027;阶段 2-B 低 0.0118。
6. **阶段 2 内部仍是在线策略优于固定的离线 FFFF 标签。**
验证集中,FPPF 高 0.0090,FPPP 高 0.0700。
7. **P3 暂时不能替代最终的完整模型步骤。** 同一检查点从 FPPF
改为 FPPP 后,验证集均值在阶段 1、阶段 2-A、阶段 2-B 分别
下降 0.0703、0.0818、0.1428。
8. 当前结论来自 100 条独立验证提示词、单一随机种子、每条单样本;
正式报告统计显著性时仍建议补充多随机种子实验或置信区间。
### 训练完成状态
| 模型 | 训练标签 | 步数 | 最终损失 | 推荐推理方式 | 状态 |
| --- | --- | ---: | ---: | --- | --- |
| 阶段 1 | 离线 FFFF 相邻步骤 | 2000 | 0.0635 | FPPF(当前最佳) | 已完成并同步 |
| 阶段 2-A | 在线策略完整教师模型 | 2000 | 0.0787 | FPPF(次选) | 已完成并同步 |
| 阶段 2-B | 固定离线 FFFF | 2000 | 0.3685 | 不推荐 | 已完成并同步 |
这些损失来自不同监督目标,不能把其绝对值直接当作模型质量差异;部署
选择以上述统一 VBench 评测为准。
### 结果入口
- 完整实验记录和配置:本文后续“详细实验记录”
- 验证集(第 101–200 条)机器可读汇总:
`evaluation_results/moviegen_101_200/summary.json`
- 验证集完整流水线日志:
`evaluation_results/moviegen_101_200/evaluation_suite.log`
`evaluation_results/moviegen_101_200/reuse_schedules_evaluation.log`
- 验证集提示词清单与清单文件:
`prompts/MovieGenVideoBench_extended_101_200.txt`
`prompts/MovieGenVideoBench_extended_101_200.json`
- 验证集九组视频:
`videos/moviegenvideobench_extended_101_200_dmd_*_seed0`
## 已完成事项(原待办)
### 首个分块全为完整模型步骤的 FRRF / FRRR
状态:已完成。评测于 `2026-07-29T04:12:19Z` 开始,于
`2026-07-29T04:37:17Z` 完成。
所需调度:
```text
FRRF:分块 0 为 F-F-F-F;分块 1–6 为 F-R-R-F
FRRR:分块 0 为 F-F-F-F;分块 1–6 为 F-R-R-R
```
其中,`R` 表示复用同一分块第 0 步预测的速度场。两种调度的最终干净上下文
更新仍使用完整生成器。
- [x] 增加明确的 `frrf` / `frrr` 速度场复用调度。
- [x] 强制两种调度的首个分块均使用 FFFF。
- [x] 增加调度测试和随机种子 0 的空跑测试。
- [x] 增加可恢复的九方案评测与汇总支持。
- [x] 使用八张 GPU,在验证集第 101–200 条提示词上生成 FRRF 和
FRRR 视频。
- [x] 验证每个样本(包括 FFFF 和两种复用调度)都在生成初始噪声前,
将所有随机数生成器重置为随机种子 0。
- [x] 验证每种调度均有 100 个视频,每个视频为 81 帧、832 × 480。
- [x] 运行 VBench 的六个维度。
- [x] 以已有的随机种子 0 验证集 FFFF 为参照,计算
PSNR/SSIM/LPIPS;每种调度统计 100 个视频和 8,100 对配对帧。
- [x] 更新 `evaluation_results/moviegen_101_200/summary.json`
- [x] 替换“结果总览”中的 FRRF 行,增加 FRRR,并更新结论。
“结果总览”已替换为新协议结果。旧 FRRF 调度的产物仍保留,但不再纳入
九方案汇总。
输出目录:
```text
videos/moviegenvideobench_extended_101_200_dmd_frrf_chunk0_ffff_seed0
videos/moviegenvideobench_extended_101_200_dmd_frrr_chunk0_ffff_seed0
```
配对结果文件:
```text
evaluation_results/moviegen_101_200/ffff_vs_frrf_chunk0_ffff_psnr_ssim_lpips.json
evaluation_results/moviegen_101_200/ffff_vs_frrr_chunk0_ffff_psnr_ssim_lpips.json
```
运行入口:
- `scripts/run_moviegen_first100_dmd_frrf.sh`
- `scripts/run_moviegen_first100_dmd_frrr.sh`
- `scripts/run_moviegen_101_200_evaluation.sh`
- `scripts/wait_and_run_moviegen_101_200_reuse_schedules.sh`
## 详细实验记录
### Predictor v4:1000 条提示词的离线训练
- 提示词来源:`prompts/vidprom_filtered_extended.txt`
- 选取方式:使用 `random.Random(0).sample` 选取 1000 条非空记录
- 留出集排除规则:排除与
`prompts/MovieGenVideoBench_extended.txt` 前 100 条非空提示词完全
相同的记录
- 构建后重合检查:训练提示词与基准集第 1–100 条、第 101–200 条的精确
重合数均为 0/100;与整个 1003 条提示词基准文件的精确重合数也为 0
- 生成随机种子:每个样本均重置为 0
- 选中提示词数 / 唯一提示词数:1000 / 1000
- `cases.jsonl` SHA-256:
`e1d9cd6b5261b513f8d2983dde2fbc7e05e19e3c966ad041f9cd8040d2a01cbe`
- 数据集根目录:
`/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_1000_seed0`
- 预测器源模块:`[1, 28]`
- 捕获干净预特征的候选模块:`[0, 1, 28, 29]`
- 教师轨迹:7 个各含 3 个潜空间帧的分块,每个分块执行 4 个完整模型步骤
- 训练清单:使用分块 1–6,每个分块包含 3 个相邻状态转换;预计得到
6000 条分块记录 / 18000 对训练数据
- NVMe 训练输出:
`/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_training_1000_seed0`
- 最终同步的数据集:
`data/self_forcing_predictor_v4_1000_seed0`
- 最终同步的训练输出:
`checkpoints/predictor_v4_1000_seed0`
- 端到端监督进程 PID:`1251561`
- 监督进程日志:
`checkpoints/predictor_v4_1000_seed0/end_to_end.log`
- 启动时间:`2026-07-24T10:19:58Z`
- 初始状态:由于 8 张 H100 GPU 均被已有的 HY-WorldPlay 预测器训练
任务占用,因此进入排队状态。监督进程在等待期间不占用 GPU 显存。
- GPU 冒烟测试和 1000 个样本的八卡离线构建均已成功完成。验证后的数据集
包含 7000 条分块记录,以及 6000 个训练分块 / 18000 对相邻步骤数据。
- 历史状态:数据集构建完成后按要求暂停训练;后续正式训练取代了这一暂停
状态。
- 暂停前的一次短训练运行到第 90 步,尚未到达第 100 步的首个检查点。
其日志保存在
`/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_training_1000_seed0/aborted_step90_20260724T142101Z`
后续从头训练不会恢复该运行的任何权重。
#### 正式八卡训练
- 启动时间:`2026-07-25T13:16:41Z`
- GPU:8 × NVIDIA H100 80GB
- 单卡批大小:16
- 全局批大小:128
- 梯度累积步数:1
- 最大训练步数:2000
- 训练从全新初始化开始,不恢复已归档的第 90 步运行。
- 批大小验证:单卡运行 36 步,覆盖全部 6 个上下文长度桶,并且没有发生
显存不足。PyTorch 峰值显存约为 35.18 GiB。
- 正式运行第 10 步状态:损失 1.7726008478、流匹配均方误差
1.7364688764、隐藏状态均方误差 0.3613196773、平均微步耗时
0.9235374251 秒、PyTorch 峰值显存 35.18 GiB。采样检查时 8 张 GPU
的利用率均为 100%。
- SwanLab 项目:
`https://swanlab.cn/@ZhuoChen/Self-Forcing-Predictor-v4`
- SwanLab 运行记录:
`https://swanlab.cn/@ZhuoChen/Self-Forcing-Predictor-v4/runs/4h9zkrjp`
- 监督进程 PID:`3351068`
- 监督进程日志:
`checkpoints/predictor_v4_1000_seed0/training_and_sync.log`
- 训练日志:
`/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_training_1000_seed0/train_log.jsonl`
- 每 100 步将检查点写入 NVMe。第 2000 步完成后,监督进程会自动将数据集
和训练产物同步到上文列出的项目路径。
#### 批大小 32 续训
- 批大小为 16 的运行在记录第 320 步后被主动停止。最近的完整检查点为
第 300 步,因此从第 300 步的完整状态继续训练,包括模型、优化器、
学习率调度器、训练轮次位置和各进程随机数生成器状态。
- 恢复时间:`2026-07-25T13:35:17Z`
- 单卡批大小:32
- 全局批大小:256
- 梯度累积步数:1
- 第 330 步验证:损失 0.1543566273、平均微步耗时 1.9139812439 秒、
PyTorch 峰值显存 68.46 GiB。
- 驱动报告的显存稳定在每张 GPU 约 76.5 GiB。训练跨越多个上下文长度桶
时没有发生显存不足,8 个工作进程均保持活跃。
- SwanLab 运行记录:
`https://swanlab.cn/@ZhuoChen/Self-Forcing-Predictor-v4/runs/zd7a5ge6`
- 监督进程 PID:`3358910`
#### 批大小 32 从头重训
- 上述续训在记录第 870 步后按要求停止,其完整文件和检查点保存在:
`/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_training_archives/bs16_then_bs32_resume_stopped_step870_20260725`
- 重新启动时间:`2026-07-25T14:41:01Z`
- 恢复设置:`null`
- 启动前输出目录为空,新日志从全局第 1 步开始。
- 单卡批大小:32
- 全局批大小:256
- 第 10 步状态:损失 1.7685708122、流匹配均方误差 1.7325291700、
隐藏状态均方误差 0.3604163701、平均微步耗时 1.8527149781 秒、
PyTorch 峰值显存 68.46 GiB。
- SwanLab 运行记录:
`https://swanlab.cn/@ZhuoChen/Self-Forcing-Predictor-v4/runs/4kxa9v7b`
- 监督进程 PID:`3380489`
- 最终状态:从头训练至第 2000 步,并于
`2026-07-25T19:52:55Z` 完成同步。
- 最终损失:`0.0635068361`
- 最终检查点:
`checkpoints/predictor_v4_1000_seed0/predictor_step_02000.safetensors`
### Predictor v4 阶段 2:分离梯度的 FPPP 展开训练
- 实现日期:`2026-07-25`
- 阶段 2 的两个训练版本分别从阶段 1 第 2000 步的 FP32 模型状态独立
初始化,均不继承阶段 1 的优化器、学习率调度器、训练轮次或全局步数。
- 训练展开调度固定为:
- 分块 0:`F-F-F-F`
- 分块 1–6:`F-P-P-P`
- P1、P2 和 P3 均接受隐藏状态与流匹配监督。
- 在每个时间步和分块边界,预测器隐藏状态、预测的干净潜变量和上一分块的
隐藏状态都会分离梯度。
- 每条轨迹包含 18 个受监督状态:
`6 个训练分块 × 3 个预测器时间步`
- 持久历史只包含以下 K/V:将最终干净分块潜变量在上下文时间步 0 输入冻结
的完整生成器后写入的 K/V。中间时间步的 K/V 只存在于临时工作区。
- 在线时间步使用以下精确 FP32 值:
`[1000.0, 937.5, 833.3333129882812, 625.0]`
- 每条提示词的初始噪声和转换噪声都精确复现推理时随机种子 0 的随机数序列。
两个相互独立的八卡训练版本均已成功完成:
| 版本 | 训练展开调度 | 监督方式 | 最终步数 | 最终损失 |
| --- | --- | --- | ---: | ---: |
| 阶段 2-A | FPPP | 在当前学生状态上查询完整教师模型 | 2000 | 0.0786837618 |
| 阶段 2-B | FPPP | 使用已保存的离线 FFFF 轨迹中的固定隐藏状态与流匹配目标 | 2000 | 0.3684817659 |
通用训练配置:
```text
8 张 GPU
每张 GPU 1 条轨迹
每个全局优化步骤 8 条轨迹
2000 个优化步骤
融合模块学习率 5e-5
预测器模块学习率 5e-6
100 步线性预热 + 余弦衰减
BF16 激活值
FP32 可训练参数和 AdamW 状态
随机种子 0
每 100 步保存一次
```
阶段 2 输出根目录:
```text
/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_stage2_onpolicy_fppp_1000_seed0
/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_stage2_offline_ffff_fppp_1000_seed0
checkpoints/predictor_v4_stage2_onpolicy_fppp_1000_seed0
checkpoints/predictor_v4_stage2_offline_ffff_fppp_1000_seed0
```
分离梯度训练监督进程在占用 8 张 GPU 前会等待以下条件全部满足:
1. NVMe 中阶段 1 的 `training_latest.pt` 明确记录第 2000 步;
2. NVMe 中存在 `predictor_step_02000.safetensors`
3. 阶段 1 产物已完成向项目目录的同步;
4. 阶段 1 训练与同步监督进程已经退出;
5. 阶段 2 实现的就绪标记已经存在。
随后,监督进程先为每种监督模式各运行一次完整的八卡轨迹冒烟测试,再依次
训练并同步阶段 2-A 和阶段 2-B。
- 阶段 2 监督进程 PID:`3442042`(已成功退出)
- 监督进程日志:
`checkpoints/predictor_v4_stage2_suite/wait_and_train.log`
- 等待脚本:
`scripts/wait_stage1_then_run_stage2.sh`
- 套件脚本:
`scripts/run_predictor_v4_stage2_suite.sh`
- 就绪标记:
`checkpoints/predictor_v4_stage2_code.ready`
- 就绪状态:通过 Python 编译、Shell 语法、离线目标形状与数据类型、
缓存分离梯度以及随机种子 0 精确噪声序列检查后释放。两个强制自动八卡
轨迹冒烟测试也均已通过。
- 阶段 2-A 于 `2026-07-26T10:02:29Z` 完成同步。
- 阶段 2-B 及完整套件于
`2026-07-26T11:34:47Z` 完成同步。
- 阶段 2-A SwanLab:
`https://swanlab.cn/@ZhuoChen/Self-Forcing-Predictor-v4/runs/vx0szxt9`
- 阶段 2-B SwanLab:
`https://swanlab.cn/@ZhuoChen/Self-Forcing-Predictor-v4/runs/lhs9t5au`
- SwanLab 拒绝了每一步中字符串类型的 `supervision_mode` 指标。这只影响
日志记录;数值指标、最终检查点、上传、验证和同步均已成功完成。
每个训练完成的检查点都支持以下两种部署调度:
```text
FPPF:F0 -> P1 -> P2 -> F3
FPPP:F0 -> P1 -> P2 -> P3
```
### MovieGen 验证集评测
- 初始评测日期:`2026-07-26`
- 初始评测时间段:`2026-07-26T16:23:11Z`
`2026-07-26T17:35:53Z`
- FRRF/FRRR 新协议补充评测时间段:`2026-07-29T04:12:19Z`
`2026-07-29T04:37:17Z`
- 提示词来源:`prompts/MovieGenVideoBench_extended.txt`
- 提示词范围:按从 1 开始计数的第 101–200 条非空记录,共 100 条唯一
提示词
- 提示词文件:`prompts/MovieGenVideoBench_extended_101_200.txt`
- 提示词 SHA-256:
`a3fef56aa8c4a33a8245391888f6f998e2a6a1c278e6492988501d7ad0352621`
- 数据划分清单:`prompts/MovieGenVideoBench_extended_101_200.json`
- 与选中的 1000 条预测器训练提示词的精确重合数:0
- 随机种子:每条提示词均为 0
- 推理设置:8 张 GPU,每条提示词生成 1 个样本,启用 EMA
- 已评测版本:FFFF、FRRF、FRRR、阶段 1 FPPF/FPPP、阶段 2-A
FPPF/FPPP 和阶段 2-B FPPF/FPPP
- NVMe 暂存根目录:
`/mnt/local_nvme/zoubin/cz/self_forcing_moviegen_101_200_evaluation`
- 项目视频目录:
`videos/moviegenvideobench_extended_101_200_dmd_*_seed0`
- 完整性验证:9 组结果均包含 100 个视频;全部 900 个视频都能解码为
81 帧、832 × 480
- VBench 验证:每个版本在六个维度中都恰好包含 100 条逐视频记录
- 配对验证:8 个非基线版本均包含 100 个视频,每个版本都与验证集 FFFF
输出形成 8,100 对配对帧
- 数据划分准备脚本:
`scripts/prepare_moviegen_validation_split.py`
- 可恢复的评测启动脚本:
`scripts/run_moviegen_101_200_evaluation.sh`
- 汇总与完整性检查脚本:
`scripts/summarize_moviegen_101_200_evaluation.py`
- 机器可读汇总:
`evaluation_results/moviegen_101_200/summary.json`
- 初始评测日志:
`evaluation_results/moviegen_101_200/evaluation_suite.log`
- FRRF/FRRR 新协议评测日志:
`evaluation_results/moviegen_101_200/reuse_schedules_evaluation.log`
- 完成标记:
`evaluation_results/moviegen_101_200_evaluation.complete`
完整的 VBench 与配对指标数值维护在“结果总览”中;未经四舍五入的精确值和
全部源结果路径记录在机器可读汇总文件中。
## Wan14B DMD 预测器训练
- 启动日期:`2026-07-29`
- 状态:进行中
- 训练顺序:先训练 Predictor-only,再训练 Full + Predictor Joint。
- 两个版本均训练 2000 个 student DMD step。
- 每个 student step 前更新 Fake Score 5 次。
- Predictor-only 随机退出:P1、P2、P3 等概率采样。
- Joint 随机退出:F0、P1、P2、P3 等概率采样;预计约 1500 次
Predictor optimizer 更新。
- Predictor 融合/残差学习率:`1e-5`
- Predictor block 学习率:`1e-6`
- Joint Full Generator 学习率:`2e-7`
- Fake Score 学习率:`4e-7`
- 学生 optimizer:AdamW,`betas=(0.0, 0.999)`,100 步线性预热后
余弦衰减。
- EMA:第 200 步开始,衰减率 `0.99`
- 实模冒烟:Predictor-only 和 Joint 的 DMD 反向均通过;Joint 的
Full/Predictor 梯度、FSDP 后冻结副本同步、Full/Predictor EMA
检查点保存和重新读取均通过。
- 训练托管会话:`tmux predictor_v4_dmd_suite`
- 总日志:
`/mnt/local_nvme/zoubin/cz/predictor_v4_dmd_suite.log`
- Predictor-only NVMe 输出:
`/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_dmd_predictor_only`
- Predictor-only SwanLab:
`https://swanlab.cn/@ZhuoChen/Self-Forcing-Predictor-v4/runs/yzdlp32v`
- Joint NVMe 输出:
`/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_dmd_joint`
- Predictor-only 配置:
`configs/predictor_v4_dmd_predictor_only.yaml`
- Joint 配置:`configs/predictor_v4_dmd_joint.yaml`
- 串行训练与评测脚本:`scripts/run_predictor_v4_dmd_suite.sh`
训练完成后自动执行:
1. Predictor-only 在 MovieGen 第 101–200 条验证集上评测 FPPF、FPPP;
2. Joint 在相同验证集上评测新 Full 的 FFFF、FPPF、FPPP;
3. 所有推理 case 使用随机种子 0;
4. 计算 VBench 六指标和相对各自 FFFF 的 PSNR、SSIM、LPIPS;
5. 将 NVMe 训练产物同步到项目 `checkpoints/` 目录。