PhysBrain 1.0 Technical Report

Paper: arXiv:2605.15298 Code: Phys-Brain/PhysBrain-VLA Code reference: main @ ffcc6cbd (2026-05-18)

1. Motivation

PhysBrain 1.0 的出发点不是简单地“再收更多机器人轨迹”,而是质疑 robot trajectories 是否足以承担 physical intelligence 的主要监督来源。论文在引言中把当前主流路线概括为 action imitation:通过收集 robot interaction data、拟合 action policy,再靠扩大示教规模持续提升 embodied performance。这条路线确实推动了 VLA 快速进展,但作者认为它有三个结构性瓶颈。第一,robot data 昂贵且强平台依赖。不同机械臂、夹爪、相机位置、控制频率和动作参数化都会改变数据分布,因此大量轨迹也很难自然迁移到新 embodiment。

第二,trajectory supervision 对“动作结果”敏感,却未必对“动作所依赖的物理结构”敏感。只看 observation-action 对应关系,模型可能学会某个场景下的统计性动作,却不一定真正掌握 object geometry、relative distance、contact progression、reachability、state change 和 sub-action ordering。第三,如果 robot trajectories 同时承担“提供物理常识”和“完成 embodiment mapping”两种职责,那么训练信号本身就会变得过重。模型既要从中学世界结构,又要学某个机器人如何执行动作,这会让数据效率和泛化空间都受到限制。

论文真正盯住的缺口因此很具体:现有 VLA 虽然会动,但未必已经拥有足够广泛、可迁移的 physical commonsense。

作者特别不满意两类常见替代方案。一类是继续堆 robot demonstrations。另一类是把人类视频直接配 caption 或 narrative description,再拿这些文字去训 VLM。前者受制于成本和平台覆盖。后者虽然便宜,但 supervision 往往只总结“发生了什么”,而不会稳定地表达“为什么这样做”“此时哪些空间关系决定了动作是否可行”“目标物在多大程度上可达”。

论文在 data engine 设计目标中说得很明确:generic captions 通常省略 geometry、contact、relative distance、depth relation 和 state transition,这些恰恰是 embodied learning 最依赖的内容。因此,PhysBrain 不是要证明“人类视频也能做机器人”,而是想解决一个更精确的问题: 如何把 large-scale human first-person interaction video 转成对 robot-oriented physical understanding 真正有用的监督?作者给出的答案不是直接蒸馏动作标签,也不是把视频当成普通 VQA 数据。

他们先把第一视角交互视频编译成 structured scene meta-information,再把这些中间记录转成 physically grounded QA,用来训练一个更懂物理世界的 base VLM。只有在这个 base stage 已经积累了 scene elements、spatial dynamics、action execution 和 depth-aware relations 等物理先验之后,系统才进入 robot adaptation 阶段。这个问题值得做,不只是因为 human video 更便宜。更关键的是,人类第一视角交互天然覆盖更多样的真实物体、空间布局、容器关系、遮挡状态、多步任务结构和交互习惯。

论文把它的优势概括为 easier to obtain、broader in coverage、naturally centered on embodied interaction。如果这种桥接成立,收益至少有四层。第一,base VLM 会得到比普通 caption supervision 更强的 physical reasoning。第二,VLA 会减少对 closed-loop robot demonstrations 的单点依赖。第三,out-of-domain generalization 理应更强,因为模型先学到的是物理结构,而不是平台特定动作统计。

第四,robot data 的职责会被收缩为 embodiment-specific adaptation,而不是所有能力的总来源。从这个角度看,PhysBrain 的 motivation 可以概括为一句话: 把 embodied intelligence 的训练逻辑,从“直接模仿机器人动作”改写为“先学习可扩展的物理常识,再把这些常识迁移到机器人动作”。

2. Idea

PhysBrain 的核心 insight 可以压缩成一句话:先把 human egocentric interaction video 变成结构化的 physical supervision,再把由此学到的 physical priors 迁移给 VLA,而不是直接让 robot trajectories 独自承担全部 embodied capability。真正新的地方不只是“用了人类视频”,而是视频在进入训练前先被转成 source record。

