PhysVidBench

已接入

PhysVidBench 在 WorldFoundry 中的资产、runner、指标与限制。

本页内容

官方参考

资源链接
项目页cyberiada.github.io/PhysVidBench
论文arXiv:2507.15824
GitHubgithub.com/ensanli/PhysVidBenchCode
HF 数据集Anonymousny/PhysVidBench
仓内 runnerworldfoundry/evaluation/tasks/execution/runners/physvidbench/run_physvidbench_official_runner.py

简介

PhysVidBench 评估日常 text-to-video 场景中的物理常识。本地源 README 描述了三步流程:根据 prompt 生成视频、为每个视频提取八条 AuroraCap caption track、再用 Gemini 基于这些 caption 回答物理常识问题。

WorldFoundry 已经在 worldfoundry/evaluation/tasks/execution/runners/physvidbench 中包含可运行的 PhysVidBench runner。运行 WorldFoundry 时不要克隆上游代码仓库。完整 prompt/question 数据可以下载 Hugging Face dataset Anonymousny/PhysVidBench;代码执行仍应走仓内 runner。

准备资产

  • Prompt/question CSV:仓内 fixture 位于 worldfoundry/data/benchmarks/assets/physvidbench/prompts_questions.csv;可用 WORLDFOUNDRY_PHYSVIDBENCH_PROMPT_MANIFEST--prompt-manifest 覆盖。
  • Caption tracks:八个文本文件,base name 为 cogvideo2b,suffix 分别为 _FP_OP_SR_TD_AU_MT_FM 和无 suffix。可用 WORLDFOUNDRY_PHYSVIDBENCH_CAPTIONS_DIRWORLDFOUNDRY_PHYSVIDBENCH_CAPTION_BASE--captions-dir--caption-base 覆盖。
  • 完整数据:超出仓内 fixture 时,使用 HF dataset Anonymousny/PhysVidBench 或你自己物化的 prompt/question CSV。
  • 候选视频:将 WORLDFOUNDRY_GENERATED_ARTIFACT_DIR 指向生成视频。
  • Gemini judge:设置 GEMINI_API_KEYGOOGLE_API_KEYWORLDFOUNDRY_PHYSVIDBENCH_GEMINI_API_KEY,并安装 google-genai。本地 fixture 检查可设置 WORLDFOUNDRY_PHYSVIDBENCH_JUDGE_BACKEND=mock

生成产物布局

PhysVidBench prompt ID 是数字。生成视频应为 zero-padded 扁平文件:

generated_videos/
  0000.mp4
  0001.mp4
  ...

覆盖率检查会去掉数字文件名开头的零,因此 0.mp40000.mp4 都映射到 prompt ID 0。Caption 文件按 PromptID 行号索引,所以每条 caption track 都必须包含足够行数。

用 WorldFoundry 运行

通过公开 CLI 导入已有 PhysVidBench QA 结果 CSV:

worldfoundry-eval zoo benchmark-run \
  --benchmark-id physvidbench \
  --mode official-validation \
  --official-results-path /path/to/output.csv \
  --generated-artifact-dir /path/to/generated_videos \
  --output-dir tmp/physvidbench/validation \
  --json

通过公开 CLI 运行仓内 Gemini QA 路径:

export WORLDFOUNDRY_GENERATED_ARTIFACT_DIR=/path/to/generated_videos
export GEMINI_API_KEY=...

worldfoundry-eval zoo benchmark-run \
  --benchmark-id physvidbench \
  --mode official-run \
  --generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
  --output-dir tmp/physvidbench/run \
  --json

直接调用仓内 runner:

export WORLDFOUNDRY_GENERATED_ARTIFACT_DIR=/path/to/generated_videos
export WORLDFOUNDRY_BENCHMARK_OUTPUT_DIR=tmp/physvidbench/direct
export GEMINI_API_KEY=...

PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  worldfoundry/evaluation/tasks/execution/runners/physvidbench/run_physvidbench_official_runner.py \
  --run-official \
  --generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
  --output-dir "${WORLDFOUNDRY_BENCHMARK_OUTPUT_DIR}" \
  --json

直接导入结果:

PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  worldfoundry/evaluation/tasks/execution/runners/physvidbench/run_physvidbench_official_runner.py \
  --official-results-path /path/to/output.csv \
  --generated-artifact-dir /path/to/generated_videos \
  --output-dir tmp/physvidbench/direct-validation \
  --json

无 Gemini 的本地小规模 fixture 路径:

WORLDFOUNDRY_PHYSVIDBENCH_JUDGE_BACKEND=mock \
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  worldfoundry/evaluation/tasks/execution/runners/physvidbench/run_physvidbench_official_runner.py \
  --run-official \
  --generated-artifact-dir /path/to/generated_videos \
  --output-dir tmp/physvidbench/mock \
  --json

指标

Metric ID含义
physical_commonsense_accuracy所有 yes/no QA 的总体准确率。
affordance_understandingObject Properties & Affordances 问题准确率。
tool_use_consistencyAction & Procedural Understanding 问题准确率。
material_property_consistencyMaterial Interaction & Transformation 问题准确率。
temporal_dynamics_consistencyTemporal Dynamics 问题准确率。
physvidbench_averageWorldFoundry 主指标。优先取可用类别准确率均值;没有类别 bucket 时使用总体准确率。

所有指标都是越高越好,并以 0..1 accuracy 输出。

输出

输出目录包含:

  • scorecard.json:运行状态、指标、prompt/video 覆盖率、QA backend 与 leaderboard 有效性标记。
  • output.csv:仓内 QA 路径写出,字段包括 PromptIDQuestionTypesModel_AnswerMatch
  • raw_metric_table.jsonl:每个声明指标一行。
  • per_sample_scores.jsonl:从 QA 结果复制出的 question-level 行。
  • 通过 worldfoundry-eval zoo benchmark-run 调用时,还会写出 specialized_normalizer_stdout.logspecialized_normalizer_stderr.log

限制

  • 当前 checkout 中打包的 prompt/caption 资产不是完整 383-prompt benchmark 包;它足够说明和验证接线。完整评测请使用 HF dataset 或显式覆盖文件。
  • 仓内 QA runner 消费 captions;它不会对视频运行 AuroraCap。你需要自行准备八条 caption track。
  • 默认非 mock backend 需要 Gemini API 权限和 google-genai
  • 完整 leaderboard parity 需要完整 prompt 覆盖、完整 caption tracks、生成视频与归一化 QA 输出。

返回 Benchmark Hub