欢迎光临
我们一直在努力

VLA(Vision-Language-Action)深入理解

从大语言模型到具身智能的完整技术路线

一句话理解VLA:如果LLM解决的是"怎么对话",VLM解决的是"怎么看懂",那么VLA要解决的就是——看见之后,怎么行动。

适用读者:零基础,无AI/机器人背景要求。本文从最基础的概念讲起,逐步构建完整的VLA知识体系。


在这里插入图片描述

目录

  • 第一篇:基础篇——理解VLA的前世今生
    • 第1章 从ChatGPT说起:AI的三个阶段
    • 第2章 什么是VLA?一张图看懂
    • 第3章 VLA的前置知识:LLM、VLM、机器人学
  • 第二篇:技术篇——VLA的核心架构与原理
    • 第4章 VLA的总体架构
    • 第5章 视觉编码器:机器人如何"看"
    • 第6章 语言理解:机器人如何"听懂指令"
    • 第7章 动作输出:机器人如何"动手"
    • 第8章 训练方法:VLA如何学习
  • 第三篇:模型篇——里程碑VLA模型详解
    • 第9章 RT-2:Google的开创性工作
    • 第10章 OpenVLA:开源VLA的标杆
    • 第11章 π0/π0.5:Physical Intelligence的突破
    • 第12章 其他重要VLA模型
  • 第四篇:实践篇——如何入门VLA
    • 第13章 VLA的数据收集与处理
    • 第14章 VLA的训练与部署
    • 第15章 VLA的评测与优化
  • 第五篇:前沿与展望
    • 第16章 VLA的当前挑战
    • 第17章 VLA的未来趋势
  • 附录:术语表、论文列表、学习路径

第一篇:基础篇——理解VLA的前世今生


第1章 从ChatGPT说起:AI的三个阶段

1.1 第一阶段:大语言模型(LLM)

代表:GPT-4、Claude、DeepSeek、Qwen

能力:理解和生成自然语言文本

输入:文本 → LLM → 输出:文本

例如:
输入:"请帮我写一首关于春天的诗"
输出:"春风拂面暖如酥,桃花含笑映溪湖…"

局限:只能处理文字,看不到图片,听不到声音,更无法控制机器人。

1.2 第二阶段:视觉-语言模型(VLM)

代表:GPT-4V/4o、Gemini、LLaVA、Qwen-VL

能力:同时理解图像和语言

输入:图像+文本 → VLM → 输出:文本

例如:
输入:[一张猫的照片] + "这张图片里是什么?"
输出:"图片中是一只橘色的猫,正趴在窗台上晒太阳。"

关键进步:AI从"只能读文字"进化到"能看图说话"。

局限:能看懂,能说,但不能行动。它告诉你"桌上有一个杯子",但它无法伸手去拿。

1.3 第三阶段:视觉-语言-动作模型(VLA)

代表:RT-2、OpenVLA、π0

能力:理解视觉和语言,然后输出动作控制机器人

输入:图像+语言指令 → VLA → 输出:机器人动作

例如:
输入:[机器人视角的图像] + "把红色的杯子放到盘子里"
输出:机械臂动作序列 → 抓取杯子 → 移动 → 放下

关键突破:AI从"能看能说"进化到"能看能说还能做"。

1.4 三阶段对比

阶段代表输入输出类比
LLM GPT-4 文本 文本 一个只会读写的学者
VLM GPT-4V 图像+文本 文本 一个能看能说的观察者
VLA RT-2, OpenVLA 图像+文本 动作 一个能看能说能做的执行者

1.5 为什么VLA如此重要?

VLA是通往通用机器人的关键路径:

传统机器人编程:
人工编写规则 → 每个任务单独编程 → 无法泛化到新任务

VLA方式:
大规模预训练 → 理解自然语言指令 → 泛化到未见过的任务

例如:
传统:工程师写代码"移动到坐标(0.3, 0.5, 0.2),闭合夹爪"
VLA:直接说"把杯子放到桌子上",机器人自己理解并执行


第2章 什么是VLA?一张图看懂

2.1 VLA的核心定义

VLA = Vision(视觉)+ Language(语言)+ Action(动作)

