

LAPA 论文精读:从无动作标签视频学习 Vision-Language-Action 模型
精读 LAPA:用 VQ-VAE 从相邻视频帧学习离散 latent action,再让 VLM 预测它,最后用少量机器人动作标签完成真实控制映射。
LAPA 先从无动作标签视频中学习离散 latent action,再让 VLM 预测 latent action,最后用少量机器人轨迹把它映射成真实动作;它在跨 embodiment 与真实机器人泛化上超过了动作标签预训练的强基线。
1. 论文概述#
【Paper】《Latent Action Pretraining from Videos》提出 LAPA(Latent Action Pretraining for general Action models)。它针对一个很现实的瓶颈:机器人视频往往只有昂贵的 teleoperation 才能得到 action label,而互联网上的大量人类操作视频只有图像和语言,没有机器人末端位姿、关节或力矩标签。
论文把“动作”拆成一个可从视频自监督学习的中间语言:先用两帧图像学习离散 latent action,再让 Vision-Language Model(VLM)根据当前图像和任务描述预测这个 latent action,最后只用少量带真实动作的机器人轨迹重新训练 action head,把 latent policy 迁移到可执行的机器人动作空间。

一句话总结#
【Paper】 LAPA 用 image delta → discrete latent action → robot action 的三级接口替代了“所有预训练视频都必须带机器人动作标签”,从而可以把机器人视频和人类操作视频放进同一个预训练框架。
核心贡献#
【Paper】
- 提出不依赖 ground-truth robot action 的 Latent Action Pretraining,并将训练拆成 Latent Action Quantization、Latent Pretraining 和 Action Finetuning 三个阶段。
- 用 VQ-VAE/NSVQ 从相邻帧的视觉变化中学习离散 codebook;latent action 不预先规定是 end-effector、joint 还是 torque,而是由视频中的观测变化决定粒度。
- 在 Language Table、SIMPLER 和 Franka 真实机器人上验证跨任务、跨环境、跨 embodiment 泛化;LAPA(Open-X)真实任务平均成功率达到 50.1%,高于 OpenVLA(Open-X)的 43.9%。
- 证明只用 Something-Something V2 人类操作视频也能带来正迁移:在真实机器人上平均成功率 34.0%,超过 OpenVLA(Bridge)的 30.8%。
- 【Paper】 LAPA(Open-X)预训练使用 8 张 H100、34 小时,作者估计相对 OpenVLA 约 30–40 倍更高效;这是训练效率的报告,不等同于总研究成本。
2. 背景与相关工作#
【Paper】 RT-1、RT-2、OpenVLA 等 VLA 通常把连续机器人动作离散成 token,然后用 next-token prediction 训练。这个范式在动作标签丰富时有效,但有两个规模限制:
- teleoperation 产生动作标签的速度远低于互联网视频的增长速度;
- 不同机器人、相机坐标系和控制频率有不同 action representation,直接混合标签会把 embodiment 差异带进策略输出空间。
已有的无标签视频路线大致分成三类:只预训练视觉表示、先生成未来视频再用 inverse dynamics model(IDM)恢复动作、或从人手姿态/轨迹中做 human-to-robot retargeting。【Paper】 LAPA 的区别是:它不把无标签视频只当作视觉预训练数据,也不要求先估计人手关键点,而是直接学习“当前观测到未来观测之间发生了什么”,再让 VLM 对这种变化做行为克隆。
【Analysis】 LAPA 的关键取舍是把动作监督从“物理坐标”后移到 fine-tuning 阶段。这样预训练阶段获得了更统一的接口,但 latent action 也可能混入相机运动、物体运动甚至视频剪辑造成的变化;因此它更像一个 environment-centric transition token,而不是天然等价于机器人控制量。
3. 问题定义#
【Paper】 给定视频中的当前帧 、未来帧 和语言任务描述 ,LAPA 学习三种映射:
- Latent Action Quantization(LAQ):,把帧间变化编码成离散 latent action。
- Latent Policy:,VLM 根据当前观察和任务描述预测 latent action。
- Action Finetuning:,用少量真实机器人动作标签训练新的 action head。
论文主实验的 latent code 默认是 个 token、每个 token 来自大小为 的 codebook,因此单个时间步的输出空间是 ;官方 README 也明确提醒,这个输出不是可以直接发送给机械臂的真实 action space。
【Paper】 主要 embodiment 与数据如下:
| 项目 | 设置 |
|---|---|
| 语言与视觉输入 | 当前 RGB 帧 + 视频/任务语言描述 |
| 真实动作 | fine-tuning 时为离散化的 delta end-effector action |
| 仿真 | Language Table、SIMPLER |
| 真实机器人 | 7-DoF Franka Emika Panda |
| 预训练来源 | Bridgev2、Open-X Embodiment、Something-Something V2 |
| 评测能力 | in-domain、cross-task、cross-environment、cross-embodiment、unseen object、unseen instruction |
4. 方法#
4.1 Overall Architecture#

