跳转至

Patch Policy: Efficient Embodied Control via Dense Visual Representations

论文阅读笔记 — 用于后续讨论的概览


Patch Policy teaser Figure 1:左/中两图的 Success Rate 轴是「四个仿真任务归一化后取平均」(我按 BlockPush/2、Cube/2 复算,精确对上了每一个点)。左图 "Small & Effective"、中图 "Fast & Effective" 的箭头都指向 Ours-VQ-BeT;但注意精度最高的 Ours-DP 在中图躺在延迟轴最右端(~446 ms ≈ 2.2 Hz),比 OpenVLA-OFT 还慢 7 倍——「又快又准」在这张图里其实是两个不同的点。右侧柱状图是 encoder 排名:WebSSL > DINOv2 ≈ V-JEPA2 > DINOv3 > SigLIP2,灰色虚线是 WebSSL CLS 基线。

1. 基础信息

  • 题目: Patch Policy: Efficient Embodied Control via Dense Visual Representations
  • 作者: Gaoyue Zhou¹*, Zichen Jeff Cui¹*, Ada Langford¹, Bowen Tan¹, Yann LeCun¹,³, Lerrel Pinto¹,²
  • ¹ Courant Institute, New York University ² Meta-FAIR ³ AMI Labs
  • * Equal contribution;通讯 gz2123@nyu.edu
  • arXiv 编号: 2607.18236 (submitted 2026-07);LaTeX 用 corl_2026.sty[preprint] 选项 → 目标 venue 是 CoRL 2026
  • 项目页: https://patch-policy.github.io
  • 关键词: Imitation Learning, Visual Representation, Dense Patch Features, Frozen ViT, Block-causal Attention, VQ-BeT, Diffusion Policy, VLA Efficiency

2. 文章介绍

2.1 解决的领域和问题

视觉模仿学习 (visual behavioral cloning) 里的 视觉表征接口问题:预训练 ViT 输出的是 P × D 的 dense patch feature,但绝大多数 continuous-control policy backbone(VQ-BeT、Diffusion Policy、BeT、IBC 这一系)在设计上假设「每个 timestep = 一个 token」,于是实践中所有人都做同一件事——把 16×16=256 个 patch 压成一个 CLS token 或 avg-pool 向量再喂给 policy。

作者的诊断是:这一步 pooling 就是精细操作性能的瓶颈。而目前唯一在大规模使用 dense patch 的路线是 VLA(OpenVLA、π0 系列),代价是要背着一个 7B 的 VLM。所以领域被劈成两半:要么便宜但信息被压扁,要么信息完整但又大又慢。

2.2 Motivation

一句话概括作者的立论:"VLA 之所以在精细操作上强,靠的不是 language grounding,也不是 7B 参数量,而是它碰得到 dense patch feature。"

如果这个假设成立,那么 dense feature 是可以从 VLA 里剥离出来单独享用的——Internet-scale 预训练 ViT 是现成的、免费的、冻结的,只要 policy 架构肯直接吃 T × P 长度的序列就行。这样就能拿到 VLA 的表征红利,而不用付 VLA 的训练/推理账单。

问题变成了纯粹的架构工程:怎么让一个标准 transformer policy 在保持时序因果性的前提下吃下每帧几百个 token。

2.3 之前工作的问题

类别 代表工作 缺陷
In-domain SSL + 全局特征 DynaMo, MoCo, BYOL, R3M 表征本身弱于 Internet-scale 预训练;且输出仍是 pooled 全局向量,空间细节丢失
冻结 ViT 的 CLS / avg-pool 各类 VQ-BeT / DP 实现的标准做法 CLS 偏语义、丢几何;avg-pool 直接抹掉空间分辨率。本文 Table 1 里 Cube 任务上只有 0.21–0.28 / 2.0,基本等于做不了
从头训 encoder 的 patch policy ACT (ResNet-18 from scratch), RT-1, Octo, RVT, PerAct 用了 patch token 但没用上大规模视觉预训练;小数据集上从头训视觉 backbone 是浪费
VLA OpenVLA, OpenVLA-OFT, RT-2, π0/π0.5/π0.6 dense feature 有了,但绑定 7B LLM backbone:7.61B 参数、61.7 ms 前向、16 GPU-hours 微调
世界模型侧的 dense feature 用法 DINO-WM, V-JEPA 2 证明了冻结 patch feature 对 dynamics modeling 有效,但没有系统迁移到 policy learning

2.4 论文解决方案(一句话)

