World-in-World
使用 WorldFoundry 仓内运行器归一化 World-in-World closed-loop utility metrics。
评测什么
World-in-World 用闭环具身效用评测 visual world model,而不是 open-loop 视频外观。具身环境中的 task success 是主信号——高视觉质量不等于高任务成功率。
Benchmark 设计
| 任务 | 主指标 | 测试内容 |
|---|---|---|
| Active Recognition (AR) | active_recognition_success_rate | 探索场景并识别目标物体 |
| Image-Goal Navigation (IGNav) | image_goal_navigation_success_rate、image_goal_navigation_spl | 到达图像指定目标并兼顾路径效率 |
| Active Embodied QA (AEQA) | active_embodied_qa_score、active_embodied_qa_spl | 在导航过程中高效回答问题 |
| Robotic Manipulation | robotic_manipulation_success_rate | 闭环操作任务成功率 |
平台提供统一 online planning 策略和标准化 action API。官方项目的关键发现:controllability 比画面质量更重要;action-observation post-training scaling 比升级预训练生成器更有效;更多 inference-time rollout 能提升闭环表现。
简介
World-in-World 评测 visual world model 的闭环具身效用,而不只看 open-loop 视频外观。任务族包括 Active Recognition、Image-Goal Navigation、Active Embodied QA 和 Robotic Manipulation。
WorldFoundry 已经把 benchmark adapter 和 metric aggregation code 放在仓内:
worldfoundry/evaluation/tasks/execution/runners/world_in_world/run_world_in_world_official_runner.py
worldfoundry/evaluation/tasks/execution/runners/world_in_world/world_in_world_runtime.py
worldfoundry/evaluation/tasks/execution/runners/world_in_world/world_in_world_official_runtime.py
worldfoundry/evaluation/tasks/execution/runners/world_in_world/world_in_world_metrics.py
worldfoundry/evaluation/tasks/execution/runners/world_in_world/runtime/official
worldfoundry/data/benchmarks/assets/world-in-world正常使用 WorldFoundry 评测时,用户不应该 clone official repos。上游 World-in-World README 是生成 rollout 和 task summary 的协议参考。WorldFoundry 当前消费这些 summary 并写出 normalized scorecard;它不会启动 Habitat、VLM、SAM2、world-model 或 manipulation servers。
协议参考:
- Paper: World-in-World: World Models in a Closed-Loop World
- Project page: world-in-world.github.io
- Source reference: github.com/World-In-World/world-in-world
- Dataset page: zonszer/WIW_datasets
准备数据和资产
从 WorldFoundry 仓库根目录开始:
cd /path/to/WorldFoundry
export WORLDFOUNDRY_REPO_ROOT="$PWD"
export PYTHONPATH="$WORLDFOUNDRY_REPO_ROOT:${PYTHONPATH:-}"WorldFoundry 为默认 AEQA 路径内置了 OpenEQA prompt assets:
worldfoundry/data/benchmarks/assets/world-in-world/
subtrees/open-eqa/data/open-eqa-184.json
subtrees/open-eqa/data/open-eqa-41.json
sample_results.csv如果需要更完整的 AR、IGNav、AEQA 或 manipulation evidence,准备一个本地 asset root。runner 可以通过 WORLDFOUNDRY_WORLD_IN_WORLD_ASSETS_ROOT 读取 task manifests:
export WORLDFOUNDRY_WORLD_IN_WORLD_ASSETS_ROOT=/path/to/world-in-world/assets
hf download zonszer/WIW_datasets \
eval_datasets/AR/episodes_AR.json.gz \
eval_datasets/IGNav/episodes_IGNav.json.gz \
eval_datasets/IGNav/igdataset_goal_imgs.zip \
eval_datasets/AEQA/episodes_AEQA.json.gz \
--repo-type dataset \
--local-dir "${WORLDFOUNDRY_WORLD_IN_WORLD_ASSETS_ROOT}/data/WIW_datasets"如果使用上游 rollout workflow 生成 summary,还需要准备该 workflow 依赖的 scene 和 policy assets:
${WORLDFOUNDRY_WORLD_IN_WORLD_ASSETS_ROOT}/data/scene_datasets/hm3d/val/
${WORLDFOUNDRY_WORLD_IN_WORLD_ASSETS_ROOT}/data/scene_datasets/mp3d/
AR 和 AEQA 使用时需要的 SAM2 或 Grounding SAM2 weights
VLM policy checkpoints 或 hosted VLM credentials
rollout server 使用的 world-model checkpoints
使用 manipulation 时需要的 simulator assets 以及 3D-Diffuser/OpenPI checkpoints设置生成产物和结果 summary:
export WORLDFOUNDRY_GENERATED_ARTIFACT_DIR=/path/to/world-in-world/generated_artifacts
export WORLDFOUNDRY_WORLD_IN_WORLD_RESULTS_PATH="${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}/world_in_world_metrics.json"
export WORLDFOUNDRY_WORLD_IN_WORLD_TASK=AEQA生成产物目录应包含 metrics.json 或 world_in_world_metrics.json。可选视频用于 prompt coverage checks,文件名应使用 prompt id:
/path/to/world-in-world/generated_artifacts/
world_in_world_metrics.json
f2e82760-5c3c-41b1-88b6-85921b9e7b32.mp4
traces/
f2e82760-5c3c-41b1-88b6-85921b9e7b32.json结果 summary 可以是带直接 metric ID 或 task summary 的 JSON object,也可以是包含 metric_id,score columns 的 CSV。对于 task summary,runner 会把 accuracy 映射到 Active Recognition,把 sr 和 spl 映射到 IGNav,把 mean_score 和 mean_efficiency 映射到 AEQA,把 success_rate 映射到 Manipulation。
运行命令
直接仓内 runner 会读取 generated artifact directory 下的 metrics:
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/world_in_world/run_world_in_world_official_runner.py \
--run-official \
--generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
--task "${WORLDFOUNDRY_WORLD_IN_WORLD_TASK}" \
--output-dir tmp/world-in-world/direct-official-run \
--json通过直接 runner 导入显式结果文件:
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/world_in_world/run_world_in_world_official_runner.py \
--official-results-path /path/to/world_in_world_metrics.json \
--generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
--task "${WORLDFOUNDRY_WORLD_IN_WORLD_TASK}" \
--output-dir tmp/world-in-world/direct-official-validation \
--json使用公开 CLI 的 in-tree run path:
worldfoundry-eval zoo benchmark-run \
--benchmark-id world-in-world \
--mode official-run \
--generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
--output-dir tmp/world-in-world/official-run \
--json使用公开 CLI 导入已有 result summary:
worldfoundry-eval zoo benchmark-run \
--benchmark-id world-in-world \
--mode official-validation \
--official-results-path /path/to/world_in_world_metrics.json \
--generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
--output-dir tmp/world-in-world/official-validation \
--json指标
World-in-World 主要指标都是越高越好。rate 和 normalized score 在 WorldFoundry 中按 0 到 1 报告。
| Metric ID | 含义 |
|---|---|
active_recognition_success_rate | 探索场景并识别目标物体的成功率。 |
image_goal_navigation_success_rate | IGNav episode 到达图像指定目标的比例。 |
image_goal_navigation_spl | 按路径效率加权的 IGNav 成功率。 |
active_embodied_qa_score | active embodied QA 的平均回答正确率。 |
active_embodied_qa_spl | 按路径效率加权的 active embodied QA 分数。 |
robotic_manipulation_success_rate | 从提供的结果 summary 读取的 manipulation task 成功率。 |
interaction_trace_consistency | 提供该信息时,预测交互轨迹与执行轨迹的一致性。 |
world_in_world_average | 可用 utility metrics 的平均值,也是 WorldFoundry primary score。 |
如果 summary 中包含 FVD、SSIM、PSNR、LPIPS 等 video-quality values,仓内 parser 可以把它们放入 component metadata,但它们不属于上表的 primary metric order。
输出布局
直接 --run-official 会写出:
tmp/world-in-world/direct-official-run/
scorecard.json
raw_metric_table.jsonl
world_in_world_metrics.json直接显式结果导入会写出:
tmp/world-in-world/direct-official-validation/
scorecard.json
raw_metric_table.jsonl公开 CLI 运行还会在指定输出目录下写出 runner_runtime_report.json 和 specialized runner stdout/stderr logs。稳定消费时以 scorecard.json 和 raw_metric_table.jsonl 为准。
Runtime 说明
World-in-World worker 启动配置由环境变量驱动,不包含机器本地 conda 路径。
worker command 默认使用当前 Python 解释器和仓内相对脚本。使用
WORLDFOUNDRY_WORLD_IN_WORLD_<WORKER>_CMD 覆盖整个命令,或用
WORLDFOUNDRY_WORLD_IN_WORLD_<WORKER>_PYTHON 只覆盖解释器。Checkpoint 变量使用
同一前缀,例如 WORLDFOUNDRY_WORLD_IN_WORLD_SAM2_WORKER_CKPT_PATH、
WORLDFOUNDRY_WORLD_IN_WORLD_SAM2_WORKER_CFG_PATH、
WORLDFOUNDRY_WORLD_IN_WORLD_FTWAN21_WORKER_LORA_PATH 和
WORLDFOUNDRY_WORLD_IN_WORLD_NWM_WORKER_CKPT_PATH。
限制
- 当前 WorldFoundry runner 是 result-summary adapter。它不会启动 closed-loop rollout servers、VLM policy servers、SAM2 services、Habitat-sim 或 manipulation simulation。
- 仓内只 bundled AEQA OpenEQA prompt lists。需要 AR、IGNav episode files、scene datasets 和 manipulation assets 时必须在本地准备。
- leaderboard parity 需要 AR、IGNav、AEQA、Manipulation 的完整官方 task summaries,以及匹配的 generated videos 或 rollout artifacts。
- 上游 workflow 的 AEQA scoring 可能依赖 LLM judge credential。这里的 WorldFoundry 命令导入已完成的 score summary,而不是调用该 judge。
interaction_trace_consistency只有在提供的 result summary 包含 trace-consistency evidence 或直接 metric value 时才会报告。