这些 source record 不是开放式描述,而是围绕 scene_elementsspatial_dynamicsaction_execution 组织的可解析中间态,并进一步补上 depth-aware augmentation。这样一来,后续 QA supervision 的物理内容是可控的,监督形式仍然保持为自然语言问答,既能保留 VLM 训练范式,又能提高物理信息密度。第二个关键创新是把训练流程拆成两段而不是一锅炖。第一段是 physical commonsense acquisition。第二段是 embodiment-specific adaptation。

这意味着 PhysBrain 并不要求机器人数据同时完成“理解世界”和“输出动作”两件事,而是先让 human video 负责更上游的 physical understanding,再让少量 robot data 负责把这些理解映射到具体 action space。第三个关键创新是 adaptation 的设计带有明显保护性。论文没有把 base VLM 直接单路 fine-tune 成 VLA,而是保留冻结的 general pathway,再引入 trainable embodied pathway,并配合 language-sensitive 的 LangForce 目标和 flow-matching action generation。

这套组合的目标很明确: 既要学会动作;又不能在 imitation-dominated post-training 中把原始 VLM 的 broad competence 冲掉;同时还要避免模型只凭视觉 shortcut 预测动作、忽略 instruction。

如果用更工程化的话概括,PhysBrain 的 idea 不是“多加一个模块”,而是重新安排能力形成的因果顺序: human video -> structured physical record -> physical QA -> stronger base VLM -> robot adaptation -> action generation 与传统 behavior cloning 风格的 VLA 相比,这条链路最大的差异在于 supervision 被显式拆层了。已有路线往往直接从 observation -> action 学映射,或者在 instruction tuning 之后直接做 trajectory imitation。

PhysBrain 则坚持先把物理内容从视频中抽出来,再组织成多能力 QA,让模型在 action learning 之前就先学到 object state、spatial relation、depth、temporal progression 和 feasible planning。这也解释了它和“只靠 robot data 训练 policy”的根本不同: robot trajectories 不再是唯一知识来源,而只是最后一公里适配器。这套 idea 成立依赖两个判断。第一个判断是:physical commonsense 比 action policy 更上游。

如果模型已经知道哪些物体更近、更重、更可达、先后步骤如何约束任务,那么迁移到具体机器人时,真正需要学习的是 action parameterization,而不是整个世界模型。

第二个判断是:结构化中间态比 caption 更适合作为 bridge。 因为 caption 容易退化成表面描述,而 structured source record 能显式保存物体属性、空间关系、动作执行过程和深度信息,再通过 physically grounded QA 把这些因素系统喂给模型。 因此,PhysBrain 的核心思想并不是“用视频替代机器人”,而是: 先理解,再动作; 先获得 commonsense,再学 embodiment; 先构建物理监督,再做 policy adaptation。

3. Method

Overall framework

Figure 1 解读:图 1 左半边是 PhysBrain 1.0 data engine,把 large-scale human egocentric interaction videos 转成 structured physical supervision,并进一步渲染成 physically grounded QA;右半边是 PhysBrain-VLA,把这些 supervision 训练出来的 physical priors 迁移到 robot control。图中最关键的信息不是组件数量,而是两件事被显式分离了:physical knowledge acquisition 在前,robot embodiment adaptation 在后。

如果按训练流程拆开,整套方法可以概括为四步。 第一步,收集并筛选 egocentric human interaction videos。 第二步,把每个 clip 变成结构化的 scene meta-information,并用深度估计补足 depth-aware relations。 第三步,把这些 source record 生成成 physically grounded QA,再与 retention-style multimodal data 一起训练更强的 base VLM。 第四步,在下游 robot benchmarks 上进行 benchmark-specific adaptation,输出连续动作。 这个设计的直觉很简单:如果物理理解已经在前半段学到,后半段就不需要再让 robot data 从零教模型“世界是什么样”,只需要教它“这个 embodiment 该如何把已有理解落实成动作”。