把冻结的预训练 ViT 的全部 patch token 直接展平成 T × P 序列喂给标准 transformer policy,用一个 block-causal attention mask(帧内双向、帧间因果)同时保住空间完整性和时序因果性,policy head(VQ-BeT / Diffusion Policy)原封不动。

2.5 与前序工作的关系

这篇的血统非常清楚,几乎全是 NYU Lerrel Pinto 组的自我延续

  • DINO-WM (Zhou, Pan, LeCun, Pinto):一作和末作完全相同。DINO-WM 就是「冻结 DINOv2 patch feature + frame-wise causal attention」做世界模型。本文 §3.2 明确写 block-causal mask "similar to [dinowm]"——架构 trunk 是直接搬过来的,换成了 BC 任务。
  • DynaMo (Cui, ..., Pinto):二作的前作,在本文里作为 global-pooled baseline 被比。
  • CAP / Contact-Anchored Policies (Cui et al.):二作的另一篇前作,本文附录的 zero-shot 实验(EgoGym + Real Franka Pickup)用的是 CAP 的数据集、benchmark 和 checkpoint。
  • VQ-BeT (Lee, ..., Pinto):policy head 之一,也是同组的。
  • WebSSL (Fan, ..., LeCun, Xie):主力 encoder,Meta/NYU,LeCun 也在作者列。

现成复用的模型/数据:DINOv2 (ViT-S/14)、DINOv3 (ViT-S/16+)、WebSSL (ViT-L)、V-JEPA 2、SigLIP 2 全部冻结预计算特征;数据集用 Diffusion Policy 的 Push-T、LIBERO Goal、BlockPush (IBC)、OGBench Cube。


3. 方法介绍

3.1 形式化

给定图像观测 \(o_t \in \mathbb{R}^{C\times H\times W}\),冻结的 ViT encoder 切 patch 并输出 dense feature,形状 \(P \times D\)(patch 数 × embedding 维度)。不做任何 pooling,全部保留

对长度为 \(T\) 的观测上下文窗口,得到张量 \(T \times P \times D\)

一个关键的设计好处:\(P=1\) 就退化为传统的 global feature / state-based policy。这让论文里所有 baseline 对比都跑在同一份代码、同一个 trunk、同一个 head 上,唯一变量是 token 数——这是一个设计得相当干净的 controlled experiment。

Goal conditioning(两种模式,都不增加序列长度): - Goal image:用同一个 encoder 编码,沿特征维拼接 → \(T \times P \times 2D\) - Goal vector \(g \in \mathbb{R}^G\):拼到每个 observation token 上 → \(T \times P \times (D+G)\)

Multi-view:多视角的 patch token 沿序列维拼进同一帧的 block(见 method 图,\(z_t\) 中蓝色块=view₀、橙色块=view₁)。

Patch Policy architecture Figure 2:左边 Observation Trunk —— 每个视角各自过同一个冻结 ViT,patch token 沿序列维拼成 \(z_t\)(图中蓝=view₀、橙=view₁);goal image 走同一 encoder 后沿特征维拼接(灰色列),goal vector 则过一个 Linear 后拼到每个 token 上——两种 goal 都不增加序列长度。右边 Policy —— 黄色块状矩阵就是 block-causal mask:对角块内部全通(帧内双向,右侧放大图),块与块之间下三角(帧间因果)。Action head 从每帧读出一个 action chunk,对全部 \(\hat a_{t..t+k}\) 算 BC loss。注意这个 mask 结构意味着过去帧的 K/V 永远不会被后续 token 改写,天然适合 KV cache——见 §5.3。

3.2 Block-Causal Attention(核心组件)

\(T \times P \times D\) 展平成长度 \(T\cdot P\) 的序列,加一维 learned positional embedding(按展平后的绝对位置索引),然后施加 block-causal mask:

  • 帧内 (intra-frame):所有 patch 之间全双向注意力 → 模型可以自由整合一帧内的空间信息
  • 帧间 (inter-frame):严格因果 → 第 \(t\) 帧的 patch 只能看到 \(\le t\) 的帧

Action 从每帧最后一个 patch token 读出,输出一个 action chunk。

论文对三种 mask 做了 ablation(§3.x 有数字): - Full attention:训练时能看到未来帧的 patch,破坏任务结构 → 轻微掉点 - Token-causal(把每个 patch 当成独立 timestep 的朴素做法):因果性保住了,但帧内也被切开。作者的诊断很锋利——影响取决于 loss 打在哪里: - VQ-BeT 在每帧最后一个 patch 读出 → 它本来就看得到整帧,所以 token-causal ≈ block-causal - Diffusion Policy 的 denoising loss 打在每一个 decoder position → 靠前的 position 只看到第一帧的一小部分 patch,Cube 上直接崩到 0.11

