Skip to content
RobotWorld
返回论文库

PAPER DEEP DIVE

Patch Policydense visual representationDINOv2

Patch Policy:利用稠密视觉表征的高效具身控制

Patch Policy 提出一种轻量 Transformer 策略架构,直接消费冻结预训练 ViT 的稠密 patch 特征,避免全局池化带来的空间信息损失,也不需要亿级参数 VLM 的推理开销。其核心是 block-causal 注意力掩码:帧内 patch 全注意力,帧间严格因果,从而兼容 VQ-BeT、Diffusion Policy 等标准策略头。实验表明,在四个仿真和三个真实操作任务中,Patch Policy 相对全局特征策略平均提升 40%,并超越微调 OpenVLA-OFT 约 18%,同时参数量仅为后者的约 0.7%。

Gaoyue Zhou, Zichen Jeff Cui, Ada Langford, Bowen Tan, Yann LeCun, Lerrel Pinto2026年7月20日5 分钟阅读
EN

论文标题:Patch Policy: Efficient Embodied Control via Dense Visual Representations

作者:Gaoyue Zhou, Zichen Jeff Cui, Ada Langford, Bowen Tan, Yann LeCun, Lerrel Pinto

机构:纽约大学 Courant Institute · Meta AI · AMI Labs

论文链接arXiv:2607.18236

项目主页patch-policy.github.io

代码状态:官方仓库 gaoyuezhou/patch_policy 为占位仓库,标注 “Code will be released soon”;第三方复现 vovw/patchpol 提供 Push-T 上 DINOv2 + Diffusion Policy 的实现。

发表时间:2026-07-20

一句话总结

Patch Policy 用 block-causal 注意力把冻结预训练 ViT 的稠密 patch 特征直接送进轻量 Transformer 策略,在保留空间细节的同时获得接近 VLA 的精度,却只使用约 0.7% 的参数量。

研究背景与动机

视觉 Transformer 已经成为计算机视觉的主流骨干。ViT 把图像划分为局部 patch,并在每个 patch 位置输出稠密特征,这些特征保留了物体轮廓、接触点和细粒度几何信息。对机器人操作而言,这些信息通常比一个全局语义向量更有价值:夹取小物体、插入低容差接头、把工具挂到挂钩上,都需要精确的空间位置。

机器人策略领域长期存在两条割裂的路径。第一条路径把视觉观察压成单个全局特征,例如 ResNet 池化特征或 ViT CLS token,再交给策略网络。这类方法训练简单、推理快,但会把空间结构压缩掉,尤其影响多物体、接触和长程任务。第二条路径是微调大语言-视觉模型得到 Vision-Language-Action(VLA)模型。VLA 确实能消费 patch 级特征,但通常背负数亿到数十亿参数的生成式骨干,训练和部署成本很高。

论文提出的问题很直接:能否继承大规模视觉预训练的表征能力,却不继承亿级参数模型的推理代价?作者给出的回答是,visuomotor policies simply need dense features,即操作策略需要的不是更大的模型,而是更密的、未经全局池化破坏的视觉特征。

Patch Policy 的核心贡献是把“直接消费 patch token”这件事变成一种轻量架构选择。它不修改视觉编码器,也不修改动作头,只增加一个可作用于标准 Transformer 策略的 block-causal 注意力掩码。这样 VQ-BeT、Diffusion Policy 等已有策略头都可以直接复用。

论文在仿真和真实机器人上验证了四个结论:稠密表征优于全局特征;冻结的互联网预训练特征可以直接迁移到控制;空间压缩会损害操作性能;轻量策略可以在参数、训练成本和推理延迟上显著优于微调 VLA。

预备知识

ViT 输入一张图像后,会先生成 patch embedding。假设图像为 $o_t \in \mathbb{R}^{C \times H \times W}$,ViT 将其划分为 $P$ 个 patch,并输出形状为 $P \times D$ 的 patch 特征,其中 $D$ 是嵌入维度。传统做法只保留 CLS token 或做全局平均池化,Patch Policy 则保留所有 patch token。