【Paper】 整体数据流是:相邻视频帧先经过 LAQ encoder 得到离散 ;VLM 再以当前帧和语言描述为条件预测 ;fine-tuning 时替换 latent head,用带标签轨迹学习真实 action head。LAQ 的 decoder 还可以把 latent action 解码回下一帧,用于可视化和 neural closed-loop rollout。
4.2 核心模块#
Latent Action Quantization Model#
- 输入:当前帧 与固定窗口 后的帧 。
- 中间模块:两帧共享 patch embedding;encoder 先做 spatial Transformer,再做 temporal Transformer;差分表示进入 NSVQ codebook;decoder 用当前帧 token 通过 cross-attention 读取 latent action。
- 输出:离散 latent token 序列 ,以及重建帧 。
- 为什么需要:直接把连续像素变化交给 VLM 难以生成;离散 codebook 把“动作词表”变成标准分类/next-token prediction 问题。

【Paper】 论文对 GENIE 的改动包括:只使用当前帧和未来帧(不拼接更多历史帧),decoder 用 cross-attention 而不是简单相加 latent embedding,并采用只对两帧做输入的 C-ViViT 风格结构。【Code】 laq/laq_model/latent_action_quantization.py 中确实实现了 enc_spatial_transformer、enc_temporal_transformer、带 context 的 dec_spatial_transformer 和 NSVQ;laq/laq_model/data.py 当前数据加载器按“每个轨迹目录包含多张帧图像”的 Something-Something V2 结构取随机起始帧和 offset 帧。
Latent Pretraining VLM#
- 输入:当前图像、语言指令,以及 LAQ encoder 为视频帧生成的 latent token 标签。
- 输出: 个 codebook token。
- 中间模块:以预训练 LWM-Chat-1M-Jax 7B 为 backbone,保留视觉 encoder,训练 language model,并接一个 vocab size 为 的 latent action head。
- 为什么需要:VLM 负责学习“任务语义 + 当前视觉状态 → 下一步视觉变化”,而不被某一种机器人坐标系绑定。
【Paper】 默认冻结 vision encoder、解冻 language model。【Code】 latent_pretraining/train.py 用 --modality='vision,text,delta' 进入 latent 预训练分支,scripts/latent_pretrain_openx.sh 设置 delta_vocab_size=8、n_tokens_per_delta=4、batch size 256、总步数 70,000。
Action Finetuning Head#
- 输入:相同的图像与任务 prompt。
- 输出:真实机器人 action token。
- 做法:丢弃 latent action head,换成 action head;对连续 action 的每个维度做等频分箱(equal-frequency discretization),再用带动作标签的轨迹训练。
- 关键取舍:作者尝试过保留 latent head、额外增加 latent-to-action decoder,但重新初始化 action head 的结果更好。【Analysis】 这说明 latent pretraining 主要把控制相关的视觉—语言表征写入 backbone,而不是要求 latent token 与最终物理动作一一对应。
4.3 关键公式#
VQ-VAE / NSVQ 量化#
设 encoder 产生连续差分表示 ,codebook 为 ,量化结果为:
其中 是被 VLM 预测的离散 token, 是 token 序列长度, 是每个位置可选的词表大小。【Paper】 NSVQ 用带归一化噪声的量化误差替换原始 VQ 误差,并在训练早期替换未使用 codebook,以降低 codebook collapse;decoder 的输入帧 patch embedding 使用 stop-gradient,避免表示塌缩。
重建目标#
其中第一项要求 latent action 保留足以重建未来帧的视觉变化,第二项约束连续 embedding 与 codebook 的量化关系。论文没有把所有 NSVQ 实现项展开成一个统一闭式公式,具体权重以官方实现为准。
Latent Pretraining 交叉熵#
是第 个 codebook token; 来自 VLM 的 latent action head。这个目标本质上是 behavior cloning,只是监督信号从人工 action 换成 LAQ encoder 生成的 pseudo label。
Action Finetuning#
其中 是机器人 action 维度, 是第 维连续动作经过等频分箱后的类别。【Paper】 论文将动作离散化以匹配 OpenVLA/RT-1 风格的 action token 训练;真实值在部署时通过数据集统计量反量化。
4.4 Training#
【Paper】 训练是顺序进行的,而不是把真实 action 和 latent action 同时端到端学习:
- 在无动作标签视频上训练 LAQ,使其能从 产生稳定的离散 latent action。
- 用冻结的 LAQ encoder 给所有预训练帧打 latent label,训练 7B VLM 预测这些 token。
- 在小规模 action-labeled robot trajectories 上替换 latent head,训练真实 action head。
【Code】 官方命令把三个阶段分开:laq/train_sthv2.py 训练 LAQ;laq/inference_sthv2.py 生成 latent labels;scripts/latent_pretrain_openx.sh 以 LWM checkpoint 继续训练;scripts/finetune_real.sh 以 vision,action,delta modality 做机器人动作 fine-tuning。README 报告 Open-X latent pretraining 使用 8 张 H100、34 小时,batch size 256;真实 fine-tuning 脚本默认 4 张 GPU、2000 steps、batch size 128。
- Stage 1
从随机采样的 训练 LAQ,量化帧间差分并重建
- Stage 2
用训练好的 LAQ encoder 为预训练视频生成 pseudo labels
-
输入 和语言指令 ,用 VLM latent action head 预测 ,计算 token-level loss
- Stage 3
丢弃 latent action head,在少量机器人轨迹上替换为真实 action head
-
对每个连续 action 维度等频分箱,计算 action token loss 并更新 backbone 与新 head
- return
完成 latent pretraining 和 action finetuning 的 VLA checkpoint
4.5 Inference#
【Code】 官方 latent_pretraining/inference.py 的基础推理输入是一张 uint8 RGB 图像和自然语言指令,返回 latent action;README 明确指出该输出空间默认为 ,不能直接驱动机器人。完成 action fine-tuning 后,部署脚本再加载 action checkpoint 和数据集 action scale 文件,把 action token 反量化为真实 delta end-effector 动作。
【Paper】 论文还展示了一个不需要真实 action head 的 neural closed-loop:LAPA 预测 latent action,LAQ decoder 根据当前帧和该 latent action 生成下一帧,再把预测帧反馈给下一轮。这是世界模型式的定性验证,不是论文的真实机器人控制评测协议。
- 将图像 resize/normalize,并按训练 prompt 模板拼接任务描述
- VLM 根据 自回归生成 个 latent/action tokens
-
若是预训练模型,返回 ;若是 fine-tuned 模型,取 action head 的离散 action token
-
把 action token 按训练时的 q01/q99 或等频 bin 统计量反量化为连续动作
-
将当前动作交给机器人低层控制器;或把 送入 LAQ decoder 生成下一帧并闭环迭代
- return 执行动作 / 神经 rollout 帧序列
4.6 代码实现对照#
【Code】
| 论文概念 | 官方代码位置 | 实际行为 |
|---|---|---|
| LAQ encoder-decoder | laq/laq_model/latent_action_quantization.py | spatial + temporal Transformer 编码,NSVQ 量化,cross-attention decoder 重建未来帧 |
| LAQ 数据 | laq/laq_model/data.py | 从轨迹目录中随机选帧,并按 offset 取未来帧;默认数据结构针对 Sthv2 |
| Latent label 生成 | laq/inference_sthv2.py | 用训练好的量化模型为 jsonl 样本写入离散视觉/latent token |
| Latent VLM 训练 | latent_pretraining/train.py | vision,text,delta modality,delta vocab 默认 8 |
| Robot action fine-tuning | scripts/finetune_real.sh | vision,action,delta modality,action vocab 默认 256,读取预处理后的 jsonl |
| 推理 | latent_pretraining/inference.py | 返回 latent action,不自动完成真实动作映射 |
| 部署 | latent_pretraining/deploy.py | 加载 fine-tuned checkpoint 与 action scale 文件,输出可执行动作 |
【Analysis】 代码和论文之间最容易误读的地方是“LAPA 是否已经是机器人 policy”:严格来说,latent-pretrained checkpoint 还是一个 latent policy;只有 action fine-tuning 后,输出才进入机器人的离散 action vocabulary。这个两阶段接口正是它能跨 embodiment 预训练的原因,也是部署时必须额外准备少量动作标签的原因。
5. 实验#
5.1 Experimental Setup#