3.3 Policy Head(可插拔)

架构对 action head 完全不可知,论文验证了两种: - VQ-BeT:hybrid classification-regression,VQ-VAE latent dim 512 / codebook 16 / 2 groups - Diffusion Policy:denoising objective

推理时:提取当前帧 patch feature → append 到长度 \(T\) 的 rolling context → 预测 action chunk → receding horizon control 执行。

3.4 Implementation Details

视觉 encoder(224×224 输入)

Encoder Backbone Patch grid × dim 备注
DINOv2 ViT-S/14 16×16×384 (=256 tokens) 真机实验用的就是它,~22M 冻结参数
DINOv3 ViT-S/16+ 14×14×384
WebSSL ViT-L 16×16×1024 仿真主结果用它,~303M 冻结参数
V-JEPA 2 14×14×1024
SigLIP 2 14×14×768

超参(VQ-BeT,仿真):8 层 / 8 头 / 512 dim(LIBERO 例外:6/6/120);window size 3–10;action window 1–5;lr 5e-5 ~ 3e-4;batch 8–256。

超参(VQ-BeT,真机):8 层 / 8 头 / 384 dim;window size = 2;action window = 10 (Cable) / 5 (Pen, Tool);lr 3e-4;wd 1e-4;batch 128。

超参(Diffusion Policy):8 层 / 4–8 头 / 256–512 dim;obs horizon 2–3;action horizon 1–5;lr 5e-5 ~ 1e-4;batch 256。

计算开销(H200,单次前向,不含 action chunking 带来的时间摊薄)

Method Total Params Trainable Latency
VQ-BeT (ResNet-18) 39.95 M 28.77 M 5.79 ms
Ours – VQ-BeT (DINOv2) 51.55 M 29.49 M 10.99 ms
Ours – VQ-BeT (WebSSL) 334.00 M 30.34 M 21.43 ms
DP (ResNet-18) 29.35 M 9.09 M 421.89 ms
Ours – DP (DINOv2) 40.43 M 9.19 M 445.85 ms
Ours – DP (WebSSL) 303.66 M 9.35 M 451.68 ms
OpenVLA-OFT 7.61 B 177.90 M 61.71 ms
ACT 83.85 M 83.85 M 8.63 ms

训练开销:Ours (DINOv2) 6.5 h × 1×L40S = 6.5 GPU-hours;OpenVLA-OFT 4 h × 4×L40S = 16 GPU-h;ACT 12 h × 2×L40S = 24 GPU-h。冻结 encoder 使得特征可以预计算,这是训练便宜的主因。

环境与数据

Environments Figure 3:四个仿真环境(Push-T / LIBERO Goal / BlockPush / Cube)+ 三个真机任务(Cable Insertion / Pen Collection / Tool Hanging)。

环境 动作维度 数据量 视角 指标(上限)
Push-T 2D 206 demos 1 (top-down) coverage (1.0)
LIBERO Goal 7-DoF Franka, 10 tasks 500 demos 2 (3rd + wrist) success (1.0)
BlockPush 2D 1000 demos 2 (3rd) 放对的块数 (2.0)
Cube (OGBench) 6-DoF UR5e 550 demos 1 (3rd) 放对的块数 (2.0)
Cable Insertion 7-DoF Franka 101 eps ≈ 37 min wrist + side 3 阶段成功率,~2 mm 容差
Pen Collection 7-DoF Franka 52 eps ≈ 45 min 2 wrist 3 阶段(3 支笔)
Tool Hanging 7-DoF Franka 50 eps ≈ 18 min 2 wrist 3 阶段
CAP EgoGym 14606 / 3690 / 2069 demos 5000 episodes 评测
CAP Real Franka Pickup FR3 同上 wrist + 3D contact point 100 trials,10 个未见物体

注意:所有 policy 只接收视觉输入,没有 proprioception。 仿真每个环境 100 rollouts × 3 seeds,真机 20 trials。


4. 结果对比

4.1 仿真主表(Table 1,WebSSL patch features)