策略部分涉及两类常见 Transformer 动作头。VQ-BeT 使用离散 token 化的混合分类回归目标,把连续动作建模为有限候选码的分布;Diffusion Policy 使用去噪目标,在推理时从噪声逐步恢复动作块。二者都天然接受序列输入,因此可以共享 Patch Policy 的观察主干。

动作块和 receding horizon control 也是理解本文的基础。策略不单步输出动作,而是预测未来 $H$ 步动作块,执行其中若干步后再用新的观察重新预测。这能减少高频推理压力,也便于和 Diffusion Policy 的去噪过程配合。

方法详解

观察主干:保留所有 patch 特征

Patch Policy 的第一步是使用冻结的预训练 ViT 提取 patch 特征。对每个时间步 $t$,视觉观察被编码为形状 $P \times D$ 的特征矩阵。把长度为 $T$ 的观察上下文堆叠起来,得到形状 $T \times P \times D$ 的稠密时空特征序列。

这一设计的兼容性很强。它不关心 ViT 的训练目标,不关心 patch 大小,也不要求编码器可微。只要策略能从现成模型取得 patch token,就能接入 Patch Policy。对纯状态环境或已有全局特征的环境,论文通过设置 $P=1$ 退化为标准序列建模,因此该方法与既有状态输入兼容。

目标条件同样可以表示成 token。若目标是图像,作者用同一编码器编码目标图,并与当前观察特征在特征维拼接,得到形状 $T \times P \times 2D$ 的输入。若目标是向量 $g \in \mathbb{R}^{G}$,则把向量复制到每个观察 token 上,得到 $T \times P \times (D+G)$ 的输入。

Block-causal 注意力:帧内双向,帧间因果

拿到稠密特征后,策略先把 $T \times P \times D$ 展平成长度 $T \times P$ 的序列,再加入可学习的 1D 位置编码。问题是,如果直接使用标准 token-level causal mask,每个 patch 会被当作独立时间步,同一帧内的空间信息无法互相整合;如果使用 full attention,当前帧又会看到未来帧,破坏策略的时间因果性。

论文用 block-causal mask 解决这一矛盾。掩码允许同一帧内的任意两个 patch 相互注意,同时只允许当前帧注意过去帧,不允许注意未来帧。用公式表达,若第 $i$ 个 token 属于帧 $t$,第 $j$ 个 token 属于帧 $s$,则注意允许条件为 $s \le t$。

在这种掩码下,帧内 patch 可以交换空间信息,例如把物体位置、形状和接触线索整合成完整的局部描述;帧间则保持策略的因果结构。策略在每个帧的最后一个 patch token 位置读出动作表示,该 token 已经看到当前帧全部空间信息以及所有历史帧。

flowchart TB
    A["Image observation"] --> B["Frozen pretrained ViT"]
    B --> C["Dense patch features T x P x D"]
    C --> D["Flatten + learned 1D position embedding"]
    D --> E["Block-causal transformer"]
    E --> F["Per-frame readout at last patch token"]
    F --> G["VQ-BeT or Diffusion Policy head"]
    G --> H["Action chunk with receding horizon control"]

策略学习与推理

训练时,Patch Policy 把观察上下文喂给主干,在每个帧的读出位置预测动作块,并计算与真实动作的损失。VQ-BeT 使用其混合分类回归损失,Diffusion Policy 使用噪声预测的均方误差。由于动作头本身不变,Patch Policy 可以看作一种观察编码层的替换,而不是新训练目标。

推理时,策略维护一个长度为 $T$ 的滚动观察窗口。每来一帧新观察,就提取 patch 特征、拼入窗口,预测动作块,执行部分动作后再滚动。这种做法让模型保持闭环比基线更简单:只需要维护特征序列,不需要维护隐状态。

作者强调,这种方法与动作块长度解耦。用户可以在保持相同观察主干的情况下选择 VQ-BeT 或 Diffusion Policy,也可以把全局状态与 patch 特征拼接。实验表明两种动作头都从稠密 patch 特征中稳定获益。

代码与可复现性

