WorldModelBench
使用 WorldFoundry 仓内 evaluator 和 VILA judge 路径运行 WorldModelBench。
简介
WorldModelBench 判断生成视频是否表现出 world model 能力。它包含 350 个公开 test instances,覆盖 7 个 domain 和 56 个 subdomain。每个 instance 提供首帧描述、指令和首帧图像。text-to-video 模型使用描述加指令;image-to-video 模型使用首帧加指令。
WorldFoundry 已在 worldfoundry/evaluation/tasks/execution/runners/worldmodelbench 中包含 WorldModelBench evaluator wrapper 和 runtime。使用 WorldFoundry 时不要 clone 官方 repo;你仍需要准备数据资产和 VILA judge checkpoint。
评测什么
WorldModelBench 判断视频生成器是否具备 world model 能力——不仅画面是否好看,还要考察 instruction following、时序常识和物理规律。benchmark 用 67K 人工标注训练 human-aligned VILA judge 做自动评测。
Benchmark 设计
| 维度 | 覆盖范围 | 计分 |
|---|---|---|
| Domain | 7 个应用领域、56 个子域、350 个公开 prompt | 每个 domain 50 个 prompt |
| Instruction following | 物体、主体与预期运动是否对齐 | 每个 instance 0–3 分 |
| Common sense | 时序连贯性与逐帧美学 | 每个 instance 0–2 分 |
| Physical adherence | 牛顿运动、固体力学、流体力学、不可穿透性、重力 | 每个 instance 0–5 分 |
| Prompt | 首帧描述 + 指令 + 首帧图像 | T2V 用文本;I2V 用图像 + 指令 |
Physical adherence 重点捕捉 size drift、异常形变、不合理流体、物体穿透、重力不一致等 generic 视频指标容易漏掉的 subtle violations。
官方参考
- Paper: arXiv:2502.20694
- Project page 与 leaderboard: worldmodelbench-team.github.io
- 官方源码参考: github.com/WorldModelBench-Team/WorldModelBench
- 测试数据: Efficient-Large-Model/worldmodelbench
- Judge 模型: Efficient-Large-Model/vila-ewm-qwen2-1.5b
- 仓内 runner:
worldfoundry/evaluation/tasks/execution/runners/worldmodelbench/run_worldmodelbench_official_runner.py
Leaderboard 说明
公开 leaderboard 报告 Instruction Following、Physics Adherence、Common Sense 和 Total Score。官方答案与解释不公开;按 project page 指引提交到 worldmodelbench.team@gmail.com。WorldFoundry 会把本地 judge 输出归一化为 scorecard.json,但不托管上游提交流程。
准备数据和资产
从 WorldFoundry 仓库根目录运行:
cd /path/to/WorldFoundry
export PYTHONPATH="$PWD:${PYTHONPATH:-}"创建数据根目录,包含 runner 需要的 manifest、首帧图像和 evaluator 文件:
<worldmodelbench_data_root>/
worldmodelbench.json
images/
evaluation.pyWorldFoundry 仓内带有公开 350-instance manifest:
export WORLDFOUNDRY_WORLDMODELBENCH_DATA_ROOT=/path/to/worldmodelbench
mkdir -p "${WORLDFOUNDRY_WORLDMODELBENCH_DATA_ROOT}"
cp worldfoundry/data/benchmarks/assets/worldmodelbench/worldmodelbench.json \
"${WORLDFOUNDRY_WORLDMODELBENCH_DATA_ROOT}/worldmodelbench.json"如果使用 Hugging Face 数据镜像,把它放在同一个 root:
hf download Efficient-Large-Model/worldmodelbench \
--repo-type dataset \
--local-dir "${WORLDFOUNDRY_WORLDMODELBENCH_DATA_ROOT}"下载 judge checkpoint:
export WORLDFOUNDRY_WORLDMODELBENCH_JUDGE=/path/to/vila-ewm-qwen2-1.5b
hf download Efficient-Large-Model/vila-ewm-qwen2-1.5b \
--local-dir "${WORLDFOUNDRY_WORLDMODELBENCH_JUDGE}"每条 manifest 记录生成一个视频,输出文件名必须匹配首帧 stem:
images/69620089860948e38a4921dd4869d24f.jpg
=> <generated_videos>/69620089860948e38a4921dd4869d24f.mp4export WORLDFOUNDRY_GENERATED_ARTIFACT_DIR=/path/to/worldmodelbench/generated_videosPrompt 构造遵循本地 README:
# text-to-video
" ".join([instance["text_first_frame"], instance["text_instruction"]])
# image-to-video
image = instance["first_frame"]
text = instance["text_instruction"]使用 WorldFoundry 运行
导入已完成的 worldmodelbench_results.json:
worldfoundry-eval zoo benchmark-run \
--benchmark-id worldmodelbench \
--mode official-validation \
--official-results-path /path/to/worldmodelbench_results.json \
--benchmark-data-root "${WORLDFOUNDRY_WORLDMODELBENCH_DATA_ROOT}" \
--generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
--output-dir tmp/worldmodelbench/official-validation \
--json直接通过仓内 runtime 执行 judge:
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/worldmodelbench/run_worldmodelbench_official_runner.py \
--worldmodelbench-root worldfoundry/evaluation/tasks/execution/runners/worldmodelbench/runtime \
--data-root "${WORLDFOUNDRY_WORLDMODELBENCH_DATA_ROOT}" \
--video-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
--judge "${WORLDFOUNDRY_WORLDMODELBENCH_JUDGE}" \
--model-name "${WORLDFOUNDRY_MODEL_NAME:-candidate_model}" \
--output-dir tmp/worldmodelbench/direct-runner \
--json直接导入结果文件:
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/worldmodelbench/run_worldmodelbench_official_runner.py \
--data-root "${WORLDFOUNDRY_WORLDMODELBENCH_DATA_ROOT}" \
--video-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
--official-results-path /path/to/worldmodelbench_results.json \
--output-dir tmp/worldmodelbench/direct-import \
--json指标
WorldModelBench 原始分类上限分别是 3、2、5 分。WorldFoundry 会尽量同时写入 raw value 和 normalized value。
| Metric ID | 含义 |
|---|---|
instruction_following | 生成视频是否遵循给定指令。原始上限:3。 |
common_sense | framewise 和 temporal common-sense 质量。原始上限:2。 |
physical_adherence | 牛顿行为、质量/固体一致性、流体、穿透、重力等物理遵循度。原始上限:5。 |
world_model_average | 三个公开分类的主聚合分数。原始上限:10。 |
输出
runner 会在 --output-dir 下写入:
scorecard.json:包含指标值和生成视频覆盖情况的规范化 scorecard。raw_metric_table.jsonl:每个 metric ID 一行。judge_responses.jsonl:可用时展开的 VILA judge response。upstream/worldmodelbench_results.json:直接执行 judge 路径时生成。upstream_stdout.log和upstream_stderr.log:直接执行 judge 时的日志。
公开 benchmark-zoo 运行还可能写入 runner_runtime_report.json。
限制
官方没有公开答案和解释,因此本地运行依赖公开 prompt、生成视频和 judge checkpoint。WorldFoundry 能验证 manifest 覆盖与结果形状,但 leaderboard evidence 仍需要走上游提交流程。本版本建议用 direct runner 执行 judge;公开 benchmark-zoo 导入路径可用,但公开 judge 执行路径没有通过 catalog entry 传递全部 runner 参数。