【Paper】 实验覆盖三类问题:
- Language Table:2-DoF 推块仿真,测试 in-domain、cross-task 和 real-to-sim cross-environment。
- SIMPLER:7-DoF WidowX 仿真,4 个任务;使用 100 条 fine-tuning trajectories,重点考察复杂动作空间下的迁移。
- Real-world tabletop:7-DoF Franka,
Pick <object> into Sink、Cover <object> with Towel、Knock <object> Over三类任务,每类 15 个物体、150 条轨迹;每个模型共 54 次 rollout,分别测试已见物体的新组合、未见物体、已见物体但未见指令。
比较方法包括只在下游训练的 Scratch、视频扩散 + IDM 的 UniPi、用 IDM 伪标签的 VPT、使用真实动作标签预训练的 ActionVLA,以及 OpenVLA。
5.2 Main Results#
【Paper】 Language Table 的平均成功率如下(%):
| 设置 | Scratch | UniPi | VPT | LAPA | ActionVLA |
|---|---|---|---|---|---|
| In-domain / seen | 15.6 | 22.0 | 44.0 | 62.0 | 77.0 |
| In-domain / unseen | 15.2 | 13.2 | 32.8 | 49.6 | 58.8 |
| Cross-task / seen | 27.2 | 20.8 | 72.0 | 73.2 | 77.0 |
| Cross-task / unseen | 22.4 | 16.0 | 60.8 | 54.8 | 58.8 |
| Cross-env / seen | 15.6 | 13.6 | 18.0 | 33.6 | 64.8 |
| Cross-env / unseen | 15.2 | 12.0 | 18.4 | 29.6 | 54.0 |
【Analysis】 LAPA 并非所有列都达到上限:在 cross-task unseen 上 VPT 更高,说明更准确的 IDM 伪标签仍然有价值。但 LAPA 在跨环境列的优势更明显,符合“latent action 不绑定某个具体 action coordinate system”的设计目标。
【Paper】 SIMPLER 的 Bridgev2 预训练平均成功率为:Scratch 34.4、UniPi 1.3、VPT 51.0、LAPA 57.3、ActionVLA 63.5、OpenVLA 36.4。LAPA 在没有使用 Bridgev2 action label 的前提下接近 ActionVLA,并显著超过其他无标签视频基线。
真实机器人结果的关键汇总:
| 预训练 | Seen object / unseen combo | Unseen object | Unseen instruction | 平均 |
|---|---|---|---|---|
| OpenVLA (Bridge) | 35.6 | 34.6 | 22.1 | 30.8 |
| LAPA (Bridge) | 43.4 | 31.4 | 35.6 | 36.8 |
| OpenVLA (Open-X) | 46.2 | 42.1 | 43.4 | 43.9 |
| LAPA (Open-X) | 57.8 | 43.9 | 48.5 | 50.1 |
| LAPA (Human Videos) | 36.5 | 37.4 | 28.1 | 34.0 |
【Paper】 LAPA(Open-X)在三种泛化设置都超过 OpenVLA(Open-X);但在 pick-and-place 的早期 grasping 上仍可能失败,OpenVLA 在该子任务更强。论文报告 LAPA 的 reaching performance 为 83.33%,高于 OpenVLA 的 66.67%。
5.3 Ablation Study#