Visual Representation Policy Push-T LIBERO Goal BlockPush (/2) Cube (/2) 归一化均值
全局 pooled 特征
DynaMo VQ-BeT 0.66 0.93 0.65 0.28 51.4 %
WebSSL Avg Pool VQ-BeT 0.54 0.97 0.84 0.25 51.4 %
WebSSL CLS VQ-BeT 0.59 0.95 0.77 0.23 51.0 %
DynaMo DP 0.73 0.68 1.06 0.27 51.9 %
WebSSL Avg Pool DP 0.79 0.98 1.34 0.21 63.6 %
WebSSL CLS DP 0.68 0.99 0.99 0.21 56.8 %
Patch Policy
WebSSL Patch VQ-BeT (Ours) 0.68 0.94 1.68 1.68 82.5 %
WebSSL Patch DP (Ours) 0.80 0.98 1.65 1.73 86.8 %
其他 patch-based baseline
ResNet-18 Patch ACT 0.64 0.93 0.15 0.69 49.8 %
DINOv2 + SigLIP Patch OpenVLA-OFT 0.59 0.95 1.43 1.50 75.1 %

「归一化均值」是我按 BlockPush/2、Cube/2 再取四任务平均算的,精确复现了 teaser 图里的 Success Rate 轴(82.5 / 86.8 / 75.1 / 51.0 / 51.4 / 51.9 / 49.8),所以这就是论文的聚合口径。

由此可算:Ours-DP vs OpenVLA-OFT = +15.5% 相对(摘要写 18%);Ours 均值 vs WebSSL CLS 均值 = +57.1%(摘要写 40%,应该是掺进了增益更小的真机套件后拉下来的)。

关键观察:增益高度集中在 BlockPush 和 Cube。Push-T 只有 +0.09(VQ-BeT)、LIBERO 甚至 −0.01。而 Cube 上是 0.23 → 1.68,7.3 倍。也就是说 global feature 在多物体精确摆放任务上是彻底失效(2 个块里只放对 0.2 个),而不是「差一点」。

4.2 真机三任务(Table 2,DINOv2 ViT-S,20 trials)

Representation Policy 阶段 1 阶段 2 阶段 3
Cable Insertion 抓起线缆 插入端口 完全插入
DINOv2 Patch VQ-BeT (Ours) 1.00 0.85 0.70
DINOv2 CLS VQ-BeT 1.00 0.70 0.60
ResNet-18 Patch ACT 1.00 0.40 0.35
DINOv2+SigLIP Patch OpenVLA-OFT 1.00 0.55 0.30
Pen Collection 第 1 支 第 2 支 第 3 支
DINOv2 Patch VQ-BeT (Ours) 1.00 1.00 0.85
DINOv2 CLS VQ-BeT 1.00 0.95 0.65
ResNet-18 Patch ACT 1.00 0.85 0.65
DINOv2+SigLIP Patch OpenVLA-OFT 1.00 0.85 0.60
Tool Hanging 抓起 到达挂钩 挂上
DINOv2 Patch VQ-BeT (Ours) 1.00 0.90 0.90
DINOv2 CLS VQ-BeT 1.00 0.75 0.70
ResNet-18 Patch ACT 1.00 0.85 0.85
DINOv2+SigLIP Patch OpenVLA-OFT 0.95 0.90 0.65

作者的定性诊断值得记:Cable Insertion 里 OpenVLA-OFT 经常「卡在插座附近」,说明失败是接触后的精细闭环控制,不是任务级语义理解——这正好是他们想论证的点。

Real robot rollouts Figure 4:三个真机任务的 rollout 关键帧。Cable Insertion 的容差约 2 mm,是三个任务里增益最显著也最有说服力的一个(对 ACT 0.70 vs 0.35、对 OpenVLA-OFT 0.70 vs 0.30)。

4.3 Encoder benchmark(3 seeds)

Encoder ablation Figure 5:五个预训练 encoder 在四个任务上的对比(3 seeds,BlockPush/Cube 已归一化到 [0,1])。值得注意的不是绝对高低,而是同一任务下 encoder 的相对排名在 VQ-BeT 和 DP 两个 head 之间高度一致——这暗示视觉表征质量仍是主要瓶颈,且与下游 action head 解耦。

Ours – VQ-BeT

Encoder Push-T LIBERO Goal BlockPush Cube
DINOv2 0.69 0.96 1.20 1.35
DINOv3 0.65 0.95 0.96 0.96
WebSSL 0.68 0.94 1.68 1.68
V-JEPA 2 0.65 0.86 1.46 1.36
SigLIP 2 0.51 0.83 0.99 1.17

Ours – Diffusion Policy

