VLA 视觉-语言-动作模型

📅 2026/7/28 13:34:29
VLA 视觉-语言-动作模型
1. 什么是 VLA—— 一个能看、能听、能动手的模型VLA Vision-Language-Action视觉-语言-动作模型。它是一个端到端的多模态模型输入端接收摄像头图像 自然语言指令输出端直接产生机器人的关节动作序列。一句话理解你对机器人说帮我把桌上的红色杯子拿过来VLA 模型通过摄像头看到杯子在哪、理解拿过来是什么意思、然后自主规划出一系列关节运动轨迹来完成任务。整个过程不需要人工编程每一步怎么做。要真正理解 VLA需要同时理解它的三个字母组件负责什么输入输出类比V — Vision视觉看懂场景摄像头 RGB 图像单帧或多帧场景理解物体位置、形状、空间关系机器人的眼睛L — Language语言理解意图自然语言文本指令任务解析要做什么、条件是什么机器人的耳朵A — Action动作执行操作来自 VL 的融合表示关节角度/速度/力矩序列、末端位姿机器人的手1.1 VLA 与其他概念的关系AI 模型的能力进化链 LLM (大语言模型) → 只会处理文本不懂图像也不懂物理世界 ↓ 加视觉能力 VLM (视觉语言模型) → 能看图说话但只会说不会做 ↓ 加动作输出能力 VLA (视觉语言动作模型) → 能看、能理解、还能动手执行VLA 本质上是把VLM 的理解世界的能力与机器人策略的执行动作的能力融合在一起实现了从感知到决策再到行动的端到端统一。纯视觉方案如 ACT从图像直接预测动作没有语言理解能力。换一个任务抓杯子→推方块需要重新训练。无泛化到新任务的能力。纯语言方案如 SayCanLLM 做高层规划先去厨房再拿杯子但底层动作依赖预编程的技能库。无法处理未见过的物体和场景。VLA 融合方案视觉语言在大模型内部深度融合共同指导动作生成。面对新物体拿那个蓝色三角形时无需重训。泛化是核心优势。2. 为什么需要 VLA传统方法的不足方法能做什么不能做什么遇到新任务时经典控制PID、MPC精确跟踪预定轨迹无法处理非结构化环境、不能用自然语言控制全部重新编程模仿学习ACT、Diffusion Policy从演示数据学会特定任务一个模型只会一个任务换任务需重新采集数据重训重新采集 50 条演示LLM 技能库理解自然语言调用预编程技能技能库覆盖不到的物体/场景就束手无策需要程序员新增技能VLA理解新语言指令、认出没见过的新物体、泛化到新场景依赖大规模预训练数据小数据场景可能不如专用策略零样本或少量微调核心价值泛化Generalization。VLA 最吸引人的地方不是它做某一件特定事情做得有多好而是它做从未见过的事情的能力。因为 VLA 的视觉和语言能力来自互联网规模的预训练当你对它说把那个绿色的不规则物体翻过来它可能从来没见过这个物体但能通过视觉理解找到它、通过语言理解知道要翻过来。2.1 一个具体的例子场景让机器人把苹果放进红色碗里 传统模仿学习 前提必须有人演示过抓苹果→放红碗的完整过程50 次 换个要求放到蓝色碗里→ 不行需要重新采集蓝碗数据 重新训练 VLA 前提模型在互联网上见过苹果长什么样、红色是什么颜色、碗是容器 换个要求放到蓝色碗里→ 模型知道蓝色是什么找到蓝碗直接执行 换个物体把香蕉放进红色碗里→ 同样可以3. VLA 的核心架构虽然不同 VLA 模型的具体设计有差异但它们都遵循一个共同的范式预训练 VLM 作为基座 动作解码器 端到端微调。3.1 架构全景图INPUT ├─ 摄像头图像 (RGB, 多帧或单帧) └─ 自然语言指令 (Pick up the red cup) │ VISION ENCODER (SigLIP / ViT / DINOv2) └─ 将图像编码为特征向量 → image_tokens │ LANGUAGE ENCODER (LLM backbone) ├─ Tokenize 文本指令 → text_tokens └─ 与 image_tokens 拼接一起送入 Transformer │ MULTIMODAL FUSION (Transformer Decoder layers) └─ 图像 token 和文本 token 通过 self-attention 深度融合 └─ 输出融合了看和听的 hidden states │ ACTION HEAD (MLP / Diffusion / Autoregressive) ├─ 从融合表示中解码出动作 ├─ 输出格式取决于设计绝对关节角度 / 相对位移 / 末端位姿 / action tokens └─ 可能是单步动作 or 动作块 (action chunking) │ OUTPUT → 机器人执行动作序列3.2 三种动作输出范式不同 VLA 模型最大的设计分歧在于如何输出动作范式如何工作优点缺点代表模型离散化 Action Token把连续动作关节角度 -30° ~ 30°分成 N 个离散区间每个区间映射为一个 token。像语言模型一样逐 token 生成与 LLM 训练方式完全一致可复用 LLM 的全部基础设施离散化引入量化误差精细操作可能不够精确RT-2 (Google)连续回归Action head 直接输出连续值关节角度用 L1/L2/MSE loss 训练精度最高无量化误差与 LLM 的 token 预测范式不一致需要额外设计 lossSmolVLA、部分 Pi0 配置扩散生成从高斯噪声开始逐步去噪生成动作轨迹。每个去噪步骤都依赖 VLM 的融合表示作为条件擅长多模态分布既可以这样抓也可以那样抓轨迹平滑推理慢需要多次去噪步骤Pi0 (diffusion variant)关键趋势业界正在向混合方案收敛——用 VLM backbone 做感知与理解粗粒度用 diffusion/flow-matching head 做精确动作生成细粒度。Pi0 就是这种混合架构的代表。3.2.1 深入理解为什么 Action Head 要用 Diffusion这是理解现代 VLA 架构设计的关键问题。答案在于动作预测本质上是一个一对多的问题——同一个任务往往有多个正确答案而传统的回归无法处理这种情况。 核心矛盾抓一个苹果可以有 N 种方式你对机器人说把桌上的苹果拿起来。这个任务至少有三种完全合理的抓取方式方式 A: 正上方垂直抓取 — 机械手从天而降直直下去 方式 B: 右侧横移抓取 — 从右边滑过去从侧面夹住 方式 C: 绕后抓取 — 避开前面的杯子绕到苹果背后再抓 三种方式都是正确的但它们的关节角度序列完全不同。 如果你用 L1/L2 回归训练模型会学到什么回归的致命缺陷L1/L2 Loss 的本质是预测平均值。看这个例子为什么回归在 VLA 中会失败 # ═══════════════════════════════════════════════════════════════ # 训练数据中有 3 条演示都是拿起苹果这个任务 # ═══════════════════════════════════════════════════════════════ data_A [30, -10, 5, 45, 20, -15] # 演示 A: 从上方抓 — 6 个关节角度 data_B [-15, 45, 0, 60, -10, 30] # 演示 B: 从侧面抓 — 关节角度完全不同 data_C [60, 20, -20, 10, 50, 5] # 演示 C: 绕后抓 — 又是不同的轨迹 # MSE Loss (预测 - 真实值)² 的最小化会把模型拉向均值 mean_action [(30-1560)/3, (-104520)/3, ...] # [25, 18, -5, 38, 20, 7] # 这个平均动作现实中不存在执行它可能导致 # - 机械臂停在半空不上不下离苹果还差 5cm # - 撞到桌子平均值穿过了桌面 # - 夹爪在错误时机闭合三个演示的夹取时机被平均了回归的数学本质L1/L2 回归假设输出服从单峰分布只有一个正确答案数据围绕这个正确答案正态分布。但机器人动作天然是多峰分布多个正确的峰预测平均值等于预测一个现实中不可行的中间态——不上不下、不左不右、刚好撞到障碍物。Diffusion 如何解决—— 从预测变成采样Diffusion 的核心思想转换不直接预测输出值而是学习输出的分布然后从分布中采样。回归模型扩散模型 (Diffusion)训练目标学习 f(x) → 一个确定的值学习 p(action | image, text) → 一个概率分布推理过程输入 → [网络] → 输出随机噪声 → [K 步去噪] → 采样一个可行解多次推理每次结果完全相同确定性每次采样结果不同但都合理随机性面对 3 种抓取方式学出平均值 不可行的中间态学出分布 可以从 3 个峰中各采样出一个一个具体的采样演示Diffusion Action Head 的推理过程 # ═══════════════════════════════════════════════════════════════ # VLA 的 Diffusion Action Head 每一步都在做什么 # ═══════════════════════════════════════════════════════════════ # Step 1: 初始化 — 纯随机噪声作为动作雏形 action_noise [0.03, -0.12, 0.08, -0.05, 0.01, -0.09] # 无意义的随机数 # Step 2: 条件注入 — VLM 的输出作为导航地图 condition VLM_output # 融合了苹果在(x,y,z)和拿起来的语义 # Step 3: 迭代去噪 (K 步)每一步都参考 condition for t in [K, K-1, ..., 2, 1]: # 网络预测给定当前噪声动作 场景条件应该减去多少噪声 predicted_noise denoise_net(action_noise, condition, t) # 从当前动作中减去预测的噪声 → 向干净动作靠近一步 action_noise action_noise - predicted_noise # 直观感受每一步的变化 # t50: 噪声很大动作还很模糊 → 只知道大概往苹果方向走 # t30: 方向明确了 → 从上方还是侧面初步确定 # t10: 轨迹成形了 → 最后一小段是向上提 # t5: 精细微调 → 夹爪打开 0.5mm 以确保夹住 # t1: 输出干净的动作序列 ✓ → [28.3, -9.1, 4.2, 44.8, 19.5, -14.7] # ═══════════════════════════════════════════════════════════════ # 关键如果换一个随机种子不同的初始噪声结果不同 # ═══════════════════════════════════════════════════════════════ # 初始噪声 [种子42] → 去噪 → 从上方抓取 [30, -10, 5, ...] # 初始噪声 [种子99] → 去噪 → 从侧面抓取 [-15, 45, 0, ...] # 初始噪声 [种子7] → 去噪 → 绕后抓取 [60, 20, -20, ...] # # 三种都是合理的动作模型学会了分布而非平均值为什么 VLM Condition 是 Diffusion 的完美搭档Diffusion 本身只会去噪——它知道怎么让随机噪声变得有意义。但什么样的动作算有意义完全由 VLM 提供的 condition 决定Condition 包含的信息对去噪过程的引导作用图像特征 → 苹果在桌面坐标 (0.3, -0.1, 0.05)告诉去噪网络末端轨迹的终点要落到这个位置语言语义 → 拿起来pick up含向上运动告诉去噪网络轨迹末尾要有一个向上提升的 phase空间关系 → 苹果在桌上旁边有水杯告诉去噪网络轨迹要绕开水杯不能直线穿过物体属性 → 苹果大小约 5cm表面光滑告诉去噪网络夹爪开合角度约 5~6cm力度适中直觉理解 把 Diffusion 想象成一个拿着画笔的画家把 VLM Condition 想象成一张照片。 画家一开始面对一张白纸随机噪声但手里有参照照片condition。 他看一眼照片画一笔轮廓……再看一眼细化细节……再看一眼润色收尾。 每次画出来的画可能略有不同不同的笔触风格但画的内容始终是照片里的场景。 如果没有 condition照片画家就不知道要画什么——Diffusion 没有 VLM 的条件信号就不知道什么动作是合理的。⚡ Pi0 为什么用 Flow Matching 而不是纯 DiffusionPi0Physical Intelligence用了Flow Matching——Diffusion 的高效变体核心区别在于去噪路径的设计标准 Diffusion 的去噪路径 噪声 ── 弯曲路径 ── 弯曲路径 ── ... ── 干净动作 每一步往随机方向走一点需要 50~100 步才能到达目标 Flow Matching 的去噪路径 噪声 ───────────────── 直线路径 ──────────────── 干净动作 路径被显式建模为一条直线只需 5~10 步即可到达目标为什么直线路径更快Diffusion 的原始设计中去噪路径是随机的——每一步往哪个方向走多少网络自己学习。Flow Matching 直接把路径约束为直线插值x_t t·x_noise (1-t)·x_clean网络只需要学习这条直线上的方向梯度。路径更短、更可预测所以步数从 50 降到个位数Pi0Fast 因此得名。三种范式对决 — 完整对比维度回归 (MSE)离散化 TokenDiffusion / Flow Matching如何生成MLP → 一个确定值逐 token 预测离散 bin噪声 → K 步迭代去噪多模态分布❌ 学的是平均值⚠️ 可能但量化粗糙✅ 天然支持采样输出精度✅ 连续值最高精度❌ 量化误差✅ 连续值高精度轨迹平滑度⚠️ 可能不连续❌ 离散阶梯状✅ 去噪天然平滑推理速度✅ 极快单次前向✅ 快并行解码⚠️ 需迭代 K 步训练兼容性独立 loss 设计✅ 与 LLM 统一⚠️ 需额外去噪网络代表模型SmolVLART-2, OpenVLAPi0 (Flow Matching), Octo一句话总结Action Head 用 Diffusion 不是因为Diffusion 很酷而是因为机器人动作天然是多模态的同一个任务有多个正确答案回归学不了分布离散化丢精度且轨迹不连续只有 Diffusion/Flow Matching 能同时做到采样不同合理动作 连续高精度输出 轨迹平滑。VLM 的融合表示作为 condition就像给扩散过程装上了 GPS——确保采样出的动作始终符合当前场景和指令。3.3 动作空间VLA 输出什么动作类型含义维度适用场景关节角度每个关节的目标角度绝对位置控制6D6 自由度臂SO-101 等低成本机械臂末端位姿机械手末端在空间中的位置(xyz) 姿态(rpy)6D~7D需要 IK 解算的工业臂关节速度/力矩每个关节的目标速度或力矩6D力控任务柔顺装配夹爪开合夹爪的开关状态连续或离散1D几乎所有抓取任务Action Chunk未来 N 步的动作序列一次性预测N × 动作维度减少累积误差ACT 风格为什么 Action Chunking 很重要如果模型每步只看一张图像、输出一个动作开环控制随着执行步骤增多微小误差不断累积最终机械臂会偏离目标。ACTAction Chunking Transformer的解法是一次性预测未来 N 步的动作序列然后用时间集成temporal ensemble融合多步预测大幅减少累积误差。现代 VLA如 Pi0通常继承了这一设计。4. 主流 VLA 模型盘点模型开发方基座动作范式亮点硬件需求RT-2Google DeepMindPaLI-X / PaLM-E离散化 Action Token第一个证明互联网 VLM 机器人数据可行的大规模实验。在未见过的物体/场景/指令上展现出显著泛化能力云端推理OctoUC Berkeley / StanfordT5 ViTDiffusion Head开源、模块化设计。支持多机器人平台社区生态活跃24GB GPUOpenVLAStanford / BerkeleyLlama SigLIP/DINOv2离散化 Action Token完全开源模型数据代码。7B 参数可在消费级 GPU 微调和推理24GB GPUPi0 / Pi0.5 / Pi0FastPhysical Intelligence (π)自研 VLMFlow Matching 连续回归专用机器人基础模型在多种机械臂和人形机器人上训练。泛化能力目前最强之一。LeRobot 原生支持24GB GPUGR00T N1.5NVIDIA自研 Cosmos多模态融合NVIDIA 生态深度整合Isaac Sim Cosmos仿真→真机链路最完整云端 / DGXSmolVLAHugging Face 社区SmolVLM连续回归最轻量 VLA可在笔记本 GPU 上实时推理。LeRobot 原生支持语音控制 SO-101 的首选8GB GPUMolmoAct2AI2 (Allen Institute)Molmo离散 连续混合开放词汇物体指代能力强支持复杂空间关系描述放在第二个方块的左边24GB GPURDT-1B清华自研 Diffusion TransformerDiffusion DiT1B 参数的双臂操作模型在人形机器人上演示了复杂操作叠衣服、倒水24GB GPU选型建议如果你有一台 SO-101 且只有消费级 GPU8~24GBSmolVLA是最佳入门选择——轻量、LeRobot 原生支持、有社区语音控制项目。如果你有 24GB GPU 且追求更強泛化Pi0和OpenVLA是自然升级路径。如果你在 NVIDIA 生态Isaac SimGR00T的仿真→真机链路最完善。5. VLA 的训练范式5.1 两阶段训练预训练 微调VLA 的训练几乎都遵循两阶段范式与 LLM 的预训练→SFT→RLHF路线高度相似阶段数据来源训练目标学到什么阶段 1视觉语言预训练互联网图片文本几十亿对图文匹配、图像描述、视觉问答苹果长什么样红色是什么颜色碗是容器——常识性视觉理解和语言理解阶段 2机器人数据微调机器人演示数据几千到几十万条轨迹动作预测、行为克隆抓取苹果的动作轨迹长什么样放到碗里的末端位姿序列是怎样的——具体操作技能关键洞察为什么两阶段有效阶段 1 提供了语义理解——模型已经知道苹果和碗是什么。阶段 2 的机器人数据只需要教模型怎么做不需要再教是什么。这样机器人数据通常很少几千条的效率极高。这也是为什么 VLA 能做到零样本泛化——语义理解来自阶段 1 的海量数据不需要在阶段 2 中重新学。5.2 数据VLA 的燃料数据来源规模包含什么开源代表互联网图文数据几十亿对任意图片 文字描述LAION、COCO、WebLI大规模机器人数据集百万级轨迹多机器人、多任务的演示数据Open X-Embodiment (OXE)LeRobot 社区数据几千到几万条SO-101/SO-100/Aloha 等特定平台Hugging Face Hub自采遥操作数据几十到几百条用自己的机械臂录制用户自己录制上传仿真数据无限自动生成Isaac Sim / ManiSkill3 模拟轨迹Sim-to-Real 项目的训练数据数据的多具身Multi-Embodiment是 VLA 泛化能力的关键。Open X-Embodiment 数据集包含来自 20 种不同机器人工业臂、人形、移动操作平台的轨迹。在这些混合数据上训练的 VLA能学到跨平台的通用操作技能——抓取这个概念不依赖特定机械臂的自由度数量或尺寸。这就是 VLA 与专用策略的根本区别。5.3 与 LoRA 的结合Python — LoRA 微调 VLA # ═══════════════════════════════════════════════════════════════ # VLA 模型通常很大7B全参数微调需要 A100。 # 在实际项目中用 LoRA 微调 VLA 是标准做法—— # 冻结 VLM backbone只训练 action head 少量 LoRA adapter。 # 这样单张 RTX 3090/4090 就能微调 OpenVLA 或 Pi0。 # ═══════════════════════════════════════════════════════════════ from peft import LoraConfig, get_peft_model from transformers import AutoModelForVision2Seq # 1. 加载预训练 VLA如 OpenVLA-7B # OpenVLA 基于 Llama加载时可以用 4-bit 量化省显存 model AutoModelForVision2Seq.from_pretrained( openvla/openvla-7b, load_in_4bitTrue, # 4-bit 量化7B 模型只占 ~4GB device_mapauto, ) # 2. 配置 LoRA — 只微调 attention 层的适配器 # VLM backbone 被冻结不更新只更新 LoRA adapter action head lora_config LoraConfig( r16, # LoRA rank — 可在 8~64 之间调整 lora_alpha32, target_modules[q_proj, v_proj, o_proj], # 哪些层加 adapter lora_dropout0.05, ) model get_peft_model(model, lora_config) # 3. 用 SO-101 遥操作数据微调 action head # 数据格式(image, put the red block on the left, joint_angles) # 训练目标给定 image text预测 action 序列 # 冻结 → VLM 的语义理解能力不变 # 更新 → action head 学会把 VLM 的理解翻译成具体关节动作 # 训练完成后LoRA adapter 只有几十 MB # 可以轻松分享、切换、组合不同的微调 adapter6. 实战VLA 工作流全链路以SO-101 机械臂 SmolVLA 语音控制为例参考 lerobot.html 中的语音控制项目伪代码 — VLA 推理主循环 # ═══════════════════════════════════════════════════════════════ # VLA 控制机械臂的典型推理循环 # 展示了感知 → 推理 → 执行 → 反馈的闭环 # ═══════════════════════════════════════════════════════════════ # 初始化加载 VLA 模型 连接机械臂 打开摄像头 model load_vla(smolvla) # 加载 SmolVLA 到 GPU robot connect_robot(so101) # USB 连接 SO-101 camera open_camera(0) # 打开 USB 摄像头 instruction 把红色方块放到左边 # 语音识别后的文本指令 while not task_done: # Step 1: 拍一张当前的场景照片 image camera.capture() # RGB 图像如 224×224 或 384×384 # Step 2: VLA 推理 — 输入 image text → 输出 action # 模型内部流程: # Vision Encoder 编码图像 → 图像特征向量 # LLM backbone 处理 图像特征 文本 token → 融合表示 # Action Head 从融合表示中解码 → 关节动作 action model.predict(imageimage, textinstruction) # action 可以是: # 单步: {joint1: 30.5, joint2: -15.2, ..., gripper: 0.8} # 或 action chunk: [action_t, action_t1, ..., action_t15] # Step 3: 执行动作带插值平滑 robot.execute(action, smoothTrue) # 平滑轨迹避免抖动 # Step 4: 判断任务是否完成 # 可通过视觉判断夹爪里有没有物体、力反馈等 task_done check_completion(image, robot) # 任务完成后回初始位置 robot.move_to_home()闭环 vs 开环上面的循环是闭环控制——每一步都重新看摄像头、重新推理。如果物体被碰歪了VLA 会自适应调整动作。与之对应的是开环控制看一次生成完整动作序列然后一口气执行完。VLA 通常支持两种模式复杂任务用闭环更鲁棒简单任务用开环更快。7. VLA 的关键挑战与前沿方向挑战为什么难当前解决方案推理延迟7B 参数的 Transformer 在嵌入式设备上推理一次需要 200~500ms。对于需要 30Hz 实时控制的机器人来说太慢模型蒸馏大 VLA → 小 VLA、量化INT8/INT4、投机解码、Action Chunking一次预测多步降低推理频率数据稀缺互联网数据没有动作标签。机器人演示数据采集成本高需要人遥操作每小时只能录几十条OXE 等大规模开源数据集、Sim-to-Real仿真中无限生成数据、Video-to-Action从人类视频中学习跨具身泛化不同机器人有不同的自由度、尺寸、动力学。一个策略在 SO-101 上好用换到 UR5 工业臂就用不了多具身联合训练OXE 的做法、标准化动作空间相对末端位姿比绝对关节角度更容易迁移、具身特征作为输入条件精细操作离散化 action token 方案在需要毫米级精度的任务插线、焊接上精度不够连续回归 Diffusion Head、视觉伺服VLA 做粗规划 经典视觉伺服做精细对准家庭场景泛化真实家庭环境有无穷多种物体、布局、光照条件。训练数据不可能覆盖所有情况开放词汇检测不限于训练集见过的物体、基础模型泛化能力、持续学习边用边学安全VLA 是黑盒输出动作可能危险速度快、碰撞、夹到人动作空间约束限制关节速度和力矩、碰撞检测、人在环紧急停止、分层架构VLA 出高层指令底层控制器做安全检查7.1 前沿方向世界模型 VLA让 VLA 不仅感知当前场景还能想象动作执行后的结果。VLA-JEPALeCun 的 JEPA 范式在机器人上的实现就是这一方向的代表。模型学会预测如果我做这个动作世界会变成什么样。人形机器人 VLARDT-1B清华、GR00T N1.5 等开始面向人形机器人的复杂全身操作叠衣服、倒水、开门。从单臂到双臂再到全身动作空间维度从 7D 扩展到 50D对 VLA 的动作表示提出新挑战。自主数据闭环让机器人在实践中自主收集数据执行 → 成功/失败 → 自动标注 → 加入训练集 → 重训 → 下次更好。这是 VLA 越用越聪明的关键——降低了持续依赖人类遥操作的数据采集成本。模块化 VLA 架构将 VLA 拆解为可替换的模块——视觉编码器、语言模型、动作解码器各自独立允许快速迭代和组合。Octo 和 OpenVLA 的开源设计已经朝这个方向努力。8. 关键问答8.1 VLA 核心概念速查概念一句话解释VLA输入图像文本 → 输出机器人动作的端到端多模态模型VLM vs VLAVLM 只会说输出文本VLA 还会做输出动作Action HeadVLA 中负责将多模态融合表示解码为关节动作的模块Action Token连续动作离散化后的 token如 RT-2 的做法使动作预测可用 LLM 训练Action Chunking一次预测未来 N 步动作而非单步减少累积误差OXEOpen X-Embodiment — 目前最大的开源多机器人数据集VLA 训练的核心数据源Multi-Embodiment在多种机器人不同自由度、尺寸数据上联合训练学到跨平台通用技能Sim-to-Real仿真中训练策略 → 迁移到真机。零成本无限试错但需弥合仿真-现实差距Pi0Physical Intelligence 的通用机器人 VLALeRobot 原生支持SmolVLA最轻量 VLA消费级 GPU 可运行SO-101 入门首选8.2 关键问题Q1: VLA 和传统模仿学习的区别答模仿学习ACT、Diffusion Policy是从特定任务的演示数据中学一个视觉→动作的映射一个模型只做一个任务。VLA 多了语言理解——它的视觉和语义理解来自互联网预训练VLM backbone因此能理解开放词汇指令、泛化到训练时未见过的新物体和新任务。核心差异在于语言的加入带来了zero-shot 泛化能力。Q2: VLA 的动作空间如何设计答三种主流方案。①离散化 tokenRT-2——把连续角度分成 N 个 bin每个 bin 映射为一个 token和 LLM 的 next-token prediction 训练一致②连续回归SmolVLA——直接输出浮点值精度高但与 LLM 范式不兼容③扩散生成Pi0——从噪声逐步去噪生成动作擅长多模态分布。选择取决于精度需求和硬件约束。Q3: 为什么 VLA 能泛化到新任务答因为 VLA 的语义理解苹果是什么红色是什么颜色来自互联网规模的预训练几十亿图文对而非只有几百条的机器人数据。机器人微调阶段只需要教会模型怎么操作而操作什么已经在预训练中学会。当用户说拿蓝色三角形模型能从预训练知识中理解蓝色和三角形而不需要之前见过这个特定组合。Q4: Pi0 和 OpenVLA 的核心差异答Pi0Physical Intelligence是专用机器人基础模型使用 Flow Matching扩散模型的高效替代生成连续动作训练数据来自多种真实机器人OpenVLA 基于Llama构建使用离散化 action token完全开源模型数据代码。Pi0 在泛化能力上目前更强但 OpenVLA 的开源生态更友好、更容易微调和部署。Q5: VLA 推理太慢怎么办答四招。①Action Chunking一次预测 16 步动作推理频率从 30Hz 降到 ~2Hz②模型蒸馏大 VLA7B蒸馏为小 VLA1B 或更小速度提升 5~10 倍③量化INT8/INT4 量化显存和带宽都降低④异步架构VLA 跑在 GPU 上做慢思考高层规划底层高速 PID 控制器做快反应实时伺服。Q6: VLA 训练需要多少数据答分两种情况。①从零训练 VLA如 Pi0、GR00T需要百万级机器人轨迹OXE 数据集 互联网图文数据训练成本百万美元级。②微调已有 VLALoRA SO-101 数据只需50~200 条本机遥操作数据配合 LoRA 在单张 24GB GPU 上几小时可完成。对个人开发者而言方案②是唯一可行的路径。Q7: VLA 和 Embodied AI 的关系答Embodied AI具身智能是一个更大的概念指能感知物理世界并在其中行动的 AI 系统。VLA 是 Embodied AI 中的核心模型范式——它解决了语言理解→视觉感知→物理动作这个端到端映射问题。但完整的 Embodied AI 还需要导航、长期规划、记忆、多智能体协作等能力VLA 是其中最关键的一块拼图。Q8: VLA 目前最大的局限是什么答四个核心挑战①精细操作毫米级精度难达到②长时序任务做一顿饭这种需要几百步的任务③安全性VLA 输出不可预测在与人交互时需要保障④数据瓶颈机器人数据仍然太少且难以大规模自动化采集。这些都是当前最活跃的研究方向。8.3 VLA 与相关领域的全景图技术演进全景 # ═══════════════════════════════════════════════════════════════ # VLA 相关技术全景 # ═══════════════════════════════════════════════════════════════ # # 底层技术 中层能力 上层应用 # ──────── ──────── ──────── # # Transformer → LLM (GPT, Llama) → ChatGPT # │ │ # │ Vision Encoder │ # ▼ ▼ # Attention 机制 → VLM (GPT-4V, Molmo) → 看图问答 # │ │ # │ Action Head │ 机器人数据 # │ 机器人数据 │ # ▼ ▼ # Diffusion / Flow → VLA (Pi0, OpenVLA) → 拿那个杯子 # │ │ # │ 多模态输入 │ 导航规划记忆 # ▼ ▼ # 世界模型 (JEPA) → Embodied AI → 全能机器人 # # ═══════════════════════════════════════════════════════════════