Structured physical data engine

这一部分是整篇 technical report 的方法核心,因为它定义了 human video 如何被“编译”为 physical commonsense source。 论文在 2.1 Design Goal 里先否定了一个 naive 方案:直接给视频配 caption。 作者认为 caption supervision 太弱,因为它往往总结 appearance 或高层事件,却不会系统表达 object geometry、contact progression、relative distance、reachability 或 state transition。 所以 data engine 遵循两个原则。 第一,supervision 必须 physically explicit。 第二,scene meta-information 与最终 model supervision 必须分离。

换句话说,物理内容先以结构化中间态存在,最终训练样本仍然保持为自然语言 QA。

Data sources and staged construction

PhysBrain 的训练语料不是单一静态数据集,而是 staged construction。 第一阶段重点使用 Ego4D、BuildAI、EgoDex 这类 first-person human interaction data。 这些视频先被切成短 clip,再进入 annotation 流程之前做过滤。 论文明确提到两类质量控制信号: 一类是 visual-quality score; 另一类是 camera-motion score。

其中 camera motion 通过 VGGT-derived camera parameters 估计,用来剔除相机抖动过大或视觉质量过低的片段。 这一步的重要性在于,后续所有 structured extraction 都高度依赖可见物体和稳定交互过程,如果源视频质量差,中间态的物理信息就会先天失真。 后续阶段则在这些 meta-information 上生成多种 QA,覆盖 depth-aware spatial reasoning、temporal understanding、embodied planning、fine-grained perception 和 general multimodal reasoning。 与此同时,FineVision 等 general multimodal data 以 retention data 的角色混入训练,而不是被重新物理标注。 这说明作者没有打算把模型训练成只懂 embodied physical QA 的专用系统,而是希望在增加 physical commonsense 的同时保住广泛多模态能力。

Structured scene meta-information

第一层 annotation 不是直接监督 VLM,而是形成 machine-readable source record。 每个 clip 会被均匀采样少量帧,再用 constrained prompt 强制要求输出 JSON only。 最终 schema 有三个顶层字段:

  • scene_elements
  • spatial_dynamics
  • action_execution

这三类字段共同定义了 clip 中“有什么”“它们如何排布与变化”“动作是如何发生的”。 结构化格式的好处有两个。 一是方便 automatic parsing and validation。 二是给后续 QA generation 提供稳定 source of truth,使生成的问题可以围绕明确的物理内容展开,而不是依赖自由发挥。 论文还强调,scene meta-information 并非由单一模型一次性生成,而是通过 multi-model pool 进行 annotation 和 cross-check。 文中在 meta-information 阶段列出的强模型池包括 GPT-5、Gemini 3.1 Pro、Gemini 3 Pro、Qwen3-VL-235B-A22B、Qwen3.5-397B-A17B。

这种多模型交叉标注的意义不是简单追求更高分,而是降低 synthetic supervision 被单一 generator 风格、遗漏模式或 reasoning bias 锁死的风险。

Scene elements

scene_elements 负责刻画静态或缓变、但对交互十分关键的内容。 它不仅标出主操纵物体和邻近物体,还会强调 material cue、geometry 和 physical state。 论文特别指出,这不是 generic appearance tagging。 例如 rigid handle、deformable cloth、loose small parts 即便在视觉上都只是“前景物体”,它们对应的 graspability、manipulation strategy 和 contact feasibility 却完全不同。 因此,scene_elements 的任务是为后续推理提供物体级 physical identity,而不是只做类别识别。

Spatial dynamics

spatial_dynamics 负责表示物体之间以及物体与环境之间的空间约束,并记录这些约束如何随交互改变。 它可以表达 relative position、containment、support、occlusion、approaching、separating、opening、closing 等关系。 这一层让 supervision 从“图中有什么”提升到“空间结构怎样约束动作”。 例如目标物在容器内部、被盖子遮挡、位于支撑面边缘或在另一物体后方,都会改变动作是否可行以及动作应如何排序。

