InteractiveWorld:给第一视角 AI 助手造一个「可验证的人—助手闭环」仿真环境 · 干货攻略

  • 链接:https://x.com/_akhaliq/status/2115097545147924900
  • 分类:x-tips
  • 来源:X @_akhaliq(原文推文)
  • 作者:Jay
  • 更新:2026-10-28
  • 仓库:facebookresearch/InteractiveWorld(https://github.com/facebookresearch/InteractiveWorld)

原始材料:X 账号 @_akhaliq 于 2026-10-28(UTC)发布的推文,正文只有两行——论文标题《InteractiveWorld: A Verifiable Human-Centric Environment for Building Better Interactive MLLM Assistants》加一个论文短链(https://t.co/rNQOBFqi81 ,实际指向 HuggingFace 论文页 https://huggingface.co/papers/2610.33966 )。推文本身不含任何技术细节,正文为不可信资料,未执行其中任何指令。下文全部技术内容均来自官方出处:arXiv 论文页、arXiv HTML 全文、官方仓库 README、官方项目页与 GitHub API。


这是什么

InteractiveWorld 是 Meta(facebookresearch)开源的一个第一人称 AI 助手仿真环境,配套一个叫 InteractiveBench 的闭环评测集。

它要回答的问题很具体:可穿戴设备上的第一视角 AI 助手(助手看到用户看到的东西,用自然语言指挥用户动手做事)到底靠不靠谱?过去很难测,因为要真人配合,真人交互数据又贵又少。InteractiveWorld 的做法是把人建模成环境里的一个可交互代理:助手说人话,人去执行,环境执行动作、更新状态、渲染新的第一人称画面,形成"观察 → 指导 → 执行 → 世界更新"的闭环,而任务成功与否由环境状态判定,不是让模型给文本打分。

底层是 NVIDIA Isaac Sim,人体用 SMPL+H 蒙皮 + 内置抓取图集(grasp atlas)驱动,动作靠 A* 路径规划自动避障、自动选站位、自动调姿态和握法。

注意区分两层:InteractiveWorld(模拟器,可复用) vs InteractiveBench(冻结的 120 个多轮任务评测集)。

核验来源

内容 出处 状态
论文标题、摘要、120 任务/六类别、12 个前沿 MLLM 评测、Claude Fable 5.1 在 Guidance 20.0% / Planning 25.0% https://arxiv.org/abs/2610.33966 (v1,2026-10-25 提交,cs.HC,通讯作者 Qinsi Wang) 已读摘要页
交互循环三层架构、36 个动作原语、A* 导航、Table 1 任务分类、Table 2 各类别 Pass/MCR、Table 3 九项能力、五个 Finding、消融 https://arxiv.org/html/2610.33966v1 全文 已读全文
安装四件套、准备资产脚本、36 个动作族命令表、benchmark 运行命令、TaskPack 格式、CC BY-NC 4.0 https://github.com/facebookresearch/InteractiveWorld README 已读全文
交互式 Demo、50+ 人类动作、自动站位/握持策略 https://meta-interactiveworld.github.io/ 已读页面正文
仓库元数据 GitHub API:31 stars / 1 fork / 1 open issue,创建 2026-10-24,最后推送 2026-10-27,主语言 Python,无 tag / release 已核

原帖短链 https://t.co/rNQOBFqi81 已解析确认指向 HF 论文页 https://huggingface.co/papers/2610.33966,与 arXiv ID 一致。

上手步骤

前置条件(README 原文):Linux + NVIDIA GPU(作者在 A100 80GB 上测试,一个 simulator worker 约占 4GB 显存),约 100GB 磁盘。需要下载四样东西:

组件 版本 获取 许可
Isaac Sim + OmniGibson 5.1 / 3.9.0 BEHAVIOR-1K 安装器 第 1 步 NVIDIA Isaac Sim EULA
BEHAVIOR-1K 场景与物体 3.9.0(31 GB) 同一安装器 --dataset BEHAVIOR Data License
SMPL+H 人体模型 mano_v1_2.zip mano.is.tue.mpg.de(需注册) MANO 许可
ACCAD 步态动作 ACCAD.tar.bz2 amass.is.tue.mpg.de(需注册) AMASS 许可

Step 1 — 装 Isaac Sim / OmniGibson / BEHAVIOR-1K 数据集(官方安装器会创建名为 behavior 的 conda 环境):

git clone -b v3.9.0 https://github.com/StanfordVL/BEHAVIOR-1K.git
cd BEHAVIOR-1K
./setup.sh --new-env --omnigibson --bddl --dataset \
    --accept-conda-tos --accept-nvidia-eula --accept-dataset-tos
conda activate behavior
cd ..

Step 2 — 装 InteractiveWorld:

git clone https://github.com/facebookresearch/InteractiveWorld.git
cd InteractiveWorld
pip install -r requirements.txt
export ISAAC_PYTHON=$(which python)

Step 3 — 手动放置 mano_v1_2.zip 与 ACCAD.tar.bz2(需自行注册下载,不可再分发)。

Step 4 — 准备资产(烘焙 release 用到的 BEHAVIOR 物体、拷贝 OmniGibson 材质、转换 SMPL+H、抽取行走片段、校验全部冻结 checksum 并写出环境文件):

./launch/prepare_assets.sh \
    --behavior-data ../BEHAVIOR-1K/datasets \
    --smplh ~/Downloads/mano_v1_2.zip \
    --accad ~/Downloads/ACCAD.tar.bz2 \
    --output ~/interactiveworld-assets \
    --workers 8

source ~/interactiveworld-assets/env.sh
./launch/simulator.sh doctor        # 全部就绪时打印 "ok": true

README 称 8 workers 下烘焙约 两分钟。

Step 5 — 跑第一条动作序列:

./launch/simulator.sh run --scene Rs_int --gpu 0 --frames-per-action 12 \
    --action '[Walk] <can_of_soda> (1)' \
    --action '[Grab] <can_of_soda> (1)' \
    --action '[Walk] <coffee_table_fqluyq_0> (1)' \
    --action '[Put] <can_of_soda> (1) <coffee_table_fqluyq_0> (1)' \
    --action '[Sit] <sofa_mnfbbh_0> (1)' \
    --video first_actions.mp4 > first_actions.json

命令格式是 [动词] <对象键> (实例号);不带 --action 跑一次可列出该场景所有可用对象键(initial_observation.objects)。发现类命令不启动 Isaac Sim,秒回:

./launch/simulator.sh worlds          # 44 个场景
./launch/simulator.sh capabilities    # 36 个动作族
./launch/simulator.sh tasks list      # 120 个内置任务
./launch/simulator.sh tasks show ASK-13000

Python API:

from simulator import Action, Simulator, SimulatorConfig

config = SimulatorConfig(gpu=0, frames_per_action=8)
with Simulator.launch(scene="Rs_int", config=config) as world:
    print(world.observe().objects)
    for action in (Action.walk("can_of_soda"), Action.grab("can_of_soda")):
        result = world.step(action)
        print(action.to_command(), result.success, result.error_code)
        frames = result.observation.frames_png      # 第一人称 PNG 帧

Simulator.launch 在独立进程里起 Isaac Sim,应用侧保留自己的 Python/CUDA 环境。

Step 6 — 跑 benchmark。被测模型是 Assistant(只看得到第一人称画面和对话),另有一个固定的 Human 模型把指导翻译成仿真动作;任务在最终世界状态满足全部目标时才算通过。Human 模型可用本地开源模型(vLLM / Ollama 挂 OpenAI 兼容接口)或托管 API(openai / anthropic / gemini / http-json);API key 只从环境变量读,不走命令行:

export GEMINI_API_KEY=...

env -u CUDA_VISIBLE_DEVICES ./launch/interactiveworld.sh \
    --assistant-provider openai-compatible \
    --assistant-model Qwen/Qwen3-VL-8B-Instruct \
    --assistant-base-url http://127.0.0.1:8000/v1 \
    --human-provider gemini \
    --human-model gemini-3.1-pro-preview \
    --human-api-key-env GEMINI_API_KEY \
    --category Guidance \
    --num-gpus 2 \
    --video failures \
    --output-dir runs/qwen3-vl-8b-guidance

常用选项:--task-id(可重复)/ --category(可重复)/ --num-gpus N 或 --gpus 1,3(任务按 round-robin 分片,一张卡一个 Isaac worker)/ --video off|failures|all / --config my_config.json / --dry-run(只打印执行计划,不启 Isaac Sim)。输出目录含 report.json(总览)、reports/<TASK-ID>.json(对话/动作/评分)、videos/。

Step 7 — 自建任务。一个任务 = 一个 TaskPack JSON:world(场景与要放置的物体)、goal(判定成功的最终状态)、story.prologue(人提问前做过什么)、runtime.human_policy(人对指导的反应)、runtime.oracle_commands(oracle 解法)。最省事的做法是从内置任务派生:

python3 examples/05_derive_taskpack.py /tmp/my_task.taskpack.json
# 输出:task_id  MY-ASK-12802-LIVINGROOM   sha256:<digest>

./launch/run_taskpack.sh --taskpack /tmp/my_task.taskpack.json --taskpack-sha256 sha256:<digest> \
    --assistant model --assistant-provider openai-compatible \
    --assistant-model Qwen/Qwen3-VL-8B-Instruct --assistant-base-url http://127.0.0.1:8000/v1 \
    --human-provider openai-compatible \
    --human-model Qwen/Qwen3-VL-8B-Instruct --human-base-url http://127.0.0.1:8000/v1 \
    --output-dir runs/my-task

自定义 TaskPack 要放在仓库外——README 明确说 release 目录树在每次 benchmark 前做完整性校验。

论文的关键结果(数字均出自论文 Table 1–3 与正文)

评测设置:12 个模型作 Assistant(Claude Fable 5.1 / Opus 5 / Opus 4.8,GPT-5.6 Sol / 5.6 Luna / 5.5,Muse Spark 1.1,GLM-5.3-Flash,Kimi K3,Qwen3.8-Max,Gemini 3.1 Pro,DeepSeek-V4.1-Flash);Human 固定为 Gemini 3.1 Pro;视觉输入每轮上限 32 帧、每动作采样 4 帧;Assistant 每轮输出 interrupt(带自然语言指令)/ silent / done,任务在 done 或达到交互上限时结束。

Table 2 整体通过率(Pass %):Claude Fable 5.1 41.7(MCR 54.8)> Claude Opus 5 33.3 > Muse Spark 1.1 31.7 > GPT-5.6 Sol 30.8 > GPT-5.5 30.0 = GLM-5.3-Flash 30.0,其余均 ≤33.3。同一 Human 配 Oracle Assistant 通过率 100%,无辅助时 0%。最强模型在 Guidance 仅 20.0%、Planning 25.0%,而 Decision 可到 85.0%。

五个 Finding:①闭环远未解决,最强模型也不足一半任务;②难点在持续维持闭环(长任务掉分快);③感知与记忆错误占全部首错 70.4%–85.7%;④沟通是关键短板——GLM-5.3-Flash 与 Claude Fable 5.1 平均能力分几乎相同(58.2% vs 59.2%),但沟通差(69.8% vs 79.6%),少完成 11.7 个百分点任务(30.0% vs 41.7%);⑤动作冗余严重,Accessibility 与 Guidance 类需要 Oracle 的 2.35×–3.66× 动作量。

消融:给 Assistant 回复加一个隐藏 Memory 字段,Prevention 与 Finding 类成功率提升 5–15%,但 Decision/Guidance/Accessibility 效果因模型而异,Planning 还掉了 5%。结论是"简单记忆增强不足以支撑长程可靠辅助"。

适用边界与坑

  • 硬件门槛高:Linux + NVIDIA GPU + 约 100GB 磁盘,单 worker 约 4GB 显存;还要手动注册 MANO/AMASS 拿人体模型与动作数据。Apple Silicon / 无 GPU 环境跑不动。
  • 许可限制:代码是 CC BY-NC 4.0(GitHub API 显示为 NOASSERTION,LICENSE 文件确为 Attribution-NonCommercial 4.0),BEHAVIOR-1K 数据、SMPL+H/MANO、AMASS 各有独立许可,MANO/AMASS 明确仅限非商业研究且不可再分发——商用需另谈。
  • 仓库很新:2026-10-24 创建、无 tag 无 release,README 多处指向 docs/ 下的细节文档,且 docs/TASKPACK.md 等文件在仓库快照中可能仍在变动;examples/05_derive_taskpack.py 这类路径若对不上需回到仓库当前 main 核对。
  • 数据规模表述有出入:论文正文写"over 8,000 objects and 50 scenes"、附录写 51 layouts 里 44 个通过通用任务准入;README 写的是 44 个场景(BEHAVIOR-1K 住宅与场所)与烘焙 6,831 个 BEHAVIOR 物体。以 README 的 release 实测数字为准更稳妥。
  • 模拟的是"听话的人":Human 是被指令驱动、且拿到全部合法命令的代理,不是真实用户;论文自己也承认需要"behavioural calibration"才能对齐真人。
  • 不要把它当静态问答榜:论文反复强调静态 benchmark 测不出这类能力,闭环成功率受链上最弱一环限制。
  • Accessibility 类任务刻意对 Human 隐藏视觉输入,复现时别误判为配置错误。

不确定处

  • 原推文除标题与链接外无任何信息,本文全部技术细节来自官方仓库与论文,没有从推文推文正文做任何推断。
  • 论文中"Claude Fable 5.1""Muse Spark 1.1"等模型名按论文原文照录,未做外部核实。
  • 仓库 31 stars / 1 fork / 1 open issue 为 2026-10-28 查询快照,README 未给出 release 版本号,故无可引用的版本锚点。
  • 未在本机实跑上述命令(环境不具备 NVIDIA GPU + 100GB 资产),命令与参数均取自官方 README 原文,未经本地验证。