跳转至

VLA:视觉、语言与动作

VLA(Vision-Language-Action)模型将视觉观测与语言指令映射为机器人动作;部分模型还使用关节状态等本体观测。动作可以是一时刻的输出,也可以是一段未来动作序列,具体含义由模型、数据和控制接口共同定义。OpenVLA 项目与 openpi 项目提供了不同实现。

本页面向希望在 G1 上开展操作学习的开发者。资源核对日期为 2026-09-13,属于官方资料整理与实验路线建议,尚未完成本实验室的模型训练或实机复现。

2026-09-26 补充了策略类型、动作表示与全身控制接口,相关新增内容附有官方来源。

VLA、模仿学习与强化学习如何区分

VLA 描述模型使用视觉、语言与动作的关系;模仿学习和强化学习描述如何学习策略。一个 VLA 可以先从示范学习,再通过其他训练阶段改进,不能把这些概念当作互斥的模型类别。

路线 学习方式与输出 适合先回答的问题
ACT 从示范学习,一次预测一段动作,原始工作用于精细双臂操作 自己的演示和相机是否足以支持任务?
Diffusion Policy 条件扩散生成动作序列,配合滚动执行 多种合理动作方式能否被策略表达?
OpenVLA 视觉语言骨干结合动作预测与机器人数据微调 语言条件与预训练迁移能否帮助当前任务?
openpi 包含 flow matching 与 FAST 动作 token 等不同模型路线 哪种动作生成方式适合当前控制与计算条件?
SONIC 通过仿真中的运动跟踪学习全身控制,可与高层策略连接 身体如何执行参考动作,并与操作策略配合?

ACT 和 Diffusion Policy 的原始方法不应直接标成 VLA。对单任务实验,可先建立模仿学习基线;对语言条件实验,增加“同一场景、不同目标指令”的测试,判断模型是否真正使用语言。

动作表示为什么会影响选型

离散动作 token: 将动作编码为离散符号供模型预测,之后再还原为数值动作。原始 OpenVLA 与 FAST 的编码方式不同,不能互换解码器。OpenVLA 仓库还指向 OFT 路线,支持连续动作及多图像等扩展;比较实验时应写明使用原始版本还是 OFT。OpenVLA 官方说明

连续动作序列: 扩散或 flow matching 等方法生成一段连续动作。openpi 包含 π₀、π₀-FAST、π₀.₅ 等实现;选择模型时需同时确定输入转换、动作时域和训练配置。openpi 官方说明

控制器的潜在动作: 高层模型输出供特定控制器解释的动作表示。SONIC 的官方 VLA 流程使用运动 token,并单独输出手部目标;这些 token 不能当作 G1 关节角直接发送。SONIC VLA 接口

动作分块(action chunking)表示一次预测多个未来动作;执行时通常只使用其中一部分,再读取新观测重规划。实验中要分开记录预测长度、实际执行长度和观测到执行的延迟。预测更长不一定更好:任务需要快速反馈时,旧动作持续执行会减少纠错机会。

VLA 在 G1 系统中的位置

以下是便于理解的参考流程,实际输入、输出和控制层由项目决定:

相机观测 + 任务指令 + 机器人状态
                 ↓
              VLA 推理
                 ↓
         动作解码与反归一化
                 ↓
    G1 动作映射、有效性检查与执行调度
                 ↓
       手臂/末端/所需运动控制接口
                 ↓
        新的视觉与状态反馈 → 再次推理

如果模型输出末端位姿,还需要相应运动学和控制转换;如果输出关节目标,则需要核对关节顺序和范围。用于桌面抓取的策略,也不能据此推断已经具备行走或全身平衡能力。

涉及边走边操作时,继续阅读 SONIC 与全身运动学习,确定任务策略、参考动作和身体控制器之间的接口。高层任务成功与底层跟踪稳定需要分别评测。

开放模型与工具入口

下表整理各项目公开的能力和资料入口。“G1 使用要点”是本手册的适配建议;具体可用机型和检查点以所选版本说明为准。

项目 主要内容 G1 使用要点
UnifoLM-VLA 宇树的 VLA 训练、推理、模型权重与 G1 任务数据入口 优先核对其机身、末端、观测和客户端部署配置
OpenVLA 视觉语言动作模型、微调流程及机器人操作评测示例 阅读动作表示和归一化方式,补充 G1 数据与控制适配
openpi π₀、π₀-FAST、π₀.₅ 等模型的训练与推理工具 区分基础模型与平台专用检查点,配置自己的输入输出转换
Isaac GR00T 机器人基础模型、自定义机型数据适配、微调和评测流程 模型代际、机型标识与动作空间需匹配,使用相应版本文档
SmolVLA LeRobot 中的 VLA 模型及训练、推理说明 适合研究 LeRobot 策略流程;仍需验证 G1 的数据与执行接口