Action execution

action_execution 则面向交互过程本身。 它关心 hand-object contact、sub-action progression、manipulation order 和 action-relevant dynamics,而不是只记录最终状态。 这一步非常关键,因为它把视频中的物理变化和 agent 的操作链条对应起来,使后续生成的 QA 可以自然地询问“下一步合理动作是什么”“某一步为何必要”“若某状态未发生,计划为何不成立”。

Figure 2 解读:图 2 直接展示了 data engine 的关键中间态。左侧从一个 egocentric manipulation clip 里均匀采样多帧,中间把这些帧转换为 JSON-style source record,分别描述 scene_elementsspatial_dynamicsaction_execution,右侧再根据这些记录生成自然语言 QA。它说明 PhysBrain 不是在做“看图写问答”,而是在做“先结构化,再问答化”的监督构造。

Depth-aware spatial augmentation

论文认为,仅有结构化 scene meta-information 仍然不足以覆盖 3D relation 和 depth-sensitive planning。因此在 2.4 Depth-Aware Spatial Augmentation 中又加了一层 depth augmentation。对于带 object grounding metadata 的 clip,系统会把每个 object 的 center point 映射到深度图坐标系,并查询对应的 point-wise depth estimate。深度模型使用的是 Depth Anything v3,具体模型名为 DA3NESTED-GIANT-LARGE-1.1

最终每个 clip 会额外得到一个紧凑的 depth_info 字典。这一步服务于两个目标。第一个目标是 relative depth QA。模型要学会判断某个对象更近、更远、更靠后、更低,或者在当前姿态下更可达。这会迫使它区分语义共现和真实物理排布。第二个目标是 absolute depth 与 metric-distance QA。论文强调这对 downstream action generation 很重要,因为某些 robot demonstration 的动作表达直接涉及 end-effector position、pose 或 displacement。如果模型只学到 ordinal relation,它知道谁更近,却不一定理解实际位移尺度。

加入 metric depth 后,模型才更有机会把视觉中的距离关系与连续动作空间对齐。从直觉上说,这一步是在给感知表征补“量纲”。没有它,模型可能知道“杯子在盘子前面”;有了它,模型才更可能理解“向前移动多少”“是否已进入抓取范围”“当前高度差是否足以避碰”。

QA generation

第三层才是把 structured record 转成真正训练样本的地方。 这里的问题不再是“视频里发生了什么”,而是“基于已经抽出的物理记录,可以构造哪些 physically grounded QA”。 论文明确列出的覆盖项包括 objects、physical properties、spatial relations、depth、state changes、feasible actions 和 long-horizon plans。 这说明 QA generation 不是普通 synthetic VQA augmentation,而是一套 capability curriculum。 同一段 clip 可以衍生出感知类问题、关系类问题、状态变化问题、动作可行性问题和多步规划问题。 这样一来,base VLM 学到的不只是答案文本,而是围绕同一物理场景的多视角解释能力。

在这一阶段,作者进一步使用更宽的 multi-model pool,包括 GPT-5、GPT-5 mini、Gemini 3.1 Pro、Gemini 3 Pro、Qwen3-VL-30B-A3B、Qwen3-VL-235B-A22B、Qwen3.5-35B-A3B、Qwen3.5-397B-A17B。 不同模型会偏好不同提问方式、不同物理线索和不同推理路径,这有助于避免训练数据在风格上过于单一。

为什么这一模块不可替代

如果没有 structured source record,human video 仍然只是一堆更便宜但同样模糊的视觉片段。 如果没有 depth-aware augmentation,空间关系仍可能停留在 2D 共现层面。 如果没有 capability-oriented QA generation,模型最后依然可能只是学到一批“看起来像物理问答”的语言模式。 因此,PhysBrain 的 data engine 真正做的不是预处理,而是把 human video 提升为可扩展 physical commonsense source。

Physically informed base model