Encoder Push-T LIBERO Goal BlockPush Cube
DINOv2 0.81 0.98 1.25 1.24
DINOv3 0.73 0.94 1.22 1.17
WebSSL 0.80 0.98 1.65 1.73
V-JEPA 2 0.72 0.91 1.60 1.30
SigLIP 2 0.64 0.83 1.43 1.23

结论:WebSSL ≳ DINOv2 > V-JEPA 2 > DINOv3 > SigLIP 2。作者对 SigLIP 2 垫底的解释是「语义-语言对齐牺牲了几何 dense feature」。一个有价值的 meta-observation:同一任务下 encoder 的相对排名在两个 action head 之间高度一致,说明视觉表征质量仍是主要瓶颈,与下游 head 解耦。

4.4 关键消融

Attention mask(Table 7)

Mask VQ-BeT Push-T VQ-BeT Cube DP Push-T DP Cube
Full 0.64 1.09 0.83 1.10
Token-causal 0.73 1.36 0.70 0.11
Block-causal (ours) 0.70 1.38 0.83 1.24

Patch 压缩(Table 6,Push-T,conv 压缩器与 policy 联合训练)

Resolution Push-T
256 patches 0.69
64 patches 0.52
16 patches 0.53
4 patches 0.51
1 patch 0.48

模型规模(Push-T,DINOv2 ViT-S)

Method \(N\) heads \(d_{emb}\) Size Coverage
VQ-BeT 4 4 64 25.62 M 0.50
VQ-BeT 6 6 120 26.64 M 0.57
VQ-BeT 8 8 512 51.55 M 0.69
DP 4 4 64 22.77 M 0.07
DP 6 6 120 25.30 M 0.56
DP 8 4 256 40.43 M 0.83

Zero-shot 泛化(附录,基于 CAP)

Method EgoGym Pickup EgoGym Open EgoGym Close Real Franka Pickup
CAP 75.78 % 67.88 % 86.50 % 79 %
Ours 79.50 % 71.40 % 92.44 % 87 %

5. 引申问题 / 讨论

5.1 做得好的地方

  1. \(P=1\) 的向后兼容性让 baseline 对比真正干净。 这是全文最值得称道的实验设计:global-pooled baseline 和 Patch Policy 跑的是同一个 trunk、同一个 head、同一份超参搜索,唯一变量就是每帧 token 数是 1 还是 256。绝大多数「新表征 + 新架构」的论文做不到这一点,本文的 Table 1 上半部分因此是可信的。

  2. 对 token-causal 为什么坑 DP 的诊断非常锋利。 "loss 打在每个 decoder position → 靠前 position 只看到第一帧的部分 patch" —— 这解释了为什么同一个 mask 在 VQ-BeT 上几乎无差别(0.73 vs 0.70)而在 DP/Cube 上是 0.11 vs 1.24 的天壤之别。这种「差异来自 loss 落点而非 mask 本身」的分析,比单纯报个数字有用得多。

  3. 冻结 + 预计算是整套方案便宜的真正原因,而且被诚实地讲清楚了。 6.5 GPU-hours vs OpenVLA-OFT 的 16 GPU-hours,同时 trainable 参数只有 9–30 M。这不是「架构更高效」,而是「把 backbone 的成本一次性摊销掉了」——论文没有把这个功劳错记到架构头上。

  4. Goal conditioning 沿特征维拼接而不是加 token。 Goal image 编码后拼成 \(2D\) 而不是再多 \(P\) 个 token,multi-view 才走序列维。在一个序列长度已经是 \(T\times P\times \text{views}\) 的架构里,这个选择直接决定了 goal-conditioned 设定下 attention 不会再翻倍。

  5. Encoder benchmark 本身是给社区的公共品。 5 个 encoder × 4 任务 × 2 个 head × 3 seeds,而且给出了「排名跨 head 稳定」这个非平凡结论。这比论文声称的架构贡献更有长期价值——它把「选哪个 backbone」从玄学变成了有参照的工程决策。

  6. 报了一个负面结果(压缩会掉点),并且给了失败模式分析。 Table 6 和 Cable Insertion 里对 OpenVLA-OFT「卡在插座附近」的观察,都是那种能让读者判断「这个方法什么时候不 work」的信息。

