【具身智能】OpenVLA论文阅读随笔

本文是在阅读《OpenVLA:An Open-Source Vision-Language-Action Model》时记录的笔记,带有很强个人主观性,仅供参考。

前言

OpenVLA,主要解决的核心问题,是面对封闭式VLA的获取困难,以及缺少针对新任务而微调VLA的方法。

OpenVLA有几个特点:

  • 基本方面:参数量70亿,开源,970k个来自真实世界集合的训练数据。
  • 构建方面:基于Llama 2 语言模型,加一个融合的预训练特征的视觉编码器。
  • 结果方面:
    • 在原任务和泛化任务上均表现强劲。
    • 参数量相比之下很小,而且可以通过特殊方法在消费级GPU上微调和部署。

基本介绍到这里。

总体核心思路

1 - 机器人学习策略的弱点:难以泛化到训练任务之外。

2 - 考虑已有的模型:语言模型和视觉模型的能力已具备泛化和更多能力。

3 - 进行思考:将语言视觉模型融合到机器人策略中,赋予泛化等更强能力。

已有的方法如PaLI,RT-2,已经展示了很好的泛化力和鲁棒性。

但如上文所述,仍然存在问题。

  • 封闭,信息获取困难。
  • 难以广泛通用,由于量级等原因。

于是有了OpenVLA。

一些知识

视觉语言模型(VLMs)

根据图像和语言生成自然语言。

主要是将视觉编码器与语言模型连接起来。

通用机器人策略

其它的是额外加一个预测模型,这里主要说OpenVLA的。

将动作视为Token,直接让VLMs预测。("主要"------一行,😂)

VLAs

简单说一下。

主要就是将VLMs扩展到VLAs,而现存模型的条件都苛刻,于是OpenVLA改进。

OpenVLA

VLM基础

VLM通常由一个视觉编码器,投影器,LLM组成。

  • 视觉编码器:处理输入图像
  • 投影器:将视觉编码器输出"投影"到语言空间
  • LLM:接收投影和文本输入,进行推理。

在OpenVLA中,VLM的构建(Prismatic):

视觉编码器方面(6亿参数)

由两部分组成,SigLIP+DinoV2。两者分别处理,在通道维度上拼接。可以有效提升空间推理能力。

其中,研究人员发现不同于VLM训练时冻结视觉编码器,在VLA训练期间微调视觉编码器可以带来更好的效果。

Llama 2(70亿参数)

语言模型骨干网络。

MLP投影器(两层小型)

在决定使用哪个VLM时,研究人员通过对比 Prismatic ,IDEFICS-1 和 LLaVA 三种网络微调。结果显示Prismatic的效果最好。(也许是两个视觉编码器组成带来的空间推理能力的提高所导致的)

训练

本质上是对骨干网络(Llama 2)进行微调以适应机器人任务。

目标:

通过输入图像+语言指令,生成动作预测。

困难:

  • LLM输出本质上为离散的Token,而机器人动作通常为连续值。
  • 如何通过微调,将机器人动作放进LLM的语言空间中。

方法:

动作映射

将不同维度的机器人动作分别用256个离散Token进行对应。

对于每个维度,这256个离散的Token均匀分配在机器人维度上的动作区间。

(例如,机器人一个关节的旋转角度区间为10,20,这256个Token就将此区间平均分割,每个Token对应一段角度,大致是这个意思)

其中,对于每个动作维度,以训练数据中的1%~99%为总区间,以忽略异常值。

空间对应

于是机器人动作有若干个256个Token进行对应,接下来要把它们放进LLM的空间中。

OpenVLA直接采用覆盖的方法(原始的空Token不足对应),将LLM中使用率极小的Token覆盖为机器人动作Token。

训练数据

两个主要目的,多样化和高效微调。

以Open X-Embodiment数据为基础进行筛选处理。(加一些额外数据)

1):进行输入输出连贯筛选处理。

2):用Octo处理筛选后的数据,使它们数据混合权重合适。

其它:

  • 关于图像分辨率,发现在效果相同情况下,224×224 px 比 384×384 px 训练时间小3倍,于是采用前者为图像分辨率。
  • 关于训练轮数,在VLA训练中增加训练轮数有助于提升性能。(最终27轮)
  • 关于学习率,采用2e-5最好。

实验

主要从三个方面进行评估:

  • 对于多任务和泛化能力,与先前的策略相比如何。
  • 在新任务机器人数据上微调后,与最先进的模仿学习方法比如何。
  • 在参数微调和模型量化上,OpenVLA的性能和成本如何。