官方仓库当前只有 README、方法图和 demo 视频,代码尚未发布。README 明确写有 “Code will be released soon. Stay tuned!”。因此详情页以官方状态为准,并参考社区复现项目来检查核心机制。

第三方复现 vovw/patchpol 在 Push-T 上实现了 DINOv2 ViT-S/14 + Diffusion Policy。其 block-causal mask 与论文描述一致:同一帧 patch 之间可以互相注意,未来帧被屏蔽。核心函数位于 patchpol/model.py 的第 15-22 行。

def block_causal_mask(T: int, P: int) -> torch.Tensor:
    """(T*P, T*P) bool matrix. mask[i, j] = True <=> token i MAY attend to j."""
    frame = torch.arange(T).repeat_interleave(P)
    return frame[None, :] <= frame[:, None]

该复现还在 PatchTrunk 的 forward 中直接返回每个帧最后一个 patch token 的读出,对应论文“在每帧最后一个 patch token 处输出动作”的设计。源码位于 patchpol/model.py 第 79-86 行。

def forward(self, feats: torch.Tensor) -> torch.Tensor:
    B, T, P, D = feats.shape
    x = feats.flatten(1, 2) + self.pos_emb
    for blk in self.blocks:
        x = blk(x, self.mask)
    x = self.norm(x)
    return x[:, P - 1 :: P]

特征提取部分也符合论文的冻结设定。features.py 加载 DINOv2 后调用 requires_grad_(False),再从 forward_features 的结果中取 x_norm_patchtokens,把 256 个 384 维 patch token 写入 zarr。复现者在 Push-T 上报告 final coverage 0.772,论文 Table 13 的 Push-T 目标为 0.83,差距约 0.06,主要来自终端保持而非学习失败。

实验分析

仿真实验

实验覆盖 Push-T、LIBERO Goal、BlockPush 和 Cube 四个环境,动作空间从 2 维到 7 维,指标分别是覆盖率、成功率以及平均放置物体数。所有策略只使用视觉输入。表 1 展示 WebSSL patch 特征下两种动作头与全局特征基线、OpenVLA-OFT 的对比。

方法Push-TLIBERO GoalBlockPushCube
WebSSL Patch + VQ-BeT(Ours)0.680.941.681.68
WebSSL Patch + Diffusion Policy(Ours)0.800.981.651.73
WebSSL CLS + VQ-BeT0.590.950.770.23
OpenVLA-OFT0.590.951.431.50

最明显的差距出现在 BlockPush 和 Cube。Patch Policy 的 WebSSL patch 表示把 BlockPush 从 CLS 的 0.77 提升到 1.68,把 Cube 从 0.23 提升到 1.68。这说明多物体、多阶段任务对空间分辨率的依赖远高于单一语义判断。OpenVLA-OFT 也使用 patch 特征,但 Patch Policy 用更轻的骨干在四个环境上全面胜出。

图 1 给出了方法总览,图 3 展示四个仿真和三个真实环境,图 5 比较五种预训练视觉表征。作者报告 DINOv2 和 WebSSL 的平均表现最高,SigLIP 2 偏弱;这与其强调几何细节而非语言语义的判断一致。

Patch Policy 方法总览

图 1:Patch Policy 在保持轻量参数和低延迟的同时,用稠密 patch 特征超越全局特征策略。

真实机器人任务

真实实验使用 7 自由度 Franka 机械臂和并行夹爪,覆盖 Cable Insertion、Pen Collection、Tool Hanging 三个任务,分别考验低容差插入、长程小物体收集和接触丰富的工具挂放。每项 20 次试验,表 2 列出累计阶段成功率。

任务方法阶段 1阶段 2阶段 3
Cable InsertionOurs VQ-BeT1.000.850.70
Cable InsertionOpenVLA-OFT1.000.550.30
Cable InsertionACT1.000.400.35
Pen CollectionOurs VQ-BeT1.001.000.85
Pen CollectionOpenVLA-OFT1.000.850.60
Tool HangingOurs VQ-BeT1.000.900.90
Tool HangingOpenVLA-OFT0.950.900.65

