LA4VLA: Learning to Act without Seeing via Language-Action Pretraining · 2026 · PDF 核对 + GitHub 发布状态核对
LA4VLA 的核心不是“多造 33K 数据”,而是提出一个训练范式:先让 policy 在没有视觉输入的情况下学习 language-conditioned action priors,再接回视觉做 VLA。它要解决的是标准 VLA 训练中视觉 token 太强、语言动作监督太弱,导致模型依赖视觉捷径而不是听指令。
/home/chenzhiyuan/projects/paper/2026-LA4VLA/LA4VLA.pdf;论文首页项目页 https://github.com/MINT-SJTU/LA4VLA 已克隆到 /home/chenzhiyuan/projects/LA4VLA,当前只有 README 标题,未发布实质代码。本页代码部分明确区分“已发布代码”与“按论文可复现的模块设计”。| 项 | 内容 |
|---|---|
| 核心瓶颈 | 标准 VLA 训练把 dense visual-action supervision 和 sparse language instruction 绑定在一起;视觉 token 数量多、变化密集,语言信号容易被稀释。 |
| 核心方法 | 从 DROID 轨迹切出 atomic language-action episodes,去掉视觉,只保留 instruction + state + action trajectory 进行 LA pretraining。 |
| 数据 | LA-33K:从 9,560 个 DROID episodes 生成 56,899 候选,人工验收保留 33,116 个 atomic LA episodes。 |
| 模型 | LA4VLA-1B:InternVL3-1B + flow matching action head。 |
| 训练范式 | Base、LA、VLA、LA-VLA、MixPT 五种路线;MixPT/LA-VLA 效果最好。 |
| 实验 | MetaWorld 87.53,LIBERO 96.28,真机 MixPT 83.3,视觉噪声 MixPT 70.0。 |
| 代码 | 截至本次核对,官方 GitHub 为空壳仓库;无法做真实逐行代码映射。 |
标准 VLA 数据是 (visual observation, language instruction, state) → action。问题是视觉每帧都变、token 多、与动作有强相关;语言 instruction 通常只有一句,且在整段轨迹中不变。于是模型可能学到“看到这个局面就做这个动作”,但没有真正学“这句语言如何约束动作”。
| 信号 | 标准 VLA 中的地位 | 风险 |
|---|---|---|
| 视觉 | 高维、dense、每步变化、token 多 | 模型依赖视觉场景捷径,遇到相机/背景/目标变化就不稳。 |
| 语言 | 低频、稀疏、常常整条轨迹同一句 | 语言动作关系被视觉动作关系淹没。 |
| state | 低维但和动作强相关 | 可能进一步替代语言,变成 state-action matching。 |
论文设计四种输入条件:原始视觉、去视觉、视觉不对齐、视觉冲突。保持 instruction 不变,替换或遮掉视觉,检查预测轨迹方向是否仍跟随语言。
| 输入条件 | 含义 | 诊断目的 |
|---|---|---|
| (L, V) | 原始 instruction + 原始视觉 | 标准 VLA 表面上是否动作正确。 |
| (L, ∅) | instruction + masked visual | 去掉视觉后还会不会按语言方向走。 |
| (L, Ṽ) | instruction + 不匹配视觉 | 检查动作是否随视觉变化而偏移。 |
| (L, V−) | instruction + 冲突方向视觉 | 强测模型到底听语言还是听视觉。 |
结果显示:标准 VLA 在原始视觉下看似能跟随指令,但视觉被移除/替换/冲突时,动作方向显著偏移。这为 LA pretraining 提供了动机。
LA-33K 不是重新采集的新机器人数据,而是从已有 DROID demonstration 中重构出的 atomic language-action 数据。每个 episode 不含视觉输入,只有 vision-agnostic instruction、robot states 和对应 action trajectory。
| 阶段 | Episodes | Frames | Frames/Ep |
|---|---|---|---|
| Original VLA episodes | 9,560 | 2,751,615 | 287.83 |
| VLM-generated LA candidates | 56,899 | 2,551,102 | 44.84 |
| Final human-verified LA episodes | 33,116 | 1,524,990 | 46.05 |
这使语言监督从“整条长轨迹一句话”变成“短 atomic segment 一句局部动作指令”,语言-动作对齐密度显著提高。
| 上下文 | 类别 | 含义 |
|---|---|---|
| Object manipulation | grasp / place / lift / lower / transport / wrist_rotate / reorient | 围绕抓取物体后的移动、放置、举起、旋转等。 |
| Contact interaction | push / pull / press | 不一定抓住物体,而是通过接触改变物体或按钮状态。 |
| Free-space motion | move / rotate_free / reorient_free | 空手自由空间移动和姿态调整。 |
LA4VLA 先从 robot state 里抽 temporal hints:低运动量区间通常是对齐、抓取、放置、阶段切换;夹爪 open/close 变化通常是 grasp/release。
state trajectory s[1:T]
├─ remove gripper channel
├─ compute arm-state difference Δs
├─ Savitzky-Golay smoothing + normalization
├─ detect static intervals by adaptive threshold
└─ detect gripper transition by before/after window mean
论文默认:Savitzky-Golay window 7、poly order 3;static threshold ratio 0.5;window size 5;gripper threshold 0.8;transition window n=3。
VLM prompt 包含:原始任务描述、多视角视频帧、keyframe cues、动作词表、primitive definitions、类别规则、JSON schema。VLM 输出 segment 列表:
[
{
"subaction": "lift",
"instruction": "lift the object upward while holding it",
"start": 3.50,
"end": 5.00
}
]
视频按 2 FPS 采样、resize 到 224×224;多视角时每个 view 有文字标签。VLM 只在数据构造阶段用视觉,最终 LA dataset 不保留视觉。
| 分数 | 含义 | 是否保留 |
|---|---|---|
| 0 | 严重错位或没有 meaningful atomic action | 丢弃 |
| 1 | 有相关运动但边界/标签/语言太噪 | 丢弃 |
| 2 | 基本正确,有小瑕疵 | 保留 |
| 3 | 边界、标签、语言都高质量 | 保留 |
最终保留率 58.2%,双标注子集 Krippendorff’s α = 0.7794。论文还给出成本:处理 1/10 DROID 即 9,560 episodes,Qwen-3-VL-Plus 消耗约 44.29M input tokens 和 3.385M output tokens。
LA4VLA 的数据质量风险主要来自三类错配:边界错、动作标签错、语言描述错。VLM 可以给出结构化 JSON,但如果 segment 跨越两个 primitive,或者 instruction 写了对象外观/身份,LA pretraining 就会把错误语言-动作关系灌进 policy。
| 错误类型 | 例子 | 对训练的伤害 |
|---|---|---|
| Over-segmentation | 一个 grasp 被切成 align / close / lift 的碎片但边界不稳定 | 动作太短或缺少完整物理效果,policy 学到局部噪声。 |
| Merged primitive | transport + place 合成一个 segment | instruction 难以对应单一动作,降低 language-action 对齐密度。 |
| Wrong primitive | 把 press 标成 push | 接触语义错,影响 downstream 按钮/开关类任务。 |
| Scene-specific language | “move to the red cup on the left” | 违反 vision-agnostic 设计,重新引入视觉捷径。 |
论文使用 LA4VLA-1B:InternVL3-1B backbone + flow matching action head。LA pretraining 时视觉输入被 mask,模型根据 instruction + robot state 预测 action trajectory;VLA 或 downstream fine-tune 时恢复视觉输入。
LA batch:
instruction + robot state + masked visual
└─► InternVL3-1B representation
└─► flow-matching action head
└─► action trajectory
VLA batch:
image + instruction + robot state
└─► same VLA policy
└─► action trajectory
| 范式 | 训练流程 | 目的 |
|---|---|---|
| Base | 不预训练,直接 downstream fine-tune | 衡量 downstream 数据本身能学到多少。 |
| LA | LA-33K 去视觉预训练 → downstream fine-tune | 单独检验 language-action prior。 |
| VLA | LA-33K-V 带视觉预训练 → downstream fine-tune | 比较标准视觉-语言-动作预训练。 |
| LA-VLA | LA-33K → LA-33K-V → downstream fine-tune | 先学动作语言,再接视觉 grounding。 |
| MixPT | LA-33K 与 LA-33K-V 混合预训练 → downstream fine-tune | 在一个阶段同时保留 LA prior 与视觉 grounding。 |
论文没有开源训练代码,但从方法描述可恢复核心训练接口。LA-format batch 与 VLA-format batch 的区别只在视觉是否可用。
# LA-format batch
{
"instruction": "transport the object to the right while holding it",
"state": robot_state[t0:t1],
"images": MASKED_OR_EMPTY,
"actions": action_trajectory[t0:t1]
}
# VLA-format batch
{
"instruction": same atomic instruction,
"state": robot_state[t0:t1],
"images": original visual observations,
"actions": action_trajectory[t0:t1]
}
Action head 是 flow matching,因此训练形式可写成:对真实 action trajectory 加噪,模型预测从噪声到真实动作的 velocity field。
| 阶段 | 要训练什么 | 验收指标 | 为什么必要 |
|---|---|---|---|
| Stage 0 | Base downstream-only | MetaWorld/LIBERO/真机 baseline success | 没有这个无法说明预训练有用。 |
| Stage 1 | LA-only pretraining | direction-following under masked visual;downstream success | 验证“无视觉也能学动作先验”。 |
| Stage 2 | VLA-only pretraining | 同样 downstream success | 证明 LA 不是简单因为多训了一次。 |
| Stage 3 | LA-VLA sequential | 是否超过 LA/VLA | 验证先验再 grounding 是否更稳。 |
| Stage 4 | MixPT | 是否在 MetaWorld/real/robustness 最好 | 验证混合预训练是否更实用。 |
| Stage 5 | Visual perturbation / conflict eval | 噪声、masked、conflict 下 success 与方向指标 | 直接支撑“减少视觉捷径”。 |
| 项目页 | 本地克隆路径 | 核对结果 |
|---|---|---|
github.com/MINT-SJTU/LA4VLA | /home/chenzhiyuan/projects/LA4VLA | 当前只有 README.md,内容为标题 # LA4VLA;未见数据构造、模型、训练、评测代码。 |
la4vla/
data/
keyframe_detector.py # state trajectory -> static / gripper events
vlm_segmenter.py # Qwen-3-VL-Plus prompt -> JSON segments
verify_segments.py # human score / filtering / agreement
build_la33k.py # retained segments -> LA-33K
build_la33k_v.py # retained segments + images -> LA-33K-V
models/
la4vla_policy.py # InternVL3-1B + flow matching action head
action_head.py # noisy action -> velocity field
train/
train_base.py
train_la.py
train_vla.py
train_lavla.py
train_mixpt.py
eval/
eval_metaworld.py
eval_libero.py
eval_real_xarm6.py
eval_visual_perturb.py
for batch in dataloader_mix(LA_33K, LA_33K_V):
if batch.format == "LA":
images = mask_or_empty(batch.images)
else:
images = batch.images
cond = model.encode(images, batch.instruction, batch.state)
noisy_action, target_velocity, tau = flow_sample(batch.actions)
pred_velocity = action_head(cond, noisy_action, tau)
loss = mse(pred_velocity, target_velocity)
update(loss)
这段伪代码抓住 LA4VLA 的训练本质:同一策略同时看到“无视觉 LA 监督”和“有视觉 VLA 监督”。
class LAEpisode:
episode_id: str
source_demo_id: str
start_time: float
end_time: float
subaction: str
instruction: str
states: Tensor[T, state_dim]
actions: Tensor[T, action_dim]
images: Optional[Tensor[T, V, H, W, 3]] # LA: None / VLA: restored
quality_score: int
annotator_confidence: int
class LA4VLATrainer:
def train_la(batch): # image masked
return flow_loss(policy(instruction, state, no_image), actions)
def train_vla(batch): # image enabled
return flow_loss(policy(instruction, state, image), actions)
def train_mixpt(batch):
return train_la(batch) if batch.format == "LA" else train_vla(batch)
这类接口能把论文中最关键的 LA/LA-33K-V 配对关系保留下来。复现时不建议只保存普通 JSON caption;必须保存 source_demo_id/start/end,否则无法恢复 LA-33K-V 和做 segment-level error audit。
论文真机平台是 xArm6 + parallel-jaw gripper + 两个 RGB 相机:一个 wrist camera,一个 third-person camera。部署时必须恢复视觉输入,因为下游任务需要定位按钮、书架位置、九宫格杯子位置。
| 任务 | 语言条件 | 为什么适合 LA4VLA |
|---|---|---|
| Press Button | 四个按钮中按指定按钮 | 初始视觉类似,目标由语言决定,能测是否听指令。 |
| Place Book | 把书放入三个书架位置之一 | 目标位置由语言决定,考察空间指令。 |
| Place Drink | 把饮料放入 3×3 grid 指定格 | 视觉场景相似,语言目标细粒度,考验语言-动作映射。 |
| 评测块 | Benchmark / 平台 | 任务与数据 | 为什么这样测 | 复现状态 |
|---|---|---|---|---|
| 方向/操作泛化 | MetaWorld | 按 Easy / Medium / Hard / Very Hard 四档报告平均 success。 | MetaWorld 空间和动作变化更大,用来放大 language-action pretraining 对低层动作先验的收益。 | 官方代码未发布;本地无实质代码可复现。 |
| 标准 VLA 仿真 | LIBERO | Spatial/Object/Goal/Long 四套件;报告 suite success。 | 验证 LA pretraining 在主流 VLA benchmark 上也有效,并特别观察 Spatial/Long 这种更依赖方向和阶段的套件。 | 未复现;只做论文核对。 |
| 跨架构验证 | StarVLA | 把 LA pretraining 迁移到 StarVLA 架构,在 MetaWorld 和 LIBERO 上复测。 | 排除方法只对 LA4VLA-1B / InternVL3-1B 有效,证明训练范式可迁移。 | 本地有 StarVLA 项目,但 LA4VLA 官方训练代码缺失,未跑。 |
| 真机语言条件 | xArm6 | 3 个任务:按 4 个按钮之一、把书放入 3 个书架位之一、把饮料放到 9 宫格之一;每任务 20 trials。 | 同一视觉初始场景下只靠语言区分目标,专门测“策略是否真的听语言”,不是靠视觉捷径。 | 未复现;无官方代码/数据。 |
| 视觉鲁棒性 | xArm6 加噪 | Press Button σ=5、Place Drink σ=15 的高斯视觉噪声测试。 | 检验“先不看图学习 language-action prior”是否降低对视觉捷径的依赖。 | 未复现。 |
| 模型 | 预训练 | MetaWorld Avg | LIBERO Avg | 结论 |
|---|---|---|---|---|
| LA4VLA-1B | No | 69.73 | 92.85 | 无预训练 baseline。 |
| LA4VLA-1B | VLA | 79.78 | 94.40 | 标准有视觉预训练有帮助,但不是最强。 |
| LA4VLA-1B | LA | 83.00 | 95.30 | 去视觉 LA pretraining 优于 VLA pretraining。 |
| LA4VLA-1B | LA-VLA | 86.75 | 96.28 | LIBERO 最好。 |
| LA4VLA-1B | MixPT | 87.53 | 95.75 | MetaWorld 最好。 |
StarVLA 也受益:MetaWorld 从 58.39 提升到 69.91;LIBERO 从 93.70 提升到 94.85,说明 LA pretraining 不是 LA4VLA-1B 特定技巧。
| 预训练 | Press Button | Place Book | Place Drink | Avg |
|---|---|---|---|---|
| No | 60.0 | 15.0 | 40.0 | 38.3 |
| VLA | 50.0 | 40.0 | 55.0 | 48.3 |
| LA | 85.0 | 65.0 | 95.0 | 81.7 |
| MixPT | 75.0 | 85.0 | 90.0 | 83.3 |
| 实验 | 控制变量 | 被检验的主张 |
|---|---|---|
| Base vs LA | 相同 downstream fine-tune,只差是否 LA pretrain | LA priors 是否提升策略初始化。 |
| LA vs VLA | 同源 atomic episodes,一个去视觉,一个带视觉 | 去视觉 language-action 监督是否比标准 VLA 监督更有效。 |
| LA-VLA / MixPT | 同样数据但 schedule 不同 | 语言动作先验与视觉 grounding 如何组合。 |
| StarVLA 迁移 | 换 VLA 架构 | 效果不是 LA4VLA-1B 架构特化。 |
| 真机三任务 | 多目标共享初始视觉,目标由语言指定 | 策略是否真正用语言选择动作。 |
| 视觉噪声 | 测试时破坏视觉质量 | LA pretraining 是否降低对视觉捷径依赖。 |
这也是我们判断顶会级工作的标准:不仅要有数据构造,还要有清楚的能力定义、训练范式对比、policy success、鲁棒性诊断和跨架构验证。
论文在 Press Button 和 Place Drink 上加 Gaussian image noise,检验视觉退化时策略是否还能依赖语言动作 prior。
| 预训练 | Press Button | Place Drink | Avg | Gain |
|---|---|---|---|---|
| No | 40.0 | 15.0 | 27.5 | +0.0 |
| VLA | 20.0 | 65.0 | 42.5 | +15.0 |
| LA | 55.0 | 80.0 | 67.5 | +40.0 |
| MixPT | 65.0 | 75.0 | 70.0 | +42.5 |
LA-pretrained policy 在 masked visual input 下,direction-following 指标高:DAR 0.99、DCS 0.85;conflicting state 下仍有 DAR 0.95、DCS 0.80。t-SNE 显示 LA-pretrained 表征按命令方向形成更清晰簇,而 VLA-trained 表征更容易按 state 混成小簇。
| 指标 | 直觉含义 | 看什么 |
|---|---|---|
| DAR | Direction Agreement Rate | 预测动作终点是否落在指令指定方向一侧。 |
| DCS | Direction Consistency Score | 动作方向与指令方向的一致程度。 |
| SR | Separation Ratio | 相反方向指令产生的轨迹是否分开。 |
| SS | Separation Score | 相反指令在表示/轨迹空间中的可分性。 |
这些指标不是为了替代 rollout success,而是证明机制:如果 policy 的动作方向在 masked/conflicting input 下仍跟着 instruction 走,那么 downstream 的成功率提升更可能来自语言动作先验,而不是偶然调参。
| 维度 | LAP | LA4VLA |
|---|---|---|
| 核心问题 | VLA action representation 与 VLM 语言分布不对齐 | 视觉监督压过语言动作监督,导致视觉捷径 |
| 数据构造 | 从 action chunk 确定性转换 language-action | VLM 切 atomic segments + 人工验证,形成 LA-33K |
| 是否去视觉预训练 | 不是主叙事;LAP 仍是 VLM+action expert 联合训练 | 主叙事:Learning to Act without Seeing |
| 实验重点 | zero-shot cross-embodiment transfer | downstream success + visual robustness + instruction following |
| 代码状态 | 完整开源,基于 OpenPI | 当前官方仓库未实质发布代码 |
LA4VLA 提醒我们:如果只做 positive language-action,已经很接近 LAP/LA4VLA。CLAP 要发顶会,必须做它们没做的能力:当前动作是否 suitable、哪些 plausible action 当前应该被 reject。
| 已有工作 | 教模型什么 | CLAP 可补的空白 |
|---|---|---|
| LAP | 正确动作可以如何用语言表达 | 错误但合理的动作为什么不该做 |
| LA4VLA | 无视觉条件下语言如何约束动作先验 | 有视觉/阶段条件下如何拒绝错目标、错阶段、错方向动作 |
| CLAP | 应学习 action suitability/rejection | 必须影响 action selection,而不仅是 offline ranking |