【Paper】 消融显示三类 scaling 都有收益:
- 增大 LAQ model 参数量,SIMPLER 成功率上升;
- 增加预训练数据比例,性能持续提升;
- 扩大 latent action 的 sequence length 或 vocabulary,通常能提高下游成绩。
但 latent space 的最佳形状取决于数据中的动作复杂度:Language Table 这类视觉简单、动作维度低的环境,扩大 vocabulary 比扩大 sequence length 更有效;对于更复杂的行为,增加 sequence length 才有更多表达空间。窗口 过大时性能下降,因为 300M 规模的 LAQ 难以建模很大的视觉 delta。
5.4 Generalization#

【Paper】 在 Language Table 中,不同 latent token 对应左/右、前/后等稳定移动方向;在 Something-Something V2 中,latent action 还会编码相机移动;在 Open-X 多 embodiment 数据上,相同 latent action 在不同机器人和环境中能诱导相似的视觉变化。
【Paper】 人类视频预训练并非只在仿真有效:LAPA(Sthv2)在 SIMPLER 平均成功率 52.1%,高于 UniPi 0.7%,也高于 VPT 45.8%;真实机器人平均 34.0%,说明“人类手部操作视频 → 机器人 manipulation prior”确实存在正迁移。
6. 方法分析#
6.1 为什么有效?#
【Analysis】 LAPA 的有效性可以拆成三个层面:
- 表示层:VQ codebook 把连续视觉变化压缩成可预测 token,让 VLM 能用成熟的 token prediction 学动作先验。
- 迁移层:latent action 主要描述“观测如何变化”,而不是 WidowX 或 Franka 的绝对关节坐标,因此跨 embodiment 时少了一层 action-space overfitting。
- 数据层:LAQ 只需要两帧,预训练数据从“有 action label 的机器人轨迹”扩展到任意带时间顺序的视频;视频规模和物体多样性直接转化为 policy 的先验。
6.2 核心创新#
【Paper】 真正的创新不是单独使用 VQ-VAE,也不是单独使用 VLM,而是把“从未来帧反推 latent action”和“根据任务预测 latent action”串成一个可 fine-tune 的接口。这个接口同时扮演 pseudo action label、跨 embodiment 中间表示和 world model control token 三个角色。
6.3 与已有方法的本质区别#
| 方法 | 无标签视频如何变成监督 | 是否绑定 embodiment | 预训练输出 |
|---|---|---|---|
| UniPi | 生成未来视频,再用 IDM 解码动作 | IDM/动作解码器仍受数据集影响 | 视频计划 |
| VPT | 用动作标签训练 IDM,再给无标签视频打伪动作 | 依赖 IDM 的 action space | 伪 action |
| ActionVLA | 直接使用真实 robot action label | 强绑定预训练 embodiment | 真实 action token |
| LAPA | LAQ 从帧间变化直接学习 codebook | latent space 更接近共享 transition space | latent action token |
6.4 关键假设#
【Analysis】 LAPA 至少依赖以下假设:
- 相邻帧之间的视觉变化包含足够的任务相关动作信息;
- 同一个 codebook 可以在不同 embodiment 中表示可迁移的 transition;
- 少量 fine-tuning 数据足以把 latent policy 对齐到目标机器人的物理动作;
- 视频中的语言描述与视觉变化大体对应,而不是完全由剪辑、相机运动或旁观者行为主导。
7. 局限性#
7.1 作者明确提出的局限#
【Paper】 作者明确指出:
- LAPA 在 fine-grained grasping 等精细运动上弱于直接 action pretraining,可能需要扩大 latent action generation space。
- 与其他 VLA 一样,真实机器人实时推理仍有 latency;作者建议未来采用更高频的小型 hierarchical action head。
- 虽然观察到 latent action 能表示相机运动,但论文尚未系统探索导航、自动驾驶或非 manipulation 场景。
7.2 自己分析得到的局限#
【Analysis】
- LAQ 的监督是未来图像重建,因此一个 token 可能同时解释机械臂运动、物体运动、相机运动和遮挡变化,语义不一定是可执行 action。
- 当前公开的
ImageVideoDataset针对 Sthv2 目录结构,且随机采样轨迹目录而不是精确的 frame-level episode index;换数据集需要自行改 loader。 - latent pretraining 与 action fine-tuning 是顺序训练,fine-tuning 会替换 latent head;如果目标机器人与预训练视频差异很大,少量标签可能不足以恢复接触动力学、抓取姿态和夹爪时序。
- 论文的 real-world 结果使用 partial success criteria,平均分能够反映泛化趋势,但不能完全等价于端到端任务完成率。
8. 启发与研究思考#
【Analysis】 LAPA 给后续工作留下了三个清晰方向:
- 从 transition token 到 hierarchical action language:当前 latent space 对粗粒度移动有效,但抓取仍不够细。可以让高层 latent token 表示技能阶段,让低层 action decoder 负责接触和力控制。
- 把 camera-centric latent 与 robot-centric latent 分离:人类视频中的相机移动是有用信号,也可能是噪声。显式分解 object motion、camera motion 和 agent motion,可能让跨场景迁移更稳定。
- 利用 decoder 做 test-time planning:论文已经展示 latent policy + LAQ decoder 的 neural rollout。下一步可以采样多个 latent plan,用视觉目标判别器或语言评分器筛选,再执行最有希望的候选轨迹。
- 扩大到互联网视频前先解决数据质量:真正的 YouTube-scale 训练需要过滤剪辑、镜头切换、第三视角与手持相机运动,并构建语言描述与帧窗口的可靠对齐。
LAPA 最值得借鉴的并不是“把 action 离散成 8 个 codebook”,而是它重新定义了预训练的最小监督单位:只要视频能说明“状态发生了变化”,就可以先学习一个中间动作语言;物理可执行性则留到目标 embodiment 的小规模 fine-tuning 再解决。