┌─────────────────────────────────────────────────────┐
│ │
│ 视觉输入(相机图像) │
│ │ │
│ ▼ │
│ ┌──────────┐ 语言指令 ┌──────────────┐ │
│ │ 视觉编码器 │◀──"把杯子放桌上"──│ 语言编码器 │ │
│ └────┬─────┘ └──────┬───────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────────┐ │
│ │ 多模态融合(Transformer) │ │
│ └──────────────┬──────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────┐ │
│ │ 动作解码器/动作头 │ │
│ └──────────────┬──────────────┘ │
│ │ │
│ ▼ │
│ 机器人动作(关节角度、末端位置、夹爪开合) │
│ │
└─────────────────────────────────────────────────────┘

2.2 通俗理解

把VLA想象成一个超级保姆机器人:

  • 看(Vision):通过摄像头看到房间里的状态——桌上有个杯子,旁边有个盘子
  • 听(Language):听到你说"把杯子放到盘子里"
  • 想(多模态融合):理解"杯子"是眼前那个红色的物体,"盘子"是旁边白色的容器,"放到…里"意味着抓取+移动+放置
  • 做(Action):控制机械臂执行抓取-移动-放置的动作序列
  • 2.3 VLA vs 传统机器人控制

    维度传统机器人VLA机器人
    指令方式 编程代码/示教 自然语言
    泛化能力 每个任务单独编程 一句话描述新任务
    环境理解 预设的传感器规则 端到端视觉理解
    适应能力 环境变化需重新编程 可适应新环境
    开发成本 高(需要专业工程师) 低(自然语言交互)

    第3章 VLA的前置知识

    3.1 大语言模型(LLM)基础

    核心概念:

    • Transformer:LLM的核心架构,通过自注意力机制处理序列数据
    • Token:文本被切分为token(词或子词),模型逐token生成
    • 预训练+微调:先在海量文本上学习语言规律,再在特定任务上微调
    • 上下文窗口:模型一次能处理的token数量(如GPT-4的128K token)

    与VLA的关系:VLA通常以预训练LLM为骨干网络,在其基础上添加视觉和动作能力。

    3.2 视觉-语言模型(VLM)基础

    核心概念:

    • 视觉编码器:通常是ViT(Vision Transformer),将图像转化为向量序列
    • 跨模态对齐:让视觉特征和语言特征在同一空间中对齐
    • 图文理解:同时理解图像内容和文字描述

    与VLA的关系:VLA = VLM + 动作输出。VLM提供了"看+理解"的能力,VLA在此基础上增加"做"的能力。

    3.3 机器人学基础

    核心概念:

    • 自由度(DOF):机器人关节能独立运动的维度数。例如6轴机械臂有6个自由度
    • 末端执行器:机器人"手"的部分,通常是夹爪或吸盘
    • 关节空间 vs 笛卡尔空间:
      • 关节空间:每个关节的角度 [θ1, θ2, θ3, θ4, θ5, θ6]
      • 笛卡尔空间:末端执行器的位置和姿态 [x, y, z, roll, pitch, yaw]
    • 动作空间:机器人可以执行的所有动作的集合
    • 本体感知(Proprioception):机器人对自身状态的感知(关节角度、力矩等)

    与VLA的关系:VLA输出的动作需要映射到机器人实际的控制指令。

    3.4 行为克隆(Behavior Cloning)基础

    核心思想:通过观察专家示范来学习如何行动。

    传统监督学习:
    输入:图像+指令
    标签:正确的动作(由人类专家示范)
    训练:让模型学习 输入→动作 的映射

    行为克隆在VLA中的应用:
    数据:人类操作机器人完成任务的视频+动作记录
    训练:VLA学习从视频帧+语言指令到动作的映射
    推理:给VLA新的图像和指令,输出动作控制机器人


    第二篇:技术篇——VLA的核心架构与原理


    第4章 VLA的总体架构

    4.1 三种主流架构范式

    范式一:VLM + 动作头(最主流)
    ┌───────────────┐
    │ 预训练VLM骨干 │ ← 冻结或微调
    │(如Qwen2-VL) │
    └───────┬───────┘

    ┌───────▼───────┐
    │ 动作头 │ ← 新增训练
    │(Action Head) │
    └───────┬───────┘


    机器人动作

    范式二:统一Token化(最优雅)
    ┌───────────────┐
    │ 统一Tokenizer │ ← 所有模态转为token
    └───────┬───────┘

    ┌───────▼───────┐
    │ 统一Transformer│ ← 处理所有模态
    └───────┬───────┘


    文本/图像/动作token

    范式三:扩散策略+VLM(最新趋势)
    ┌───────────────┐
    │ VLM骨干 │ ← 提供视觉语言理解
    └───────┬───────┘

    ┌───────▼───────┐
    │ 扩散模型 │ ← 生成动作序列
    │(Diffusion) │
    └───────┬───────┘


    机器人动作

    4.2 VLA的核心组件

    VLA = 视觉编码器 + 语言编码器 + 多模态骨干 + 动作输出模块

    ┌────────────────────────────────────────────────────────┐
    │ VLA模型 │
    │ │
    │ ┌────────────┐ ┌────────────┐ │
    │ │ 视觉编码器 │ │ 语言编码器 │ │
    │ │ (ViT/ │ │ (Tokenizer │ │
    │ │ SigLIP) │ │ + Embedding)│ │
    │ └──────┬─────┘ └──────┬─────┘ │
    │ │ │ │
    │ ▼ ▼ │
    │ ┌──────────────────────────────────┐ │
    │ │ 多模态骨干(Transformer) │ │
    │ │ 可以是预训练的LLM/VLM │ │
    │ └──────────────┬───────────────────┘ │
    │ │ │
    │ ▼ │
    │ ┌──────────────────────────────────┐ │
    │ │ 动作输出模块 │ │
    │ │ 方案A:离散token化 │ │
    │ │ 方案B:连续回归头 │ │
    │ │ 方案C:扩散模型 │ │
    │ └──────────────┬───────────────────┘ │
    │ │ │
    │ ▼ │
    │ 机器人动作序列 │
    └────────────────────────────────────────────────────────┘


    第5章 视觉编码器:机器人如何"看"

    5.1 视觉编码器的作用

    将原始图像像素转化为模型可以理解的向量表示。

    原始图像(480×640×3) → 视觉编码器 → 视觉特征向量序列

    例如:
    输入:480×640的RGB图像
    处理:ViT将图像切分为16×16的patch,每个patch编码为一个向量
    输出:(480/16)×(640/16) = 30×40 = 1200个视觉token

    5.2 VLA中常用的视觉编码器

    编码器来源特点被哪些VLA使用
    CLIP ViT OpenAI 图文对齐预训练,泛化能力强 RT-2, 多数VLA
    SigLIP Google 改进的图文对齐,效果更好 OpenVLA
    DINOv2 Meta 自监督预训练,细节感知强 部分VLA
    InternViT 上海AI Lab 超大规模,6B参数 InternVL系列

    5.3 视觉编码的关键设计选择

    分辨率:

    • 机器人场景通常需要较高的图像分辨率(细节很重要)
    • 常用:224×224, 336×336, 480×480
    • 更高分辨率 → 更多视觉token → 更多计算量

    预训练方式:

    • CLIP式预训练:图文对比学习,特征天然与语言对齐
    • 自监督预训练(DINOv2):不依赖文本,但需要额外对齐

    是否冻结:

    • 冻结视觉编码器:保持预训练的视觉能力,训练更快
    • 微调视觉编码器:适配机器人场景,但可能丢失通用性

    第6章 语言理解:机器人如何"听懂指令"

    6.1 语言指令的类型

    高层指令(High-level):
    "把红色的杯子放到桌子上"
    → 需要VLA理解物体、位置、动作的语义

    低层指令(Low-level):
    "移动到坐标(0.3, 0.5, 0.2)"
    → VLA直接输出对应的运动

    中层指令:
    "先抓住杯子,然后移动到盘子上方,最后松开"
    → 需要VLA理解任务的步骤分解

    6.2 语言编码方式

    方式一:使用LLM的Tokenizer

    "把红色杯子放到盘子里"
    → Tokenizer → [token_id_1, token_id_2, …, token_id_n]
    → Embedding层 → [向量1, 向量2, …, 向量n]

    方式二:使用专门的语言编码器

    如T5编码器:将指令编码为固定长度的向量

    主流选择:直接使用预训练LLM的Tokenizer和Embedding层,这样可以继承LLM的语言理解能力。

    6.3 语言指令的挑战

    • 歧义性:“把那个东西拿过来”——哪个东西?哪里?
    • 抽象性:“整理一下桌面”——具体要做什么?
    • 组合性:“先把A放到B上,再把C拿走”——多步任务
    • 泛化性:训练时没见过的物体描述

    第7章 动作输出:机器人如何"动手"

    这是VLA区别于VLM的最关键部分。

    7.1 动作空间的定义

    对于一个6轴机械臂+夹爪:

    动作空间 = {
    Δx, # 末端执行器X方向位移
    Δy, # Y方向位移
    Δz, # Z方向位移
    Δroll, # 绕X轴旋转
    Δpitch, # 绕Y轴旋转
    Δyaw, # 绕Z轴旋转
    Δgripper # 夹爪开合(1=开,0=关,或连续值)
    }

    共7个连续值,构成一个7维动作向量

    7.2 三种动作输出方案

    方案A:离散Token化(RT-2方案)

    动作空间离散化:
    连续值Δx ∈ [-1, 1] → 量化为256个离散值
    如:-1.0→token_0, -0.992→token_1, …, 1.0→token_255

    7个动作维度 × 256个离散值 = 7个离散token

    输出方式:
    VLA像生成文本一样,逐token生成动作:
    [token_128, token_200, token_50, token_100, token_150, token_80, token_255]
    → 解码为连续动作值:[0.0, 0.56, -0.61, 0.0, 0.17, -0.37, 1.0]

    优点:复用LLM的next-token预测能力,无需修改架构
    缺点:离散化损失精度

    方案B:连续回归头(MLP Head)

    在Transformer最后一层的输出上,接一个MLP回归头:

    Transformer输出向量 → MLP(隐藏层→7) → 7维连续动作向量

    优点:精度高,无量化损失
    缺点:需要额外的回归头,训练方式与LLM不同

    方案C:扩散模型(Diffusion Policy)

    不直接输出单步动作,而是生成一段动作序列:

    扩散过程:
    随机噪声 → 逐步去噪 → 动作序列 [a_t, a_t+1, …, a_t+H]
    (H为预测时域,如16步)

    VLM提供条件:
    视觉特征+语言特征 作为扩散模型的条件输入

    代表:π0, Octo

    优点:可以建模多模态动作分布(同一个状态可以有多种合理的动作)
    缺点:推理较慢(需要多步去噪)

    7.3 动作方案对比

    方案精度推理速度训练难度代表模型
    离散Token 中等 低(复用LLM) RT-2
    连续回归 OpenVLA
    扩散模型 较慢 π0, Octo

    第8章 训练方法:VLA如何学习

    8.1 训练数据

    VLA的训练数据通常来自机器人遥操作(Teleoperation):

    数据采集过程:
    人类操作员 → 遥操作机器人 → 完成任务(如抓取杯子)

    同时记录:
    · 机器人视角的图像序列 [img_1, img_2, …, img_T]
    · 语言指令 "把杯子放到盘子里"
    · 机器人动作序列 [action_1, action_2, …, action_T]
    · 机器人状态(关节角度等)

    8.2 训练目标

    标准行为克隆(Behavior Cloning):

    给定:
    · 图像 I_t(当前帧)
    · 语言指令 L
    · 真实动作 a_t(人类示范的动作)

    训练目标:
    最小化 Loss = ||f(I_t, L) – a_t||²

    即:让模型预测的动作尽可能接近人类示范的动作

    8.3 训练策略

    策略一:完全从头训练
    数据需求:极大(数十万条以上)
    效果:理论上最优,但成本极高
    代表:RT-2(在Google的大规模数据上训练)

    策略二:预训练VLM + 微调动作头
    数据需求:中等(数千到数万条)
    效果:最常用,性价比最高
    步骤:
    1. 使用预训练VLM(如Qwen2-VL)作为骨干
    2. 冻结或轻量微调VLM
    3. 训练动作输出模块
    代表:OpenVLA, RT-2

    策略三:少样本/零样本泛化
    数据需求:极少(几十到几百条)
    效果:依赖预训练VLM的强大泛化能力
    挑战:对新场景的适应能力有限

    8.4 数据增强

    常用数据增强方法:
    · 随机裁剪、旋转、翻转图像
    · 颜色抖动、亮度/对比度调整
    · 语言指令改写("拿起杯子" → "抓取杯子" → "把杯子拿起来")
    · 历史帧采样(随机选择过去的不同帧)


    第三篇:模型篇——里程碑VLA模型详解


    第9章 RT-2:Google的开创性工作

    9.1 基本信息

    • 全称:Robotic Transformer 2
    • 发布:Google DeepMind,2023年7月
    • 论文:“RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control”
    • 核心贡献:首次证明VLM可以转化为VLA,且预训练的视觉-语言知识能迁移到机器人控制

    9.2 架构

    RT-2 = PaLI-X/PaLM-E(预训练VLM) + 动作Token化

    ┌─────────────────────────────────────┐
    │ 预训练VLM(PaLI-X或PaLM-E) │
    │ · 视觉编码器:ViT │
    │ · 语言模型:Transformer decoder │
    │ · 在大规模图文数据上预训练 │
    └──────────────┬──────────────────────┘


    ┌─────────────────────────────────────┐
    │ 动作Token化 │
    │ · 将连续动作值量化为离散整数 │
    │ · 如:Δx=0.3 → token_166 │
    │ · 7个动作维度 → 7个离散token │
    │ · 复用VLM的词表,新增256个动作token │
    └──────────────┬──────────────────────┘


    逐token生成动作序列

    9.3 关键发现

  • Web知识迁移:RT-2能理解训练数据中从未见过的物体和概念(如"把泰勒·斯威夫特的CD放到黄色五角星上"),因为这些知识来自VLM的预训练
  • 涌现能力:RT-2展现出推理能力(如"把垃圾扔到垃圾桶里"——它知道什么是垃圾)
  • 规模效应:更大的VLM骨干 → 更好的VLA性能
  • 9.4 局限性

    • 依赖Google的大规模内部数据(Open X-Embodiment)
    • 模型巨大(PaLI-X 55B),部署成本高
    • 离散化动作的精度限制

    第10章 OpenVLA:开源VLA的标杆

    10.1 基本信息

    • 全称:Open Vision-Language-Action Model
    • 发布:Stanford等,2024年6月
    • 论文:“OpenVLA: An Open-Source Vision-Language-Action Model”
    • 核心贡献:首个完全开源的大规模VLA模型,可复现、可微调

    10.2 架构

    OpenVLA = Prismatic-7B VLM(开源VLM) + 动作Token化

    ┌─────────────────────────────────────────┐
    │ 视觉编码器(双编码器) │
    │ · SigLIP-SO400M:语义理解 │
    │ · DINOv2:细节感知 │
    │ → 两个编码器的特征拼接 │
    └──────────────┬──────────────────────────┘


    ┌─────────────────────────────────────────┐
    │ 语言模型骨干:LLaMA 2 7B │
    │ · 接收视觉特征和语言token │
    │ · Transformer decoder架构 │
    └──────────────┬──────────────────────────┘


    ┌─────────────────────────────────────────┐
    │ 动作Token化 │
    │ · 256 bins离散化 │
    │ · 7维动作(Δx,Δy,Δz,Δroll,Δpitch,Δyaw,Δgrip)│
    └──────────────┬──────────────────────────┘


    逐token生成动作

    10.3 关键创新

  • 双视觉编码器:SigLIP(语义)+ DINOv2(细节),比单编码器效果更好
  • 开源数据训练:在Open X-Embodiment数据集(约97万条机器人轨迹)上训练
  • 可微调:可以在特定机器人和任务上微调,仅需约60条示范数据即可适配
  • 10.4 性能

    • 在多个机器人基准上与RT-2-X(55B)性能相当
    • 但模型只有7B,部署成本低得多
    • 在新任务和新环境上展现出良好的泛化能力

    第11章 π0/π0.5:Physical Intelligence的突破

    11.1 π0(2024年10月)

    • 核心创新:将**扩散模型(Diffusion Policy)**与VLM结合
    • 架构:

    π0 = 预训练VLM(PaliGemma 3B) + 流匹配扩散模型(Flow Matching)

    ┌─────────────────────────────────┐
    │ 预训练VLM(PaliGemma 3B) │
    │ · 处理图像和语言指令 │
    │ · 输出多模态特征 │
    └──────────┬──────────────────────┘
    │ 作为条件

    ┌─────────────────────────────────┐
    │ 流匹配扩散模型 │
    │ · 输入:随机噪声 │
    │ · 条件:VLM特征 │
    │ · 输出:动作序列(连续值) │
    │ · 预测时域:未来50步动作 │
    └──────────┬──────────────────────┘


    连续动作序列

    • 关键优势:
      • 扩散模型可以建模多模态动作分布(同一个状态可以有多种合理的动作)
      • 比离散token化精度更高
      • 预测整段动作序列而非单步,动作更流畅

    11.2 π0.5(2025年3月)

    • 核心创新:在π0基础上增加高层规划能力
    • 双层架构:

    高层规划器(VLM):
    看到图像 + 听到"清理桌面"
    → 输出子任务序列:"1.拿起杯子 2.放到水槽 3.拿起纸巾 4.扔进垃圾桶"

    低层执行器(π0扩散策略):
    接收子任务"拿起杯子"
    → 输出具体动作序列控制机器人执行

    • 关键突破:
      • 可以处理复杂的长时域任务
      • 高层用VLM做语义规划,低层用扩散策略做精确控制
      • 在真实家庭环境中展示了强大的泛化能力

    第12章 其他重要VLA模型

    12.1 Octo(2024年)

    • Berkeley出品,开源通用机器人策略
    • 基于Transformer,使用扩散头输出动作
    • 在Open X-Embodiment数据集上训练
    • 可以微调适配新机器人

    12.2 RoboFlamingo(2024年)

    • 基于Flamingo VLM架构
    • 使用交叉注意力融合视觉和语言信息
    • 在多个机器人基准上表现优异

    12.3 SpatialVLA(2025年)

    • 引入3D空间理解能力
    • 将2D图像特征提升为3D空间感知
    • 对空间推理任务(如"放到…左边")效果更好

    12.4 DigiRL(2024年)

    • 使用强化学习在线优化VLA
    • 不仅依赖行为克隆,还通过实际交互改进
    • 解决了行为克隆的分布偏移问题

    第四篇:实践篇——如何入门VLA


    第13章 VLA的数据收集与处理

    13.1 数据收集方式

    方式一:人类遥操作(最常用)
    人类操作员 → 遥操作设备(如VR手套、主从控制器)→ 控制机器人完成任务
    同时记录:图像、动作、语言标注

    方式二:人类视频标注
    收集人类操作的视频 → 标注动作(手动或自动)→ 用于训练

    方式三:仿真环境
    在模拟器(如MuJoCo、Isaac Gym)中自动采集数据
    优点:数据量大、成本低、安全
    缺点:与真实世界有差距(sim-to-real gap)

    方式四:混合数据
    仿真数据 + 真实数据混合训练
    先在仿真中预训练,再用少量真实数据微调

    13.2 数据格式

    一条训练数据包含:
    {
    "episode_id": 1234,
    "task_description": "把红色杯子放到盘子里",
    "steps": [
    {
    "image": "frame_0001.jpg", # 机器人视角图像
    "state": [0.1, 0.2, 0.3, …], # 机器人状态(关节角度等)
    "action": [0.01, -0.02, 0.03, 0.0, 0.0, 0.0, 1.0], # 7维动作
    "language_instruction": "把红色杯子放到盘子里"
    },
    {
    "image": "frame_0002.jpg",
    "state": [0.11, 0.18, 0.33, …],
    "action": [0.02, -0.01, 0.02, 0.0, 0.0, 0.0, 1.0],
    "language_instruction": "把红色杯子放到盘子里"
    },

    ]
    }

    13.3 数据集资源

    数据集规模内容来源
    Open X-Embodiment 100万+轨迹 多种机器人、多种任务 Google等21家机构联合
    Bridge V2 6万条 单臂机器人操作 Stanford
    DROID 7万条 多种机器人的真实操作 多所大学
    RLBench 100个任务 仿真环境中的操作 DeepMind
    LIBERO 130个任务 长时域操作 UT Austin

    第14章 VLA的训练与部署

    14.1 训练环境搭建

    # 基础环境
    conda create -n vla python=3.10
    conda activate vla
    pip install torch torchvision transformers

    # OpenVLA训练环境
    git clone https://github.com/openvla/openvla.git
    cd openvla
    pip install -e .

    # 硬件需求
    # 训练:至少4×A100 80GB(7B模型)
    # 推理:1×A100 或 1×RTX 4090

    14.2 使用OpenVLA进行推理

    from transformers import AutoModelForVision2Seq, AutoProcessor
    from PIL import Image

    # 加载预训练模型
    processor = AutoProcessor.from_pretrained("openvla/openvla-7b", trust_remote_code=True)
    model = AutoModelForVision2Seq.from_pretrained("openvla/openvla-7b", trust_remote_code=True)

    # 准备输入
    image = Image.open("robot_view.jpg")
    prompt = "In: What action should the robot take to pick up the cup?\\nOut:"

    # 推理
    inputs = processor(prompt, image).to("cuda", dtype=torch.bfloat16)
    action = model.predict_action(inputs, unnorm_key="bridge_orig", do_sample=False)

    print(f"预测动作:{action}")
    # 输出:[Δx, Δy, Δz, Δroll, Δpitch, Δyaw, Δgripper]

    14.3 微调OpenVLA到新机器人

    # 使用LoRA高效微调(仅需约60条示范数据)
    from peft import LoraConfig, get_peft_model

    # 配置LoRA
    lora_config = LoraConfig(
    r=32, # LoRA秩
    lora_alpha=16, # 缩放因子
    target_modules=["q_proj", "v_proj"], # 应用LoRA的层
    lora_dropout=0.05,
    )

    # 应用LoRA
    model = get_peft_model(model, lora_config)

    # 训练(仅训练LoRA参数,约0.1%的总参数量)
    trainer = Trainer(
    model=model,
    train_dataset=your_robot_dataset, # 你的机器人数据
    args=TrainingArguments(
    num_train_epochs=50,
    per_device_train_batch_size=8,
    learning_rate=2e-5,
    output_dir="./vla_finetuned",
    ),
    )
    trainer.train()


    第15章 VLA的评测与优化

    15.1 评测指标

    指标含义计算方式
    成功率(SR) 任务完成的比例 成功次数/总尝试次数
    进度分数(Progress Score) 任务完成的进度 完成的子任务数/总子任务数
    泛化成功率 在新物体/新场景上的成功率 新场景成功数/新场景尝试数
    推理延迟 模型推理一次的时间 毫秒级
    动作精度 预测动作与专家动作的偏差 MSE/MAE

    15.2 常见问题与优化

    问题1:分布偏移(Distribution Shift)

    现象:训练数据中没见过的情况出现时,模型表现急剧下降
    解决:
    · 增加训练数据的多样性
    · 使用DAgger(在线交互+人类纠正)
    · 使用强化学习在线优化

    问题2:视觉泛化不足

    现象:换了桌子颜色/背景,模型就失败了
    解决:
    · 数据增强(颜色、背景随机化)
    · 使用更强的视觉编码器(如DINOv2)
    · 域随机化(Domain Randomization)

    问题3:长时域任务失败

    现象:多步任务中间出错,后续全部失败
    解决:
    · 分层架构(高层规划+低层执行)
    · 使用历史帧信息
    · 增加预测时域(预测更多步动作)


    第五篇:前沿与展望


    第16章 VLA的当前挑战

    16.1 数据瓶颈

    问题:
    · 真实机器人数据采集成本高(需要硬件+人力)
    · 数据多样性不足(通常在实验室环境中采集)
    · 数据规模远不如图文数据(百万级 vs 十亿级)

    可能的解决方向:
    · 仿真数据 + Sim-to-Real迁移
    · 人类视频数据的利用(YouTube等)
    · 数据增强技术
    · 合成数据生成

    16.2 实时性要求

    问题:
    · 机器人控制需要高频(10-100Hz)
    · VLA推理需要时间(100ms-1s)
    · 扩散模型更慢(需要多步去噪)

    可能的解决方向:
    · 模型蒸馏(大模型→小模型)
    · 模型量化(FP16→INT8)
    · 动作分块预测(一次预测多步动作)
    · 异步控制(推理和执行并行)

    16.3 安全性

    问题:
    · VLA是黑箱模型,难以解释决策过程
    · 错误动作可能导致机器人损坏或伤害人
    · 对抗样本攻击

    可能的解决方向:
    · 安全约束层(动作前检查安全性)
    · 可解释性增强
    · 人在回路(Human-in-the-loop)

    16.4 Sim-to-Real Gap

    问题:
    · 仿真环境与真实世界有差距
    · 光照、纹理、物理引擎的不精确
    · 在仿真中训练的模型直接部署到真实机器人效果下降

    可能的解决方向:
    · 域随机化(Domain Randomization)
    · 域适应(Domain Adaptation)
    · 更高保真的仿真器


    第17章 VLA的未来趋势

    17.1 趋势一:更大规模的预训练

    方向:
    · 利用互联网级别的视频数据预训练
    · 跨机器人、跨任务的通用预训练
    · 类似GPT的"机器人基础模型"

    预期效果:
    · 零样本泛化到新任务
    · 少量数据即可适配新机器人

    17.2 趋势二:多模态输入扩展

    当前VLA:视觉 + 语言 → 动作
    未来VLA:视觉 + 语言 + 触觉 + 力觉 + 声音 → 动作

    触觉感知:抓取力度控制
    力觉反馈:精细操作(如拧螺丝)
    声音理解:"发出声音的那个东西"

    17.3 趋势三:长时域任务规划

    当前:单步或短序列动作预测
    未来:与LLM结合进行高层任务规划

    例如:
    人类:"帮我做一杯咖啡"
    高层规划器(LLM):
    1. 找到咖啡杯
    2. 放到咖啡机下面
    3. 按下咖啡机按钮
    4. 等待咖啡做好
    5. 拿起咖啡杯
    6. 送到人类面前
    低层执行器(VLA):逐步执行每个子任务

    17.4 趋势四:具身智能Agent

    VLA的终极形态:通用具身智能Agent

    能力:
    · 理解自然语言指令
    · 感知复杂环境
    · 规划多步任务
    · 执行精细操作
    · 从交互中学习
    · 适应新环境和新任务

    就像一个"机器人版的ChatGPT"——你用自然语言告诉它做什么,它就能做到。

    17.5 产业应用前景

    领域应用场景当前状态
    工业制造 柔性装配、质量检测 试点应用
    家庭服务 做饭、打扫、照顾老人 研究阶段
    物流仓储 分拣、打包、搬运 部分商用
    医疗健康 手术辅助、康复训练 研究阶段
    农业 采摘、播种、除草 试点应用

    附录

    附录A:核心术语表

    术语英文解释
    VLA Vision-Language-Action 视觉-语言-动作模型
    VLM Vision-Language Model 视觉-语言模型
    LLM Large Language Model 大语言模型
    DOF Degrees of Freedom 自由度
    BC Behavior Cloning 行为克隆
    Diffusion Policy 扩散策略 使用扩散模型生成动作序列的方法
    Flow Matching 流匹配 一种高效的扩散模型训练方法
    LoRA Low-Rank Adaptation 低秩适配,高效微调方法
    Tokenizer 分词器 将输入转化为离散token的工具
    Proprioception 本体感知 机器人对自身状态的感知
    End Effector 末端执行器 机器人的"手"
    Teleoperation 遥操作 人类远程操控机器人
    Sim-to-Real 仿真到真实 仿真环境训练→真实世界部署的迁移
    Domain Randomization 域随机化 随机化训练环境以提升泛化能力
    DAgger Dataset Aggregation 在线交互+人类纠正的训练方法
    Open X-Embodiment Google等联合发布的开源机器人数据集

    附录B:推荐论文列表

    入门必读:

  • RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control (Google, 2023)
  • OpenVLA: An Open-Source Vision-Language-Action Model (Stanford, 2024)
  • π0: A Vision-Language-Action Flow Model for General Robot Control (Physical Intelligence, 2024)
  • 核心技术: 4. CLIP: Learning Transferable Visual Models (OpenAI, 2021) – 视觉编码基础 5. Diffusion Policy: Visuomotor Policy Learning via Action Diffusion (Columbia, 2023) – 扩散策略基础 6. Open X-Embodiment: Robotic Learning Datasets and RT-X Models (Google等, 2024) – 数据集

    前沿进展: 7. π0.5: a Vision-Language-Action Model with Open-World Generalization (Physical Intelligence, 2025) 8. SpatialVLA: Exploring Spatial Representations for Visual-Language-Action Model (2025) 9. DigiRL: Training In-The-Wild Device-Control Agents with Autonomous Reinforcement Learning (2024)

    附录C:推荐学习路径

    第一阶段:基础(1-2周)

  • 理解Transformer架构
  • 学习CLIP的图文对齐思想
  • 了解行为克隆的基本概念
  • 阅读RT-2论文
  • 第二阶段:核心技术(2-4周) 5. 学习OpenVLA的架构和代码 6. 理解扩散模型基础 7. 了解机器人学基础(正运动学、逆运动学) 8. 阅读π0论文

    第三阶段:动手实践(4-8周) 9. 搭建OpenVLA训练环境 10. 在仿真环境(如LIBERO)中训练VLA 11. 尝试微调VLA到新任务 12. 了解数据收集流程

    第四阶段:前沿探索(持续) 13. 跟踪最新VLA论文 14. 研究Sim-to-Real迁移 15. 探索多模态扩展(触觉、力觉) 16. 参与开源社区

    附录D:开源资源

    资源链接说明
    OpenVLA github.com/openvla/openvla 开源VLA模型
    Octo github.com/octo-models/octo Berkeley开源机器人策略
    LeRobot github.com/huggingface/lerobot HuggingFace的机器人学习框架
    Open X-Embodiment robotics-transformer-x.github.io 数据集
    LIBERO github.com/Lifelong-Robot-Learning/LIBERO 仿真评测环境
    赞(0)
    未经允许不得转载:171主机测评 » VLA(Vision-Language-Action)深入理解
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址