机器人任务实验评估

在BridgeData V2和Google机器人评估上,与RT-1-X、RT-2-X 和 Octo 进行对比评估。

结果,在测试任务泛化度高的情况下(更难),RT-1-X和Octo评估效果差RT-2-X和OpenVLA一大截。

在Google上,RT-2-X与OpenVLA效果相当。

在BridgeData V2上,OpenVLA更优于RT-2-X。

新任务机器人实验评估

在新任务上,与Diffusion Policy,Diffusion Policy (matched),Octo(微调)方法对比。(还有一个OpenVLA (scratch,非预训练),即直接在新任务上微调VLM,以测试预训练的OpenVLA的能力)

结果,在单指令任务上,Diffusion Policy类方法表现相当或优于OpenVLA。

在多样化任务上,OpenVLA预训练版表现更好。

而且综合单指令和多样化任务来看,OpenVLA的综合实力最强。

(所以将Diffusion Policy方法运用于OpenVLA以达到全面高效,可能是未来研究方向)

参数微调实验评估

比较

  • 全量微调(所有权重微调)
  • 最后一层微调(仅微调 Transformer 骨干网络的最后一层和词元嵌入矩阵)
  • 冻结视绝微调(除视觉编码器外其它微调)
  • 夹微调(仅微调视觉编码器、词元嵌入矩阵和最后一层)
  • LoRA微调(低秩适应技术)

结果:在冻结视觉的所有微调中效果较差。

夹微调的效果更佳,成本也更小。

LoRA在成本和性能间取得了最佳平衡。

  • 性能上,与全量微调相当。
  • 成本上,在单张A100上用10-15小时完成微调。

模型量化实验评估

通过为服务LLM开发的现代量化技术进行测试,以bfloat16精度处理OpenVLA,进一步测试8位精度与4位精度的推理速度与内存占用。

结果,以bfloat16精度处理的OpenVLA能部署于16GB的GPU上。

进一步,在用于测试的A5000上,8位精度仅能以1.2Hz的频率运行,这极大影响了性能。

而4位精度在与bfloat16推理性能相似的情况下,能以3Hz的频率运行。

原论文后续部分还提供了额外实验和具体实验的细节。

总结

OpenVLA做到的事情

  • 先进,在目标任务,泛化能力上媲美和超越先前模型。
  • 开源,解决了模型封闭而带来的各种不方便。
  • 迁移,对新任务的适应能力强大。
  • 使用,通过量化可在消费级GPU上部署使用。

局限与未来

  • 单图,少模态输入。在未来可以探索多图和多模态输入。
  • 进一步提高推理效率。
  • 进一步提高成功率。
  • VLM的最佳大小,融合训练数据集的影响,各种视觉特征的效果等问题的探索。

代码+设备

开源地址:你好👋

基础的 OpenVLA 需要 15GB 的显存,并且在一块 NVIDIA RTX 4090 GPU 上能以大约 6Hz 的频率运行。

官方还提供了一个远程 VLA 推理服务器,允许向机器人实时远程流式传输动作预测。即在上链接中。

相关推荐
老王以为1 小时前
走进AI Agent第三篇:让 Agent 记住你
前端·人工智能·机器学习
月华路1 小时前
《模型不玄学》第21章 稳定性与偏置审计
人工智能·深度学习·机器学习
等一朵映山红2 小时前
扩散模型在跨模态生成任务中的时序一致性优化
人工智能·机器学习
Capricorn19883 小时前
跨端同步与记忆锁定排障:OpenClaw 2.0 Active Memory 云端劫持危机,知芽 Notebook Skill 单元记忆架构解析
大数据·论文阅读·人工智能·笔记·架构·论文笔记
等一朵映山红3 小时前
对抗性攻击与鲁棒性:破解机器学习模型的“视觉盲区”
人工智能·机器学习
计算机源码社4 小时前
分享一个基于大数据的跨平台内容生态画像与互动等级分析系统,基于Hadoop+Spark的社交媒体互动数据可视化大屏分析
大数据·hadoop·python·机器学习·数据挖掘·spark·毕业设计
deepdata_cn4 小时前
机器学习≠逻辑推理!分清统计AI与符号AI
人工智能·机器学习
在所不辞兄4 小时前
【零基础学智能仿真-11】CatBoost——让材料类型和边界条件参与力学预测
人工智能·python·深度学习·神经网络·机器学习·工程技术
kyle~4 小时前
奇异值分解(SVD)
人工智能·算法·机器学习