5.2 做得不够好的地方 / 值得质疑的地方

  1. 摘要的 40% / 18% 无法从表里复现,聚合口径也没写。 我按 teaser 图的口径(BlockPush、Cube 除以 2 后四任务平均)精确复现了图里每一个点,得到 Ours-DP vs OpenVLA-OFT = +15.5%(摘要说 18%),Ours vs WebSSL CLS = +57.1%(摘要说 40%)。40% 大概是把增益小得多的真机套件掺进来平均了,但论文从头到尾没有说明这些 headline 数字是怎么算的——不同指标(coverage / success rate / 放对的块数)跨套件平均本身就需要交代。

  2. 「40% 提升」几乎完全由两个任务撑起来。 Push-T 上 VQ-BeT 只有 0.59→0.68,LIBERO 上还掉了 0.01(0.95→0.94)。真正的差距在 Cube(0.23→1.68,7.3×)和 BlockPush(0.77→1.68)。准确的说法应该是「global feature 在多物体精确摆放任务上完全失效,patch feature 救活了它」,而不是「patch feature 普遍好 40%」。论文正文其实承认了这点("competitive elsewhere"),但摘要和 teaser 的聚合框架把它讲成了普适增益。

  3. 真机结果在统计上区分不出主 baseline。 20 trials 的两比例 z 检验:Cable Insertion 0.70 vs 0.60 → p ≈ 0.51;Pen Collection 0.85 vs 0.65 → p ≈ 0.14;Tool Hanging 0.90 vs 0.70 → p ≈ 0.11。三个真机任务没有一个能在常规显著性水平上把 Patch 和 CLS 分开。真正显著的只有对 ACT / OpenVLA-OFT 的差距(Cable Insertion 0.70 vs 0.35 / 0.30)。真机部分没有多 seed、没有置信区间,而这恰恰是论文用来支撑「real-world precise manipulation」这一条 contribution 的证据。附录的 Real Franka Pickup(87% vs 79%,n=100)同样只有 p ≈ 0.13。相比之下 EgoGym 的 5000 episodes 是真的显著——可惜那是 sim。

  4. "We select the best-performing checkpoint for each run" = 用评测分布做模型选择。 这是 oracle checkpoint selection,会系统性抬高所有方法的数字并放大 seed 间方差。就算对所有方法一视同仁,它也让 std(±0.01 这种量级)失去意义——那是「最优 checkpoint 的方差」,不是「训练结果的方差」。

  5. 两个 patch-based baseline 都被改造过,而且都被改弱了。 ACT 被拿掉了 CVAE encoder 的 proprioception,又被加装了原本没有的 channel-stack goal conditioning,结果 BlockPush 上只有 0.15 / 2.0——远低于 ACT 正常水平,这个数字本身就该触发怀疑。OpenVLA-OFT 被放到无语言、无 proprio 的 goal-image 设定里跑,而它整个设计(parallel decoding + L1 regression + Llama-2 backbone)是为语言条件任务做的。更成问题的是:LIBERO Goal 那一格的 0.95 是直接抄原论文的,而原论文的设定是带 proprio 带语言的——同一张表里既有「按本文设定重跑」的格子又有「按原论文设定抄来」的格子,口径不一致。

  6. 全程没有 proprioception,这对一个 2 mm 容差的插入任务是很反常的选择。 "All policies receive only visual inputs" 意味着视觉特征必须同时充当机器人的本体感受器。这确实让对比更「纯粹」,但也让结论的适用范围打了折扣:真实部署几乎不会这么做,而加上 proprio 之后 global feature 的劣势可能收窄(关节角本来就编码了末端位置这个 CLS token 最容易丢的量)。论文没有讨论这个交互。

  7. 冻结 + 预计算特征 = 无法做图像增广,而这个 confound 完全没被提及。 Diffusion Policy 的标准配方里 random crop 是重要的正则项,ResNet-18 baseline 正常是带增广训的。特征一旦预计算,random crop / color jitter 就都做不了了。这既可能是本文方法被低估(没增广还这么好),也可能是 baseline 的 recipe 被破坏,但论文一个字没提。这是我最想问作者的一个问题。

  8. 被写进摘要当「核心」的 block-causal mask,实证支撑其实很薄。 Ablation 只有 2 个任务、没有 seed、没有误差棒,而且结果并不一边倒:Push-T 上 token-causal 反而赢 VQ-BeT(0.73 vs 0.70),full attention 在 DP 上打平(0.83 vs 0.83)。唯一决定性的格子是 DP/Cube 的 0.11 vs 1.24,而作者自己的解释表明那源于 DP 把 denoising loss 打在每个 position 这个实现细节——换句话说,那更像是「token-causal 会破坏 DP 的特定 loss 布局」,而不是「block-causal 是一个普遍正确的架构原则」。摘要里 "At its core is a block-causal attention mask" 的分量,超出了 Table 7 能承担的。

  9. 架构新颖性基本是继承来的,但框架写成了架构贡献。 DINO-WM(同一作、同末作)已经在用「冻结 DINOv2 patch + frame-wise causal attention」,论文自己写了 "similar to [dinowm]"。往前还有 RT-1 / Octo / PerAct / RVT / ACT 一大票吃 patch token 的 policy。这篇真正的贡献是系统的对照实验和 encoder benchmark——这很有价值,但摘要把它包装成 "a minimal architectural extension",反而低估了自己实证工作的分量、高估了架构部分。

  10. 参数量对比是苹果对橘子,而且换了个口径。 「0.7% 参数量」是 51.55 M(总) / 7.61 B(总);但按 trainable 算是 29.49 M / 177.90 M = 17%,差了 24 倍。更根本的是,OpenVLA-OFT 那 7.6 B 里绝大部分买的是语言 grounding 和跨 embodiment 预训练,而 Patch Policy 对这两样完全没有对应物——它是每个任务从头训一个 policy。「用 0.7% 的参数打赢 VLA」在 in-domain 单任务 BC 上成立,但不能读成「VLA 的参数是浪费的」。论文正文里其实说清楚了("disentangles ... from general language grounding"),是摘要的表述滑了过去。

  11. 「高频反应式控制」只对 VQ-BeT 变体成立,而 DP 变体才是精度最高的那个。 Ours-DP 的 445–452 ms ≈ 2.2 Hz,比 OpenVLA-OFT 的 61.7 ms 慢 7 倍。teaser 那个 "Fast & Effective" 箭头指着 Ours-VQ-BeT,但同一张图里精度最高的 Ours-DP 躺在延迟轴最右端。摘要"without sacrificing ... inference speed required for high-frequency, reactive control" 只覆盖了一半的结果。另外所有延迟都测在 H200 上——真机部署常见的是 Jetson 或单张消费卡,11 ms 在那上面会是另一个数量级。

  12. 压缩 ablation 的曲线形状很可疑,结论可能被过度解读。 256 → 0.69,然后 64 / 16 / 4 / 1 分别是 0.52 / 0.53 / 0.51 / 0.48 —— 64 到 1 之间几乎是平的,只有从 256 掉下来时有一个断崖。如果真是「空间分辨率决定性能」,应该看到单调渐变而不是一个台阶加一条平线。更像是那个联合训练的 conv 压缩器本身在起破坏作用(新引入的可训练模块在小数据上没训好),而不是分辨率本身。而且只有 Push-T 一个任务、单 seed。要支撑 "spatial compression degrades control performance" 这条 contribution,至少应该换一种非学习式的降采样(如 attention pooling / token pruning)做对照。

  13. 推荐的 encoder 和实际部署的 encoder 不是同一个。 仿真主结论说「用 WebSSL 或 DINOv2」,WebSSL 在 BlockPush/Cube 上明显更强(1.68 vs 1.20/1.35),但所有真机实验用的是 DINOv2 ViT-S。理由写的是「compact yet top-performing」,可以理解(ViT-L 在真机回路里太慢),但这意味着论文最强的仿真数字和最强的真机数字来自不同 backbone,两者不能连起来读。另外 DINOv3 < DINOv2 这个反直觉的结果完全没有解释。

  14. 完全没有语言条件,这限制了「可以替代 VLA」这一层叙事。 LIBERO Goal 的 10 个任务是靠 goal image 区分的。VLA 的卖点恰恰是语言指令 + 通才行为 + 跨 embodiment 迁移,这三样本文一样都没测。所以准确的结论是「在 in-domain 单任务 BC 上,冻结 patch feature + 轻量 policy 打得过微调后的 VLA」,而不是 VLA 这条路线不划算。

  15. Zero-shot 那组实验是在自己的前作上比自己。 CAP 是二作的论文,数据集、benchmark、被比的 checkpoint 全是 CAP 的。这不是问题(本来就该和自己最强的前作比),但值得注意的是这组增益是全文最小的:EgoGym +3.7 / +3.5 / +5.9 个点,真机 pickup +8 个点(p ≈ 0.13)。也就是说,一旦离开「小数据 in-domain 精确操作」这个甜区、进入大规模数据 + 泛化的场景,patch feature 的优势就明显收窄了——这可能是全文最重要但最被淡化的一个信号。

