VideoScore
基于人类反馈训练的视频 reward metric,包含仓内 runtime、frame-tree 要求、datasets 和运行命令。
本页内容
简介
VideoScore 是 EMNLP 2024 的自动视频评测模型,用来模拟视频生成的人类细粒度反馈。它基于 VideoFeedback 训练;VideoFeedback 包含 11 个视频生成模型的 37.6K 个生成视频,并带有多方面人类评分。
WorldFoundry 已经把 VideoScore inference 和 benchmark evaluation runtime 集成在 worldfoundry/evaluation/tasks/execution/runners/videoscore。官方 repo 只作为 protocol 参考;WorldFoundry 运行仓内 VideoScore runtime,并从本地资产或 Hugging Face 加载数据和 checkpoint。
官方参考:
- Project page: tiger-ai-lab.github.io/VideoScore
- Paper: arXiv:2406.15252
- Dataset: TIGER-Lab/VideoFeedback
- Benchmark dataset: TIGER-Lab/VideoScore-Bench
- Model: TIGER-Lab/VideoScore-v1.1
- 仓内 runner:
worldfoundry/evaluation/tasks/execution/runners/videoscore/run_videoscore_official_runner.py
评测协议
VideoScore 输出五个 1-4 分 aspect scores:
| Metric | 含义 |
|---|---|
visual_quality | 整体视觉质量、保真度和 artifact 程度。 |
temporal_consistency | 时序稳定性和帧间一致性。 |
dynamic_degree | 运动幅度和运动质量。 |
text_to_video_alignment | prompt 和生成视频之间的对齐。 |
factual_consistency | 生成内容是否和描述场景在事实上一致。 |
videoscore_average | 五个 aspect scores 的平均值。 |
WorldFoundry 会把 1-4 原始分归一化到 0-1 写入 scorecard。
数据与 Frames 准备
VideoScore benchmark evaluation 消费的是抽帧目录,不是扁平 mp4 目录。你需要准备两种输入之一:
--frames-dir: 已经按官方eval_videoscore.py期望 layout 准备好的 frames 目录。--bench-data-root加--bounded-sample-count: WorldFoundry 从本地 benchmark dataset 中 materialize 少量 frames,用于小规模验证。
下载 benchmark data 和可选训练/证据数据:
export WORLDFOUNDRY_VIDEOSCORE_BENCH_ROOT=/path/to/datasets/VideoScore-Bench
export WORLDFOUNDRY_VIDEOFEEDBACK_DATASET_ROOT=/path/to/datasets/VideoFeedback
hf download TIGER-Lab/VideoScore-Bench \
--repo-type dataset \
--local-dir "${WORLDFOUNDRY_VIDEOSCORE_BENCH_ROOT}"
hf download TIGER-Lab/VideoFeedback \
--repo-type dataset \
--local-dir "${WORLDFOUNDRY_VIDEOFEEDBACK_DATASET_ROOT}"如果你自己准备完整 frame tree:
export WORLDFOUNDRY_VIDEOSCORE_FRAMES_DIR=/path/to/videoscore/frames--bench-name 选择 VideoScore-Bench 里的 split,默认是 video_feedback。
Checkpoint 准备
使用官方 VideoScore-v1.1 reward model 或本地 mirror:
export WORLDFOUNDRY_VIDEOSCORE_MODEL_REPO=/path/to/checkpoints/VideoScore-v1.1
hf download TIGER-Lab/VideoScore-v1.1 \
--local-dir "${WORLDFOUNDRY_VIDEOSCORE_MODEL_REPO}"如果不设置 WORLDFOUNDRY_VIDEOSCORE_MODEL_REPO,runner 会回退到 Hugging Face id TIGER-Lab/VideoScore-v1.1。
运行完整 Frame-Tree 评测
对准备好的 frame tree 运行 VideoScore:
cd /path/to/WorldFoundry
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/videoscore/run_videoscore_official_runner.py \
--model-repo-name "${WORLDFOUNDRY_VIDEOSCORE_MODEL_REPO:-TIGER-Lab/VideoScore-v1.1}" \
--bench-data-root "${WORLDFOUNDRY_VIDEOSCORE_BENCH_ROOT}" \
--bench-name "${WORLDFOUNDRY_VIDEOSCORE_BENCH_NAME:-video_feedback}" \
--frames-dir "${WORLDFOUNDRY_VIDEOSCORE_FRAMES_DIR}" \
--dataset-root "${WORLDFOUNDRY_VIDEOFEEDBACK_DATASET_ROOT}" \
--output-dir tmp/videoscore/official-run \
--timeout 7200 \
--json这条路径会调用仓内 benchmark/eval_videoscore.py,并把官方结果 JSON 写到 upstream/。
运行 Bounded Validation
如果只想用已下载 benchmark data 做一个小规模本地验证:
cd /path/to/WorldFoundry
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/videoscore/run_videoscore_official_runner.py \
--model-repo-name "${WORLDFOUNDRY_VIDEOSCORE_MODEL_REPO:-TIGER-Lab/VideoScore-v1.1}" \
--bench-data-root "${WORLDFOUNDRY_VIDEOSCORE_BENCH_ROOT}" \
--bench-name video_feedback \
--bounded-sample-count 8 \
--dataset-root "${WORLDFOUNDRY_VIDEOFEEDBACK_DATASET_ROOT}" \
--output-dir tmp/videoscore/bounded8 \
--jsonbounded 路径会为少量 benchmark rows materialize frames,并运行同一套 VideoScore normalization pipeline。benchmark-scale 结果请使用完整 frame-tree evaluation。
导入已有结果
导入已有官方兼容 VideoScore 结果 JSON:
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/videoscore/run_videoscore_official_runner.py \
--official-results-path /path/to/eval_video_feedback_videoscore.json \
--dataset-root "${WORLDFOUNDRY_VIDEOFEEDBACK_DATASET_ROOT}" \
--frames-dir "${WORLDFOUNDRY_VIDEOSCORE_FRAMES_DIR}" \
--output-dir tmp/videoscore/imported \
--jsonTraining
官方 VideoScore 论文使用 Mantis training stack 和 VideoFeedback 训练 reward model。WorldFoundry 集成的是 benchmark 复现需要的 inference/evaluation runtime。若要复现 VideoScore model training,请按官方 training protocol 训练,然后通过 --model-repo-name 传入训练后的模型目录。
输出文件
每次运行会写出:
scorecard.json: 归一化 aspect scores 和videoscore_average。raw_metric_table.jsonl: scorecard 使用的 metric rows。per_sample_scores.jsonl: 如果可用,会记录逐样本 scores。generated_video_manifest.json: 被评估 artifact 的 frame/video manifest。dataset_manifest.json: 发现的 dataset metadata。upstream/eval_<bench_name>_videoscore.json: 原始官方结果 JSON。upstream_stdout.log和upstream_stderr.log: runtime logs。
Leaderboard 说明
VideoScore 主要是 reward-model / 自动评测指标,而不是 prompt-suite 生成 leaderboard。论文报告的关键验证结果:
| Setting | 与人类的 Spearman 相关 |
|---|---|
| VideoFeedback-test | 77.1% |
| 先前最佳自动指标 | 平均约低 27% |
VideoScore-Bench 聚合约 7,000 个视频,来源包括 VideoFeedback、EvalCrafter、GenAI-Bench 和 VBench split。官方 bench config 包括 video_feedback、eval_crafter、genaibench、vbench。
WorldFoundry 会把五个 1–4 aspect 分数归一化到 0–1,并报告 videoscore_average。benchmark 级证据请使用完整 frame-tree 评测;bounded sample 路径只用于本地验证。
已知限制
- 评测消费的是抽帧目录,而不是原始 mp4 文件夹。你需要提供
--frames-dir,或让 WorldFoundry 从VideoScore-Bench物化 bounded frames。 - 完整 SPCC/pairwise leaderboard 协议仍需要所选 bench split 的完整上游 generated-frame trees。
- WorldFoundry 目前只有 1 个
video_feedback样本的 bounded official GPU 证据;那是 integration evidence,不是 leaderboard 提交。 - Reward model 默认使用 TIGER-Lab/VideoScore-v1.1;训练复现需要单独的 Mantis training stack 和 VideoFeedback 标注。