base stage 的目标不是输出 robot action,而是训练一个 physically informed VLM。 这一阶段的核心不是模型结构变化,而是 supervision composition 发生了变化。 模型会在由 data engine 生成的 physical QA 上学习物理理解,同时混入 retention-style general multimodal data,避免能力分布过度向 embodied QA 偏斜。 论文把回答组织顺序概括为 perception-state-planning-execution。 这个顺序有很强的方法论意味。 它要求模型先识别环境与对象,再判断物理状态和空间关系,然后推断可执行计划,最后给出动作或操作描述。

换言之,作者希望 VLM 先在语言空间里学会一条接近控制决策的 reasoning scaffold。 这一步的价值在于,当模型进入 VLA 阶段时,已有表示不只是通用视觉语义,而是更贴近 action-relevant physical priors。 论文还混入 OCR、chart reasoning、visual logic、domain knowledge 等更广的 VQA 数据,目的不是追求 benchmark stacking,而是保住 broad multimodal competence,避免 physical specialization 反向削弱 general vision-language ability。 这也解释了为什么 PhysBrain 的 base stage 不是一个孤立的“物理问答模型”,而是一个试图保持 generalist 属性的 stronger base VLM。

Capability preservation during embodied adaptation

论文认为,已有 VLM-to-VLA 路线虽然证明了迁移可行,但 imitation-dominated post-training 容易带来 catastrophic forgetting。 为了解决这个问题,PhysBrain 不采用单路 fine-tuning,而采用 TwinBrainVLA。 它由一条冻结的 general pathway 和一条可训练的 embodied pathway 组成。 released repo 中这一设计对应 physbrain_vla/PhysBrainVLA.pyMoT_Qwen_VL_Interface,并通过 freeze_qwen_vl 冻结 general VLM。 论文给出的关键机制是 asymmetric layer-wise fusion: 其中 sg 表示 stop-gradient。 也就是说,embodied branch 在每一层 attention 中都能读取 general branch 的 key/value,但梯度不会反向污染冻结通路。 直觉上,这相当于给控制分支保留一个稳定的语义锚点。 模型可以持续访问 general pathway 的 broad semantics 和视觉理解,同时把 embodiment-specific 修改集中在 trainable branch。 如果去掉这条设计,最可能发生的失败就是:模型也许更快拟合训练轨迹,但会逐步破坏已有的 vision-language competence,并在 distribution shift 下暴露更明显的泛化问题。 TwinBrainVLA 的意义因此不仅是“多一条路”,而是用结构方式保证“先学理解、再学动作”不会在最后一阶段自我破坏。

Action-conditioned language alignment

PhysBrain 认为 VLA 还有另一个常见问题:visual shortcut。 也就是模型主要根据场景外观直接猜动作,而不是认真利用 instruction。 为了解决这个问题,论文提出 LangForce,让动作表示对语言的依赖变成显式目标。 具体做法是构造两种 action-query 排列。 prior branch 为: posterior branch 为: 其中 是视觉 token, 是语言 instruction, 是 action queries。 在 prior 排列里,action queries 只能利用视觉上下文; 在 posterior 排列里,它们同时看到视觉和语言。 论文再比较两条路径下的语言负对数似然,并构造 log-likelihood-ratio 风格的目标,迫使 action representation 在看到 language condition 后发生可测的改变。 这一步的关键直觉是: 如果语言真的重要,那么把 instruction 放到 action queries 前后,模型对文本解释的能力应该发生差异。

如果没有差异,就说明 action branch 实际上并没有把语言当成控制信号。 LangForce 就是把这种“语言是否真的影响动作表征”的问题显式写进训练目标。 released code 里,这部分对应 PhysBrainVLA.py 中的 _compute_language_llr_from_boundaries,并通过 <|action|> token 与 hidden_states_selected_layer 取得 action condition。 因此它并不是 paper-only 概念,而是已经进入 released implementation 的训练路径。

Unified action generation