5.3 值得继续探讨的方向

  • KV cache + block-causal 的天然契合。 block-causal 意味着过去帧的 K/V 永远不会被后续 token 改变,所以推理时完全可以缓存复用,每步只算当前帧的 \(P\) 个 token。论文的 Limitations 只提了 FlashAttention,但 KV cache 才是这个 mask 结构送上门的免费午餐——理论上能把 VQ-BeT 变体的 10.99 ms 再砍掉接近 \((T-1)/T\)

  • 位置编码换成 2D + view + 时间的分解式。 现在是一条展平后的 1D learned PE,要同时编码(帧序号,视角编号,patch 的 2D 位置)三层结构。换成 factorized(2D RoPE for 空间 + learned temporal + learned view embedding)应该能提升样本效率,更重要的是能支持推理时改变视角数和输入分辨率——这对真机迭代(临时加一个相机)是刚需。

  • 把 Table 6 的问题问对:到底是分辨率还是压缩器? 用非学习式降采样(average pooling over patch grid)、attention pooling、以及 token pruning(按 attention 分数选 top-k patch)三条路重做压缩 ablation。如果 top-k pruning 能在 64 token 下保住 0.65+,那结论就从「不能压」变成「不能用 conv 压」,工程含义完全不同。

  • 加 proprio / F-T token 进同一个 block。 每帧的 block 里除了 patch token 再塞 1–2 个本体感受 token(关节角、夹爪开合、力矩),block-causal mask 不用改。这几乎是零成本的,而且能直接检验第 6 条批评——加了 proprio 之后 CLS baseline 会不会追上来。

  • DP 的精度 + VQ-BeT 的延迟。 现在最好的两个点分居 Pareto 前沿两端(86.8% @ 446 ms vs 82.5% @ 11 ms)。用 flow matching / consistency distillation 把 DP head 蒸成 1–2 步,理论上能拿到 ~86% @ ~20 ms。这大概是这条线上最直接的下一篇。

  • Patch 数 vs 性能的 scaling law。 固定 compute 预算下,是「多帧少 patch」还是「少帧多 patch」更划算?现在的超参表里 window size 从 2 到 10 不等,但没有在固定 token 预算下做过这个权衡。对真机部署这是最实际的一个旋钮。

  • 解冻最后几层 / LoRA。 论文自己列为 limitation。值得关注的具体问题是:一旦解冻,预计算特征的加速就没了,训练成本会从 6.5 GPU-hours 涨到什么量级?如果涨到 16 GPU-hours 以上,那「比 OpenVLA-OFT 便宜」的论证就同时失效了。

  • 把语言注入同一个 block。 在每帧 block 里拼一段 frozen text encoder 的 token,就能做语言条件版本,然后在 LIBERO 全套(Spatial / Object / Goal / Long)上和 OpenVLA-OFT 正面比。这是把「我们不需要 VLA」这个 claim 真正证实或证伪的唯一办法。

  • 增广的消融。 直接把「冻结预计算(无增广)」vs「冻结但在线编码(可增广)」跑一组对照,回答第 7 条。如果增广还能再涨几个点,那预计算这个加速就是有代价的,需要明码标价。

  • Cube 上到底发生了什么。 global feature 0.23 / 2.0 vs patch 1.73 / 2.0 是全文最极端的差距,值得单独做一次可视化分析(attention map、探针分类 block 位置)。搞清楚 CLS token 到底丢了什么,比再刷一个 benchmark 更有价值。


