视频生成模型也能当“打分老师”?一文看懂 PRFL 如何把 14B 模型塞进 67 GB 显存

把“生成”与“评估”合二为一,让 720 P×81 帧全帧训练提速 1.4 倍,运动质量提升 56 %——全部在潜空间里完成,无需 VAE 解码。


1. 为什么要给视频生成模型请一位“打分老师”?

1.1 用户真正在搜什么?

  • “为什么 AI 视频动作不自然?”
  • “如何让生成视频更符合物理规律?”
  • “显存不够,还能做高质量视频微调吗?”

1.2 传统方法卡在哪?

  1. 结果导向奖励:只能在几乎去噪完成的 RGB 帧上打分,错过早期运动规划阶段。
  2. 显存黑洞:VAE 解码 81 帧 720 P 数据再送进视觉-语言模型,动辄 OOM(显存溢出)。
  3. 训练慢:每步都要等 40 步去噪 + 解码,GPU 空转时间长。

2. PRFL 是什么?一句话看懂

Process Reward Feedback Learning(PRFL) 把“打分”搬进潜空间,用视频生成模型本身当奖励模型,随机在中间任意一步(t=0~1)给视频“判分”,并立刻把梯度回传给生成模型,全程跳过 VAE 解码


3. 核心思路:把“生成器”改造成“评估器”

步骤 传统 RGB ReFL PRFL 潜空间方案
输入 干净 RGB 帧 任意 t 的噪声潜码
奖励模型 额外 VLM 自己的生成模型前 8 层
解码 必需 VAE 不需要
监督阶段 仅最后一步 任意中间步
显存 81 帧 RGB 爆显存 潜空间 67 GB 足够

4. 两大模块拆解:PAVRM + PRFL

4.1 PAVRM:如何把生成器变“老师”

  1. 冻结 VAE 与文本编码器,只取前 8 个 DiT 块抽取时空特征。
  2. 可学习 Query-Attention 把变长视频压成 1 个 5120 维向量,避免帧数不同带来的维度爆炸。
  3. 3 层 MLP 输出 0~1 的质量分,用二分类交叉熵训练。

4.2 PRFL:如何用“老师”教“学生”

  1. 随机采样中间 timestep t∈[0,1)
  2. 先做无梯度 rollout 到 t+Δt,再执行一步带梯度去噪。
  3. 用 PAVRM 给这一步的潜码打分,最大化分数。
  4. 每迭代一次,与常规监督微调(SFT)交替,防止模型“走火入魔”。

5. 实验结果:数字说话

场景 指标 预训练基线 PRFL 提升
T2V 720 P 动态度 25.00 81.00 +56
T2V 720 P 人体解剖 68.88 90.40 +21.52
I2V 480 P 动态度 57.00 87.00 +30
显存占用 峰值 OOM(81 帧) 67 GB 可用
训练速度 单步 72.4 s 51.1 s 1.42×

注:动态度衡量画面运动丰富程度;人体解剖衡量头、手、躯干是否畸形。


6. 训练与推理全流程:照抄即可跑

6.1 硬件与软件

  • GPU:≥80 GB 显存(A100/H800)
  • CUDA:12.4
  • 系统:Linux

6.2 一键安装

git clone https://github.com/Tencent-Hunyuan/HY-Video-PRFL.git
cd HY-Video-PRFL
conda create -n HY-Video-PRFL python==3.10
conda activate HY-Video-PRFL
pip3 install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu121
pip3 install -e .
export PYTHONPATH=./

6.3 下载预训练权重

pip install -U "huggingface_hub[cli]"
hf download Wan-AI/Wan2.1-I2V-14B-720P --local-dir ./weights/Wan2.1-I2V-14B-720P

6.4 数据预处理(单 GPU)

python3 scripts/preprocess/gen_wanx_latent.py --config configs/pre_720.yaml

把自己的视频路径写进 json_path,脚本会输出潜码到 save_dir

6.5 标注格式

在对应 meta_*.json 里增加两行:

{"physics_quality": 1, "human_quality": 1}

0=不合格,1=合格。生成 temp_data_720.list 后即可进入训练。

6.6 多卡训练 PAVRM(8×A100 示例)

torchrun --nnodes=1 --nproc_per_node=8 --master_port 29500 \
  scripts/pavrm/train_pavrm.py \
  --config configs/train_pavrm_i2v_720.yaml

6.7 多卡训练 PRFL

torchrun --nnodes=1 --nproc_per_node=8 --master_port 29500 \
  scripts/prfl/train_prfl.py \
  --config configs/train_prfl_i2v_720.yaml

6.8 推理:生成新视频

torchrun --nnodes=1 --nproc_per_node=8 --master_port 29500 \
  scripts/prfl/inference_prfl.py \
  --dit_fsdp --t5_fsdp --task "i2v-14B" \
  --ckpt_dir "weights/Wan2.1-I2V-14B-720P" \
  --transformer_path <你的PRFL检查点> \
  --size "1280*720" --frame_num 81 --sample_steps 40 \
  --save_folder outputs/prfl_i2v_720

7. FAQ:你最可能问的问题

Q1:没有 80 GB 显存能玩吗?
→ 官方实验用 8×A100 81 帧全帧训练;如果只有 40 GB,可把 frame_num 降到 41 或 21,仍比 RGB 方案省显存。

Q2:只能用 Wan2.1 吗?
→ 论文里验证了 HunyuanVideo、Veo3 的零样本迁移,早期层特征通用,但越“干净”的帧越依赖模型指纹,建议同一系列内使用。

Q3:可以评估非人像视频吗?
→ PAVRM 目前用“物理合理性 + 主体畸形”两维标注,对人像最敏感;评估风景或抽象动画需重新标注训练。

Q4:训练数据要多少?
→ 作者用 2.4 万对(真实 + 生成)即可让 14 B 模型明显提升,数据量小也能起步。

Q5:为什么只微调前 8 层 DiT?
→ 实验显示 16 层略好,但 8 层性价比最高;再往上反而过拟合高频纹理,对“运动质量”没帮助。


8. 局限与下一步

  1. 只聚焦运动质量:尚未覆盖美学、镜头语言等维度。
  2. 单奖励模型:未来可做多头奖励(美学、文本一致性、物理)。
  3. 编辑/可控生成:目前只做后期微调,未与 ControlNet、LoRA 结合。

9. 一句话总结

PRFL 把“生成”和“评估”合二为一,在潜空间里完成全流程,让 14 B 视频模型在 67 GB 显存内全帧训练提速 1.4 倍,运动质量提升 56 %。如果你受够了 RGB 奖励的显存黑洞,不妨把打分器搬进潜空间,让模型自己教自己。


引用
Mi, X., Yu, W., Lian, J. et al. Video Generation Models are Good Latent Reward Models. arXiv 2511.21541, 2025.