WBench:给交互式视频世界模型做多轮体检

2026-07-02 38 预计阅读时间: 1 分钟
来源: tech.meituan.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:10 分钟

世界模型正在从“看视频、续视频”走向“理解动作、响应动作、保持世界一致”。美团 LongCat 团队提出并开源的 WBench,把评测目标对准了这个更难的问题:交互式视频世界模型在多轮交互里到底哪里掉链子。它不像只看单段生成质量的打分表,更像一台“CT 扫描仪”,把模型从被动观看到主动交互的能力拆开检查。

为什么多轮交互比单次生成更难

普通视频生成评测通常关心一段视频是否清晰、是否符合文本、动作是否自然。但交互式世界模型要面对的是连续决策:用户给一个动作,模型生成后续状态;下一轮动作又要建立在上一轮生成的世界上。

这会引入几个更棘手的问题:

  • 状态记忆:上一轮出现的物体、空间布局、角色位置,下一轮不能突然消失或漂移。
  • 动作因果:输入动作应该改变世界,而不是只改变画面风格。
  • 长程一致性:多轮之后,场景仍要像同一个世界,而不是一段段拼接的视频。
  • 可诊断性:模型失败时,开发者需要知道是动作理解错了、物理延续断了,还是视觉质量崩了。

WBench 的价值就在这里。根据来源摘要,它是首个面向交互式视频世界模型的系统性多轮评测基准,重点不是给一个漂亮总分,而是定位模型从“被动观看”迈向“主动交互”时的边界。

“CT 扫描仪”式评测意味着什么

如果只看最终视频,人很容易把问题混在一起:画面糊、动作不对、时序乱、对象变形,最后都变成一句“效果不好”。对研发来说,这种反馈不够用。

更有用的评测应该把一次交互拆成轨迹:

  1. 初始场景是什么。
  2. 第 1 轮用户动作是什么。
  3. 模型生成了什么结果。
  4. 第 2 轮动作是否基于上一轮状态继续生效。
  5. 多轮之后,世界是否仍然保持可解释的连续性。

这类评测会逼着模型暴露真实短板。一个模型可能擅长生成“月球漫步”这种单段视觉效果,却在多轮动作后丢失地形和人物位置;也可能能渲染“赛博都市”的复杂视觉,但无法让用户输入的转向、靠近、拾取等动作稳定改变场景。

WBench 把焦点放在交互式视频世界模型上,说明行业正在从“生成看起来像真的视频”推进到“生成一个能被操作的动态世界”。这一步对游戏、机器人仿真、具身智能和交互内容生产都更关键。

可以这样实践:搭一个最小多轮评测骨架

下面的例子不是 WBench 官方接口,假设你已经能把某个世界模型的多轮输出导出成 JSONL。它演示如何用一个可改造的小脚本检查多轮轨迹,并为后续接入 WBench 或内部评测打底。

运行前需要改的地方:把 predictionsreferences 换成你自己的视频帧目录或视频文件路径;这里为了可复制运行,用文本文件模拟每一轮输出。

mkdir -p wbench_demo
cd wbench_demo

cat > sample.jsonl <<'EOF'
{"case_id":"moon_walk_001","prompt":"astronaut walking on the moon","turns":[{"action":"walk forward"},{"action":"turn left"},{"action":"pick up a rock"}],"predictions":["pred_t1.txt","pred_t2.txt","pred_t3.txt"],"references":["ref_t1.txt","ref_t2.txt","ref_t3.txt"]}
EOF

cat > pred_t1.txt <<'EOF'
astronaut moves forward on moon surface, crater remains on right
EOF
cat > pred_t2.txt <<'EOF'
astronaut turns left, crater remains on right, earth visible in sky
EOF
cat > pred_t3.txt <<'EOF'
astronaut picks up a rock, crater remains on right, earth visible in sky
EOF