代码、权重和数据的开放范围分别以仓库 LICENSE、模型卡和数据集卡为准。选型时同时检查模型版本、依赖、显存需求和动作定义,不以项目演示视频代替设备适配验证。

建议从哪条路线开始

  • 先了解 VLA 工作方式: 选择官方的小规模离线推理或 LIBERO 示例,观察输入与动作输出。
  • 已有 G1 演示数据: 先用 Unitree LeRobot检查数据转换与策略流程,再选择支持该配置的 VLA 路线。
  • 需要迁移现有模型: 先完成数据字段、动作空间和归一化配置,再进行小规模微调。

这些是本手册建议的学习顺序。ACT 等模仿学习方法可作为任务基线,但不能因为工具链也支持它,就把所有策略都称为 VLA;实验中应明确模型是否实际使用语言输入。

微调前做一个小规模验证

本手册建议先固定一小批完整轨迹,完成加载、前向推理、短训练与检查点恢复,验证数据和训练链路,再扩大规模。根据目标实现支持情况选择全量微调、冻结部分骨干或 LoRA;较少可训练参数也不意味着可以省去图像预处理、动作头适配和闭环评估。

对照实验应使用同一数据划分、观测和成功判据,分别记录基线与 VLA 的表现。预留未见物体、位置或采集会话,单独报告各项泛化结果;不要用训练损失或训练集动作准确率代替任务成功率。

数据准备决定适配质量

从数据集集合选择资源,或采集自己的 G1 演示。训练前至少固定以下约定:

内容 具体要求
图像 相机名称、数量、顺序、裁剪、尺寸和颜色编码在训练与推理时一致
本体状态 各维度的含义、顺序、单位、有效范围和缺失处理明确
动作 明确关节/末端、绝对/相对、左右侧、末端开合或手指控制方式
语言 与任务和轨迹一致;中文指令效果需要单独测试
归一化 保存训练使用的统计量或项目指定统计量,并与检查点配套加载
时间 明确观测历史、动作序列长度、执行步数及重规划周期

例如,夹爪的一维开合量无法通过简单复制变成 Dex3 的各关节目标;应根据任务和实际手型设计表示、采集示范或训练转换模块。

一个可复现的 G1 实验流程

可先运行本仓库第一个学习实验,完成 CPU 行为克隆的采集、训练、检查点恢复与仿真闭环,再进入 BrainCo2 单相机 ACT 路线。该示例用于打通工具链,不是 VLA 或实机性能报告。

  1. 限定任务。 从有可靠支撑、固定工作区的桌面操作开始,写清初始条件和成功判据。
  2. 检查数据。 查看完整轨迹,检查动作范围、时间同步和任务标注,固定数据划分。
  3. 建立基线。 先确认数据能支持一个简单模仿学习策略,再比较 VLA 是否改善语言条件任务表现。
  4. 小规模训练。 固定代码提交、数据 revision、模型 revision 和随机种子,先验证损失与输出变化。
  5. 离线推理。 将预测动作保存到文件,与示范比较,核对反归一化、维度和跳变。
  6. 闭环评测。 在匹配任务与模型的仿真环境中测试,再进行受控实机验证,记录接管与失败。

离线误差较小不能证明闭环任务能成功。机器人执行误差会改变下一次视觉输入,需要单独测试闭环行为。仿真配置见仿真页面,实机条件见安全指南。

推理服务与控制频率

模型可以运行在外部 GPU 主机上,由机器人客户端上传观测并接收动作。UnifoLM-VLA 给出了服务端与机器人客户端流程,openpi 也提供远程推理方案。宇树推理说明 · openpi 远程推理说明

本手册建议在接入实机前测量观测采集、编码、网络、模型推理和执行调度各段延迟。模型每次输出多个动作,不表示可以忽略状态变化或无限执行旧动作;客户端应检查时间戳、输出有效性、限幅及超时行为。

需要分别记录模型推理频率、动作目标更新频率和底层控制频率。不要直接让网络请求承担关节实时控制循环,也不要把某个桌面 GPU 的推理速度当成机载计算单元的保证。

怎么评估结果

指标 建议记录方式
成功率 记录成功数/总次数、任务定义及初始条件
泛化 分别测试新位置、新物体、新背景和语言改写
语言使用 对相同场景给不同指令,检查动作是否随目标变化
稳定性 记录动作跳变、停顿、超时、碰撞和人工接管
效率 记录端到端延迟、完成时间、显存与通信负载
可复现性 保存模型、数据、配置、固件、代码版本及失败视频

建议先形成一份单任务实验记录,再扩大任务数量。相关基础页面:数据集、灵巧手 SDK、传感器与感知。