在得到 language-sensitive 的 action condition 之后,PhysBrain 使用 flow-matching 做统一连续动作生成,而不是简单的离散动作分类。

论文中的损失写成: 其中 表示视觉和语言共同提供的条件表征。 从直观上看,模型学习的是从噪声动作到目标动作的 velocity field,而不是一步直接回归最终动作。 这使它天然更适合连续控制空间,也更容易统一不同机器人平台上的 action parameterization。 released repo 中可以看到这套设计已经落到具体 config。 starvla_cotrain_oxe.yaml 使用 DiT-B action model,action_dim=7state_dim=7future_action_window_size=15action_horizon=16num_inference_timesteps=4trainer.max_train_steps=100000learning_rate.base=1e-5learning_rate.action_model=1e-4starvla_cotrain_libero.yaml 则使用 action_type=delta_qposfuture_action_window_size=7action_horizon=8trainer.max_train_steps=100000learning_rate.base=2.5e-5

这些差异说明论文所谓 unified action generation 不是用一套死板超参覆盖所有 benchmark,而是共享生成范式,同时允许 embodiment-specific 动作窗口和控制参数化。 从方法配合关系上看,flow matching 与前面的 depth-aware augmentation 是呼应的。 depth-aware augmentation 让感知表征更接近连续空间中的真实距离与位移。 flow matching 则把这种更具量纲感的感知先验接到连续动作生成上。 因此,这两部分共同完成了从 physical understanding 到 continuous control 的桥接。

Robot adaptation protocol

论文非常明确地把 robot data 定位为 benchmark-specific adaptation,而不是全部能力来源。 具体来说,SimplerEnv-WidowX 使用 Bridge data,SimplerEnv-GoogleRobot 使用 factual data,LIBERO 使用其标准四套任务,RoboCasa-GR1 使用 GR00T-X-Embodiment-Sim。 这个安排背后的原则很清楚: human video 负责提供更广、更可扩展的 physical priors; robot data 负责把这些 priors 对接到特定 embodiment、观察形式和 action space。 因此,PhysBrain 并不是 robot-data-free 方法。

它的真正主张是把 robot data 的职责从“全部知识来源”收缩成“最后一公里接口适配器”。 这也解释了为什么论文特别强调 out-of-domain 的 SimplerEnv 表现。 如果模型先学到的是物理结构而不是平台特定轨迹统计,那么在新布局和新任务组合上更稳,本来就应当成为这条路线最重要的验证点。

Pseudocode

# Paper-side reconstruction only.
# 代码未公开实现完整 data engine,本段对应论文第 2 节的方法流程,而不是 released repo 中可直接定位的函数。
def physical_data_engine(video_clip, depth_model, qa_generator):
    frames = sample_uniform_frames(video_clip)
    meta = annotate_scene_elements_spatial_dynamics_action_execution(frames)
    depth_info = augment_with_depth(meta, depth_model)
    qa = qa_generator.generate(meta, depth_info)
    return qa
def build_structured_meta(frames, annotator_pool):
    prompt = make_json_only_prompt(
        fields=["scene_elements", "spatial_dynamics", "action_execution"]
    )
    candidates = [model.annotate(frames, prompt) for model in annotator_pool]
    meta = cross_check_and_validate_json(candidates)
    return meta
def attach_depth_info(meta, first_frame, depth_model):
    depth_map = depth_model(first_frame)
    depth_info = {}
    for obj in meta["scene_elements"]["objects"]:
        center_xy = get_object_center(obj["bbox"])
        depth_value = sample_depth(depth_map, center_xy)
        depth_info[obj["name"]] = {
            "relative_depth": depth_value,
            "metric_distance": calibrate_metric(depth_value),
        }
    meta["depth_info"] = depth_info
    return meta
def dual_pathway_forward(general_vlm, embodied_vlm, inputs):
    frozen_hidden = general_vlm.encode(inputs, freeze=True)
    trainable_hidden = embodied_vlm.encode(inputs, freeze=False)
    fused_hidden = fuse_with_stop_gradient(frozen_hidden, trainable_hidden)
    return fused_hidden