参考资源

  • 论文 PDF: paper.pdf
  • LaTeX 源码: source/
  • 项目页 / 视频: https://patch-policy.github.io
  • 关键 baseline / 相关论文:
  • DINO-WM — Zhou, Pan, LeCun, Pinto, DINO World Model(本文 block-causal trunk 的直接来源,同一作/末作)
  • DynaMo — Cui, Pan, Iyer, Haldar, Pinto, In-Domain Dynamics Pretraining for Visuo-Motor Control, arXiv:2409.12192
  • CAP — Cui et al., Contact-Anchored Policies: Contact Conditioning Creates Strong Robot Utility Models(附录 zero-shot 实验的数据与 baseline)
  • VQ-BeT — Lee, Wang, Etukuru, Kim, Shafiullah, Pinto, Behavior Generation with Latent Actions, arXiv:2403.03181
  • Diffusion Policy — Chi et al.
  • ACT — Zhao et al., Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
  • OpenVLA-OFT — Kim, Finn, Liang, Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success, arXiv:2502.19645
  • WebSSL — Fan et al., Scaling Language-Free Visual Representation Learning, arXiv:2504.01017
  • OGBench — Park, Frans, Eysenbach, Levine, arXiv:2410.20092
  • Dense Policy — Su et al., ICCV 2025(另一条 dense action 表征路线,本文引了但没比)