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
实线 · 典型 VLA:
H → Action Head出动作。
虚线 · PI:H → Action Expert,Flow 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*。