Cable Insertion 是最能说明问题的一项:所有方法都能拾起电缆,但 Patch Policy 的完全插入率达到 0.70,OpenVLA-OFT 只有 0.30。论文指出 OpenVLA-OFT 常卡在插座附近,说明失败主要来自接触后的细粒度闭环控制,而不是任务级语义理解。图 4 展示了真实 rollout 的关键阶段。

真实机器人 rollout

图 4:Cable Insertion、Pen Collection 和 Tool Hanging 的真实 rollout 阶段。

效率与压缩

表 3 比较总参数、可训练参数和 H200 单次前向延迟。Patch Policy 的 DINOv2 VQ-BeT 版本总参数 51.55M、可训练参数 29.49M、延迟 10.99 ms;Diffusion Policy 版本总参数 40.43M、可训练参数 9.19M、延迟 445.85 ms。OpenVLA-OFT 总参数 7.61B,延迟 61.71 ms。训练上,Patch Policy 用 6.5 GPU-hours,OpenVLA-OFT 用 16 GPU-hours,ACT 用 24 GPU-hours。

表 4 的压缩实验显示,把 256 个 patch 压缩到 64、16、4 或 1 个时,Push-T 覆盖率分别降到 0.52、0.53、0.51、0.48,而保留 256 patch 时达到 0.69。作者用轻量卷积编码器端到端学习压缩,但结果说明原始空间密度本身对精确控制很重要。对硬件受限的部署,压缩仍是可接受折衷。

预训练视觉表征对比

图 5:五种预训练视觉表征下的 Patch Policy 对比。

讨论

Patch Policy 最有价值的结论是,视觉表征质量可以独立于模型规模被利用。当前社区常把“更强的 VLA”等同于“更大的骨干”,但本文证明冻结 ViT 的 patch token 已经携带足够空间语义,缺的只是让轻量策略直接消费这些 token 的接口。

从方法学看,block-causal 掩码是对“token 序列”这一抽象的重定义。它把空间维度和时间维度分开处理:空间维度全连接,时间维度因果。这种设计对多视角、多 patch 观察尤其自然,也为未来把更多传感器 token 加入策略序列提供了模板。

该工作的边界也很清楚。它主要适用于行为克隆设置,没有证明在强化学习或在线数据收集中的表现;它依赖现成编码器的 patch 分辨率,因此当任务需要更高频或更低成本推理时,仍需在密度和速度之间权衡。

局限性

作者自述的第一项局限是只使用冻结视觉骨干。论文没有端到端微调编码器,因此无法判断在专用视觉域中自适应特征是否能进一步提升性能。这对任务分布与预训练分布差异较大的场景尤其重要。

第二项作者自述局限是稠密 token 会增加序列长度和训练时间。作者建议 FlashAttention 等优化来缓解。第三方复现也印证了这一点:block-causal 掩码会让 PyTorch 的 fused attention 退回到数学路径,显存和速度都需要额外处理。

第三项作者自述局限是方法仅在行为克隆中验证,尚未扩展到强化学习。除了这三点,真实实验每项只有 20 次试验,且部分基线被论文为保持一致性做了修改,例如去掉 ACT 的 proprioception 输入。这些改动有助于公平对比视觉表征,但可能不能完全代表原方法在完整输入下的最佳表现。

总结与展望

Patch Policy 用最少的架构改动回答了具身学习中的一个关键问题:如何在不打开亿级 VLM 的情况下使用互联网预训练的稠密视觉特征。冻结 ViT、block-causal 注意力、标准动作头三者组合,让策略在参数、训练时间和推理延迟上都保持轻量,同时在精确操作任务上取得接近或超过 VLA 的效果。

未来方向包括端到端微调视觉骨干、用 FlashAttention 压缩长 token 成本、把该架构扩展到强化学习,以及在更多真实硬件和任务上验证。若官方代码发布,社区复现可以进一步校准实现细节,例如 Diffusion Policy 的 trunk 规模、调度器和每帧读出策略。

“操作策略需要的不是更大的模型,而是更密的视觉特征;Patch Policy 用一次注意力掩码的改动,把空间细节重新还给了轻量机器人策略。”