def language_llr(prior_input, posterior_input, lm_head):
    prior_logits = lm_head(prior_input)
    posterior_logits = lm_head(posterior_input)
    prior_nll = compute_nll(prior_logits)
    posterior_nll = compute_nll(posterior_logits)
    return (posterior_nll - prior_nll.detach()).mean()
def langforce_condition(video_tokens, instruction_tokens, action_queries, model):
    prior_input = concat(video_tokens, action_queries, instruction_tokens)
    posterior_input = concat(video_tokens, instruction_tokens, action_queries)
    prior_state = model(prior_input)
    posterior_state = model(posterior_input)
    llr = language_llr(prior_state, posterior_state, model.lm_head)
    action_condition = select_action_hidden_states(posterior_state)
    return action_condition, llr
def flow_matching_action_loss(action_decoder, condition, a0, a1, t):
    at = (1 - t) * a0 + t * a1
    target_velocity = a1 - a0
    pred_velocity = action_decoder(at, t, condition)
    return ((pred_velocity - target_velocity) ** 2).mean()
def train_vla_step(batch, model, action_decoder):
    video_tokens, instruction_tokens, gt_action = batch
    action_queries = init_action_queries()
    action_condition, llr_loss = langforce_condition(
        video_tokens, instruction_tokens, action_queries, model
    )
    a0 = sample_noise_like(gt_action)
    t = sample_uniform_time()
    fm_loss = flow_matching_action_loss(
        action_decoder, action_condition, a0, gt_action, t
    )
    return fm_loss + llr_loss

Code reference: main @ ffcc6cbd (2026-05-18) — pseudocode and mapping based on this commit

Paper ConceptSource FileKey Class/Function
structured physical data engine未在 released repo 中公开论文第 2 节描述,代码未实现完整 pipeline
physically informed base model / VLM trainingphysbrain_vla/starVLA/training/train_starvlm.pysetup_optimizer_and_scheduler, VLAMTrainer
dual-brain / MoT interfacephysbrain_vla/PhysBrainVLA.pyMoT_Qwen_VL_Interface
language-conditioned action alignmentphysbrain_vla/PhysBrainVLA.pyforward, _compute_language_llr_from_boundaries
unified action generation / robot adaptation trainingphysbrain_vla/starVLA/config/training/starvla_cotrain_oxe.yamlaction_horizon, future_action_window_size, learning_rate, max_train_steps
LIBERO adaptation configphysbrain_vla/starVLA/config/training/starvla_cotrain_libero.yamldataset/action/trainer settings
adapter-style training configphysbrain_vla/starVLA/config/training/starvla_train_adapter.yamladapter learning rates and batch settings
token / input preprocessingphysbrain_vla/PhysBrainVLA.py_preprocess_inputs
VLA wrapperphysbrain_vla/PhysBrainVLA.pyPhysBrainVLA.predict_action
config knobsphysbrain_vla/physbrainvla_conf/configuration_physbrain_vla.pyDoubleVLAConfig
multi-embodiment action encoderphysbrain_vla/physbrainvla_conf/embodiment_conditioned_mlp.pyMultiEmbodimentActionEncoder, CategorySpecificMLP
freeze Qwen backbonesphysbrain_vla/physbrainvla_conf/utils.pyfreeze_qwen_vl, create_state_encoder

