← 返回文档列表

VLA

VLA 架构:从视觉语言理解到动作输出

VLA 以 VLM 为主干,把图像和指令变成理解表示,再由动作头输出机器人动作。

VLA 架构与训练

架构

flowchart TB
  o_in["O 观测<br/>相机图像(+ 可选状态)"]
  l_in["L 语言<br/>任务指令"]
  a_out["A 动作<br/>关节 / 夹爪等"]

  pi["Physical Intelligence(PI)<br/>• 历史多帧<br/>• 世界模型生成子目标图(与典型 WAM 路线中模型用法不同)<br/>• 回合元数据(速度 · 质量 · 是否犯错等)"]

  subgraph VLA["VLA"]
    direction TB
    enc_o["变换 · 图像(通常不动)<br/>视觉编码 → 图 token 向量"]
    enc_l["变换 · 语言(通常不动)<br/>分词 + 嵌入 → 文 token 向量"]
    seq["拼成一条 token 序列"]
    vlm["VLM 基座(通常不动)<br/>• ViT(通常不动)<br/>• 内嵌 LoRA(训练)<br/>• Transformer/LLM(通常不动)"]
    h["H 理解表示"]
    ah["Action Head(典型)"]
    expert["Physical Intelligence(PI)<br/>Action Expert<br/>Flow Matching · 读 H"]

    enc_o --> seq
    enc_l --> seq
    seq --> vlm --> h
    h --> ah
    h -.-> expert
  end

  o_in --> enc_o
  l_in --> enc_l
  ah --> a_out
  expert -.-> a_out
  pi -.-> seq

实线 · 典型 VLAH → Action Head 出动作。
虚线 · PIH → Action ExpertFlow Matching 出连续动作,读 H
虚线 · PI 额外输入:在 O、L 之外再并入 token 序列(见上框条目)。仍属 VLA,主输出为 A


概率分布

flowchart TB
  pal["P(A | O, L)"]
  subgraph decomp[" "]
    direction LR
    o_l["O , L"] --> enc["编码 + 拼序列"] --> tok["token 序列"] --> vlm_h["VLM → H"] --> pah["P(A | H)"]
  end

训练过程

flowchart TB
  theta0["① 初始:预设参数 θ₀<br/>(VLM 预训练权重 + 动作头随机/初值)"]
  data["示教数据<br/>O , L , A*"]
  forward["前向:O , L → VLA(θ) → 预测动作 Â"]
  loss["② Loss<br/>比较 Â 与专家 A*<br/>(交叉熵 或 Flow / L1)"]
  update["③ 调参数<br/>反向传播,主要更新 LoRA + Action Head"]
  theta_star["最终参数 θ*"]
  p_star["得到 P*<br/>P*(A | O , L)<br/>(学好的条件分布)"]
  a_star["A*<br/>专家动作(数据标签)"]

  theta0 --> forward
  data --> forward
  forward --> loss
  a_star --> loss
  loss --> update --> theta_star --> p_star

P:训完后的 θ 所定义的 P(A | O, L),不是训练前未拟合的分布。
A
:示教里的专家动作,只作标签;Loss 让 P* 在 O、L 下贴近 A*。