cat > ref_t1.txt <<'EOF'
astronaut moves forward on moon surface, crater remains on right
EOF
cat > ref_t2.txt <<'EOF'
astronaut turns left, crater remains on right, earth visible in sky
EOF
cat > ref_t3.txt <<'EOF'
astronaut picks up a rock, crater remains on right, earth visible in sky
EOF

cat > eval_multiturn.py <<'PY'
import json
from difflib import SequenceMatcher
from pathlib import Path


def similarity(a: str, b: str) -> float:
    return SequenceMatcher(None, a, b).ratio()


def load_text(path: str) -> str:
    return Path(path).read_text(encoding='utf-8').strip().lower()


def evaluate_case(case: dict) -> dict:
    turn_scores = []
    previous_pred = ''

    for idx, (pred_path, ref_path) in enumerate(zip(case['predictions'], case['references']), start=1):
        pred = load_text(pred_path)
        ref = load_text(ref_path)
        ref_match = similarity(pred, ref)

        # 一个很粗的连续性检查:上一轮的关键词是否仍保留。
        # 真实视频评测可替换为对象检测、CLIP/视频嵌入、轨迹跟踪或人工标注指标。
        continuity = 1.0 if not previous_pred else similarity(pred, previous_pred)

        turn_scores.append({
            'turn': idx,
            'action': case['turns'][idx - 1]['action'],
            'reference_match': round(ref_match, 3),
            'continuity': round(continuity, 3),
        })
        previous_pred = pred

    avg_ref = sum(t['reference_match'] for t in turn_scores) / len(turn_scores)
    avg_continuity = sum(t['continuity'] for t in turn_scores) / len(turn_scores)
    return {
        'case_id': case['case_id'],
        'avg_reference_match': round(avg_ref, 3),
        'avg_continuity': round(avg_continuity, 3),
        'turn_scores': turn_scores,
    }


with open('sample.jsonl', encoding='utf-8') as f:
    for line in f:
        result = evaluate_case(json.loads(line))
        print(json.dumps(result, ensure_ascii=False, indent=2))
PY

python eval_multiturn.py

这段脚本刻意简单,但结构是有用的:它把评测单位从“一个视频”改成“一个 case 的多轮轨迹”。真实项目里可以把 similarity() 替换成视频质量模型、动作识别模型、对象一致性检查或人工评分聚合。关键不是这个 toy metric 本身,而是把数据结构设计成能记录每一轮动作、输出和连续性。

接入这类基准时要看哪些风险

WBench 这类多轮评测会让问题更透明,但也会带来工程上的取舍。

评测成本会升高。多轮视频生成比单段生成更耗时,评测集越系统,推理和存储成本越明显。团队需要先选代表性任务,而不是一开始就把所有场景塞进去。

指标解释要谨慎。世界模型的“好”不只等于画面质量,动作服从、物体持久性、空间一致性都可能互相拉扯。一个总分适合看趋势,但定位问题时必须回到分项和样例。

数据格式要提前统一。每轮动作、初始条件、模型输出、参考答案、人工标注都应该有稳定 schema。否则后面接入新模型、新指标时,会把大量时间浪费在转换脚本上。

采用建议:先把评测变成研发循环

如果你正在做交互式视频世界模型,可以按这个顺序落地:

  • 先选 20 到 50 个高价值多轮场景,覆盖移动、转向、交互、遮挡、物体保持等常见失败点。
  • 为每个 case 固定动作序列,保存每轮输出,避免只看最终视频。
  • 把评测结果按轮次展开,优先定位“第几轮开始崩”。
  • 总分只用于版本比较,模型调试时重点看分项和失败样例。
  • 保留人工复核入口,尤其是复杂物理和语义交互场景。

WBench 的信号很明确:交互式视频世界模型不能再只靠单段样片证明能力。能被连续操作、能保持世界状态、能解释失败位置,才是下一阶段评测该盯住的东西。


相关推荐