4. Experimental Setup

  • Datasets used and scale:human egocentric sources 包括 Ego4D、BuildAI、EgoDex,后续扩展到 EPIC、SEA-Small,并混入 FineVision 作为 retention data;论文和 README 都提到 overall data engine 处理了 3,000+ hours of human video。
  • Baselines:VLM 侧对比 Qwen3-VL base、RoboBrain2.5-8B、VST-7B-RL、MiMo-VL-7B-RL;VLA 侧对比 RT-1-X、Octo、OpenVLA、RoboVLM、TraceVLA、SpatialVLA、CogACT、VideoVLA、π0、π0.5、GR00T N1/N1.6、Xiaomi-Robotics-0、VP-VLA 等。
  • Metrics:VLM 用 benchmark score / accuracy / exact-match-style score;VLA 用 success rate(每任务 50 trials),real-world grasping 统计单物体成功率和 long-horizon task success rate。
  • Training config:论文正文没有给出权威的完整超参表,因此不能把某个 YAML 直接当作 paper setting;但 released repo 确实公开了候选训练配置。比如 starvla_train_adapter.yaml 给出 per_device_batch_size=16max_train_steps=100000base lr=2e-5action_model lr=1e-4starvla_cotrain_libero.yaml 给出 per_device_batch_size=4/16max_train_steps=100000base lr=2.5e-5starvla_cotrain_oxe.yaml 给出 action_horizon=16future_action_window_size=15base lr=1e-5。这些数值只能视为 released code 的 candidate configs,而不是论文正文明确声明的最终实验配置。

5. Experimental Results

VLM benchmarks

  • ERQA:PhysBrain 8B 45.5,PhysBrain 4B 41.0。
  • PhysBench:PhysBrain 8B 50.2,PhysBrain 4B 48.1。
  • MME:PhysBrain 8B 2431.1,PhysBrain 4B 2385.1。
  • MMMU:PhysBrain 8B 55.2,PhysBrain 4B 49.9。
  • OCRBench:PhysBrain 8B 85.7,PhysBrain 4B 83.0。
  • RealWorldQA:PhysBrain 4B 72.7 最好,PhysBrain 8B 68.8。
  • TextVQA:PhysBrain 8B 83.3。

VLA benchmarks

  • SimplerEnv-WidowX:PhysBrain 1.0 平均 80.2,高于 Xiaomi-Robotics-0 的 79.2。
  • SimplerEnv-GoogleRobot:PhysBrain 1.0 平均 91.33,高于 Xiaomi-Robotics-0 的 89.03。
  • LIBERO:PhysBrain 1.0 平均 98.8,略高于 Xiaomi-Robotics-0 的 98.7。
  • RoboCasa:PhysBrain 1.0 平均 64.5,超过 VP-VLA 的 53.8 和 Isaac-GR00T-N1.6 的 47.6。
  • Real-world Franka:单物体 grasping 从 47.1% 提升到 63.3%,long-horizon 从 31.0% 提升到 45.0%。

What matters

  • 论文最明确的结论是:human-derived physical priors 对 downstream robot adaptation 有帮助,尤其在 out-of-domain 的 SimplerEnv 上很强。
  • 论文没有给出完整失败分析表,但正文讨论里强调:robot data 仍然必要,只是角色变成“embodiment mapping”而不是“全部物理知识来源”。

Limitations and overall conclusion

论文没有系统展开 failure cases,也没有公开完整训练超参,因此目前更像一份“方向与结果都很强的 technical report”,而不是一步到位的 fully reproducible recipe。尽管如此,跨 VLM、simulation VLA 和 real-world Franka 的结果都在支持同一个结论:把 human egocentric video 先转成 structured physical supervision,再迁移到 VLA,是一条比单纯扩 robot imitation 更有前景的 physical intelligence 路线。

Code / paper gap

论文公式与 released code 实现差异:对 LLR 目标,目前没有发现论文与代码的直接冲突,_compute_language_llr_from_boundaries 的实现与论文“prior / posterior action queries + language likelihood ratio”的叙述是对得上的。真正的 gap 在于另一侧:完整 data engine 没有在 released repo 中公开,而训练配置虽然有多份 YAML 可参考,但论文没有给出权威的最终实验超参表,因此不能把某一份 config 直接当成 paper setting。

这也意味着一个实际限制:PhysBrain 1.0 并不是 robot-data-free recipe。它确实把物理先验的大头前移到 human egocentric video,但 downstream control 仍然需要 benchmark-specific robot data 来完成 embodiment-specific adaptation。