| # 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/` 目录。 |
|
|