端到端自动驾驶大模型:视觉-语言-动作模型 VLA

模型框架定义、模型快速迭代能力是考查智驾团队出活能力的两个核心指标。在展开讨论Vision-Language-Action Models(VLA)之前,咱们先来讨论端到端自动驾驶大模型设计。

目录

1. 端到端自动驾驶大模型设计

1.1 模型输入设计

1.2 模型输出设计

1.3 实现难点分析

2 VLA相关工作

2.1 视觉语言模型VLM

2.2 通用机器人策略

2.3 视觉-语言-动作模型VLA

2.4 谷歌RT-2

2.5 斯坦福OpenVLA

3 OpenVLA 模型

3.1 VLM模型

3.2 VLA训练过程

3.3 训练数据集

3.4 图形分辨率

3.5 视觉编码器微调

3.6 训练轮数、学习率

3.7 训练硬件设施

3.8 Parameter微调

4.写在最后


1. 端到端自动驾驶大模型设计

1.1 模型输入设计

先看看之前在100多人的一个自动驾驶群里的讨论发言:

1.2 模型输出设计

接着上面话题,端到端自动驾驶模型输出的设计应该包括三方面

  1. 第一种感知信息,包括Occupancy占用、道路结构网络等(实时构建4D全场景地图,这一步的实现,还顺带实现可以不用高精地图);
  2. 第二种是驾驶场景描述信息,包括各种动态场景描述和交通参与者行为描述。当前,大家为了快速实现自动驾驶,人为编辑了很多场景及分类,按照各种ODD场景匹配各种驾驶元动作,这使得智能上限很低。增加了场景理解的一些描述信息,能有效的监督大模型能够真正理解场景和交通参与者意图,大大提升自动驾驶智能的上限。
  3. 第三个信息则是在感知万物、知晓常识的基础上,实现未来轨迹推理,直接输出驾驶Action。当前普遍做法是感知的输出,作为下一环轨迹规划的输入,这严格说来不是真正意义上的端到端。

1.3 实现难点分析

如果认定强化学习可以实现超人类司机的能力,则坚定采用强化学习这一套逻辑。

那强化学习特别有针对性的数据集从哪里来?

咱们马上会想到现场采集、生成式AIGC等。AIGC生成感知数据不算难(这环节难点在于运动数据精度),最难的点在模仿老司机行为。也许这环节解决了,个人认为机器人开车超过人类应该没问题。

鉴于前面推理,这样看来,自动驾驶模型应该是一个Vision-Language-Action(VLA)大模型,即模型容量足够大,在开放数据集下感知万物,同时有常识能推理,最后给出优雅的Action。

当前大模型的底层核心框架仍然是transformer的天下,这种耗资源的算法急需被替换,这能加速自动驾驶大模型的商业化落地进程。总之堆人(动不动需要几千人)、堆资源(需要几万颗GPU)的方式不符合商业逻辑。

本专题由 深圳季连科技有限公司 AIgraphX 自动驾驶大模型团队编辑。下面内容来自网络,侵权即删。文中如有错误的地方,也请在留言区告知。

2 VLA相关工作

2.1 视觉语言模型VLM

视觉语言模型Vision Language Models(VLMs)在互联网规模的数据上进行训练,从输入图像和语言提示生成自然语言,已被用于从视觉问答到物体定位的无数应用。最近VLM的关键进展之一是模型架构,它将预训练视觉编码器与预训练语言模型的特征连接起来,直接建立在计算机视觉和自然语言建模的基础上,以创建强大的多模态模型。新开源的VLMs已经融合了一种更简单的“patch-as-token”方法,将来自预训练视觉转换器的patch特征被视为token,然后投影到语言模型的输入空间中。这种简单性使得大规模语言模型VLM的训练变得很容易。

2.2 通用机器人策略

机器人技术最近的一个趋势是在大型不同机器人数据集上训练多任务“通才”机器人策略,涵盖许多不同的机器人实例。值得注意的是,Octo算法训练了一个通才策略,该策略可以控制多个机器人开箱即用,并允许对新机器人设置进行灵活的微调。

2.3 视觉-语言-动作模型VLA

许多工作已经探索了VLM在机器人中的应用,例如,用于视觉状态表示、目标检测、高级规划,以及提供反馈信号,其他将VLM直接集成到端到端视觉运动操控策略中。最近的一些工作已经探索了使用大型预训练VLM模型来预测机器人的动作。这种模型通常被称为视觉语言动作模型Vision-Language-Action Models(VLAs),因为它们将机器人控制动作直接融合到VLM主干中。

这有三个关键好处:

  1. 它在大型互联网规模的视觉语言数据集上执行视觉和语言对齐;
  2. 使用通用架构,而不是对机器人控制定制,允许我们利用现代VLM可扩展基础设施,并以最小代码修改量扩展到训练十亿参数策略;
  3. 它为机器人从VLM的快速改进提供了直接途径。

2.4 谷歌RT-2

Robotic Transformer 2(RT-2)是由谷歌 DeepMind 推出的视觉-语言-动作(VLA)技术,它为人类提供了通过纯语言命令来优化机器人控制的能力。RT-2可以从网络和机器人的数据中学习,并将这些知识转化为机器人控制通用指令,帮助机器人在未曾见过的现实环境中完成各种复杂任务,同时提高机器人适应性和推理能力。

2.5 斯坦福OpenVLA

24年6月,Stanford联合UC Berkeley、TRI、Deepmind 和 MIT发布了论文“OpenVLA: An Open-Source Vision-Language-Action Model”。

OpenVLA,一个7B参数的开源视觉语言动作模型(VLA),在Open X-Embodiment 970 k机器人数据集上进行了训练。OpenVLA为通用机器人动作策略设定了一个新的状态。它支持开箱即用控制多个机器人,并可以通过高效的参数微调快速适应新机器人领域。OpenVLA权重和PyTorch训练管道是完全开源的,可以从HuggingFace下载和微调该模型。
OpenVLA构建在Llama 2语言模型之上,并结合了视觉编码器,融合了DINOv2和SigLIP的预训练特征。作为增加的数据多样性和新模型组件的产物,OpenVLA在通才操作方面表现出了强大的性能,在29个任务和多个机器人实例中,绝对任务成功率超过RT-2-X(55B)等封闭模型16.5%,参数减少了7倍。进一步实验表明,可以有效地微调OpenVLA以适应新的设置,在涉及多个对象和强语言基础能力的多任务环境中具有特别强的泛化结果,并且比从头开始的模仿学习方法(如扩散策略)高出20.4%。

3 OpenVLA 模型

Figure 5: OpenVLA model architecture. Given an image observation and a language instruction, the model predicts 7-dimensional robot control actions. The architecture consists of three key components: (1) a vision encoder that concatenates Dino V2  and SigLIP features, (2) a projector that maps visual features to the language embedding space, and (3) the LLM backbone, a Llama 2 7B-parameter large language model.

3.1 VLM模型

VLM模型架构由三个主要部分组成(见图5):

  1. Visual Encoder,将图像输入映射为image patch embeddings。
  2. Projector,将视觉编码器的output embeddings映射到语言模型的输入空间。
  3. Large Language Model Backbone,大型语言模型(LLM)主干。

VLM是一个典型的端到端训练模型。本方案以Prismatic-7B VLM模型为基础。

Prismatic遵循上述相同的标准架构,具有600m参数的视觉编码器,一个2层MLP Projector和一个7B参数的Llama 2语言模型主干。值得注意的是,Prismatic使用了两个视觉编码器,由SigLIP和DinoV2模型组成。输入图像patch分别通过两个编码器传递,结果特征向量按通道连接。

与更常用的视觉编码器(如CLIP或仅SigLIP编码器)相比,DinoV2特征已被证明有助于改进空间推理这对机器人控制尤其有帮助。

SigLIP、DinoV2和Llama 2没有公布有关它们的训练数据的细节,这些数据可能分别由数万亿个来自互联网的图像-文本、纯图像和纯文本数据组成。

Prismatic VLM使用LLaVA 1.5数据混合在这些组件之上进行了微调,利用包含来自开源数据集的约1M图像-文本和纯文本数据样本。

3.2 VLA训练过程

为了训练OpenVLA,我们对预训练的Prismatic - 7B VLM主干进行微调,用于机器人动作预测(见图5)。我们将动作预测问题表述为“视觉语言”任务,其中输入观察图像和自然语言任务指令被映射到预测机器人动作串。

3.3 训练数据集

构建OpenVLA训练数据集的目标是捕获大量不同的机器人embodiments, scenes, and tasks。这使得最终模型能够控制各种机器人开箱即用,并允许对新机器人设置进行有效的微调。我们利用Open X-Embodiment数据集作为基础来管理我们的训练数据集。

完整的OpenX数据集由70多个独立的机器人数据集组成,其中包含超过2M个机器人轨迹,这些数据集在大型社区的努力下汇集成一个连贯且易于使用的数据格式。为了使对这些数据的训练可行,我们对原始数据集OpenX应用了多个数据管理步骤。

  1. 限制训练数据集仅包含至少一个第三人称摄像机的操作数据集,并使用单臂末端执行器控制。
  2. 对通过第一轮过滤的所有数据集利用Octo数据混合权重。Octo启发式地降低或删除多样性较小的数据集,并增加具有较大任务和场景多样性的数据集的权重。
  3. 还尝试将一些额外的数据集合并到我们的训练混合数据中。这些数据集是自Octo发布以来添加到OpenX数据集的,包括DROID数据集,尽管混合权重为10%。在实践中,我们发现在整个训练过程中,未来可能需要更大的混合权重或模型来适应其多样性。

3.4 图形分辨率

输入图像的分辨率对VLA训练的计算要求有显著影响,因为更高分辨率的图像导致更多的image patch tokens,从而导致更长的上下文长度,从而二次增加训练计算量。
比较了224 × 224px和384 × 384px分别率,发现后者训练时间长增加了3倍,但性能没有明显增长。因此,OpenVLA模型最终选择了224 × 224px分辨率。

3.5 视觉编码器微调

先前对VLM的研究发现,在VLM训练期间冻结视觉编码器通常会导致更高的性能。直观地说,冻结视觉编码器可以更好地保留从互联网规模的预训练中学到的鲁棒特征。然而,我们发现在VLA训练期间微调视觉编码器对于良好的VLA性能至关重要。我们猜测,预训练的视觉主干可能无法捕捉到场景重要部分的足够细粒度的空间细节,从而无法实现机器人的精确控制。

3.6 训练轮数、学习率

典型的LLM或VLM最多在训练数据集上完成一两个epoch。相比之下,我们发现对于VLA训练来说,在训练数据集中迭代多次是很重要的,性能会不断提高,直到训练动作令牌的准确率超过95%。我们最后完成了27个epoch。

我们在VLA训练上使用过多个数量级的学习率,最终2e-5的固定学习率(与VLM预训练期间使用的学习率相同)获得了最佳结果,而且发现学习率warmup不会带来好处。

3.7 训练硬件设施

用64个A100 GPU训练了14天,总共21,500个A100小时,批量大小设置为2048。

在推理过程中,OpenVLA在bfloat16精度加载时需要15GB的GPU内存,并且在一个NVIDIA RTX 4090 GPU 以6Hz的速度运行。

3.8 Parameter微调

具体来说,我们比较了以下几种微调方法:

  1. 在微调期间,完全微调更新所有权重;
  2. 只微调OpenVLA的transformer骨干和令牌嵌入矩阵的最后一层;
  3. Freezes视觉编码器,但微调所有其他权重;
  4. Sandwich微调,Unfreezes视觉编码器、令牌嵌入矩阵和最后一层;
  5. LoRA,采用流行的低秩自适应技术,将多个秩值应用于模型的所有线性层。

4.写在最后

随着Nerf、3DGS技术的发展,感知道路结构的技术逐渐成熟,这减少了对百度、高德等高清地图的依赖,即使在普通导航地图区域也能感知标准的道路结构,大大提升了自动驾驶系统实用性。目标、障碍物检测和道路结构感知逐渐统一,但决策规划仍以Rule-based为主,导致算法迭代需要大量人力,代码复杂且泛化能力有限。 

随着Tesla V13版本的发布,基于强化学习的决策规划算法有潜力超越经过大量人力资源精心打磨的规则式算法,而且感知和规划可以融合为一个AI模型,即端到端自动驾驶大模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/492102.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NLP 分词技术浅析

一、NLP 分词技术概述 (一)定义 自然语言处理(NLP)中的分词技术是将连续的文本序列按照一定的规则切分成有意义的词语的过程。例如,将句子 “我爱自然语言处理” 切分为 “我”、“爱”、“自然语言处理” 或者 “我…

深度学习面试相关-2024.12.15记录

深度学习 面试相关- 2024.12.15记录 目录 深度学习 面试相关- 2024.12.15记录整体常问问题1数学基础1.1 概率统计1.2 线代 2机器学习算法2.1 深度学习算法2.2 机器学习算法 整体常问问题 https://www.nowcoder.com/discuss/353154899112304640 1数学基础 1.1 概率统计 htt…

SEO初学者-搜索引擎如何工作

搜索引擎基础搜索引擎是如何建立索引的搜索引擎如何对网页进行排名搜索引擎是如何个性化搜索结果的 搜索引擎的工作方式是使用网络爬虫抓取数十亿个页面。爬虫也称为蜘蛛或机器人,它们在网络上导航并跟踪链接以查找新页面。然后,这些页面会被添加到搜索引…

构建centos docker基础镜像

1、介绍 比较老的版本docker镜像,不太好找,可以尝试自己构建 各版本构建基础镜像方法不太一样,方式也不同,自己尝试,本文只介绍了我自己的尝试 2、构建centos5.11 docker镜像 准备iso文件 (1)安…

多曝光融合中无监督学习方法主导的深度思考

在计算机视觉领域,多曝光融合一直是一个备受关注的研究方向。这项技术旨在将同一场景在不同曝光条件下拍摄的多张图像合成为一张包含完整动态范围信息的图像。近年来,深度学习方法在这个领域取得了显著进展,但有一个有趣的现象值得我们深入探…

Linux脚本语言学习--上

1.shell概述 1.1 shell是什么? Shell是一个命令行解释器,他为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以使用Shell来启动,挂起,停止甚至是编写一些程序。 Shell还是一个功能相当强大…

活动预告|云原生创新论坛:知乎携手 AutoMQ、OceanBase、快猫星云的实践分享

近年来,云原生技术迅猛发展,成为企业数字化转型的关键动力,云原生不仅极大地提升了系统的灵活性和可扩展性,还为企业带来了前所未有的创新机遇。 12 月 28 日 知乎携手 AutoMQ、OceanBase 和快猫星云推出“云原生创新论坛”主题的…

XXE靶场

XXE-lab 靶场 靶场网址&#xff1a;http://172.16.0.87/ 第一步我们看到网站有登录框我们试着用 bp 去抓一下包 将抓到的包发到重放器中 然后我们构建palody <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "php://filter/readconvert.base64-encode/resourceC:/flag/fla…

djiango DRF的使用

djiango DRF的使用 一 、初始 DRF序列化环境安装环境配置数据模型定义定义DRF序列化模型对象 二 、DRF请求和响应请求对象&#xff08;Request objects&#xff09;响应对象&#xff08;Response objects&#xff09;状态码&#xff08;Status codes&#xff09;包装&#xff0…

【BUG】记一次context canceled的报错

文章目录 案例分析gorm源码解读gin context 生命周期context什么时候cancel的什么时候context会被动cancel掉呢&#xff1f; 野生协程如何处理 案例分析 报错信息 {"L":"ERROR","T":"2024-12-17T11:11:33.0050800","file"…

Qt WORD/PDF(四)使用 QAxObject 对 Word 替换(QWidget)

关于QT Widget 其它文章请点击这里: QT Widget 国际站点 GitHub: https://github.com/chenchuhan 国内站点 Gitee : https://gitee.com/chuck_chee 姊妹篇: Qt WORD/PDF&#xff08;一&#xff09;使用 QtPdfium库实现 PDF 操作 Qt WORD/PDF&#xff08;二…

使用nvm对node进行多版本管理

1.nvm下载及安装 下载链接 下载完成后&#xff0c;对文件进行解压安装&#xff0c;按照提示一步步安装&#xff0c;如果电脑上之前有安装过node&#xff0c;需要先卸载&#xff0c;再进行安装。 按照提示完成安装。 2.设置环境变量 可以现在C:\Users\name\AppData\Roamin…

基于Socket实现客户端和服务端的Tcp通信(C#)

0.前言 使用C#和Unity实现复刻Liar’s bar中的功能 软件开发大作业 本系列文章用于记录与分享开发过程中使用到的知识点&#xff0c;以及常见错误 本文主要描述有关网络编程的内容 目录 0.前言1.使用Socket搭建Server1.1Server端的Socket连接1.2 Server端接收Client的信息1.3…

eclipse 如何设置项目、不同类型文件的 utf8 编码

编码问题一直是软件开发中让人头疼的小细节&#xff0c;尤其是团队协作中&#xff0c;若编码格式不统一&#xff0c;乱码问题便会频繁出现。那么如何在 Eclipse 中统一设置项目和文件的 UTF-8 编码&#xff0c;避免因编码问题造成不必要的困扰呢&#xff1f;今天&#xff0c;我…

MVC基础——市场管理系统(四)

文章目录 项目地址六、EF CORE6.1 配置ef core环境6.2 code first6.2.1 创建Database context1. 添加navigation property2. 添加MarketContext上下文七、Authentication7.1 添加Identity7.2 Run DB migration for Identity7.3 使用Identity7.3.1 设置认证中间件7.3.2 设置权限…

java后端环境配置

因为现在升学了&#xff0c;以前本来想毕业干java的&#xff0c;很多java的环境配置早就忘掉了&#xff08;比如mysql maven jdk idea&#xff09;&#xff0c;想写个博客记录下来&#xff0c;以后方便自己快速搭建环境 JAVA后端开发配置 环境配置jdkideamavenMySQLnavicate17…

Edge Scdn用起来怎么样?

Edge Scdn&#xff1a;提升网站安全与性能的最佳选择 在当今互联网高速发展的时代&#xff0c;各种网络攻击层出不穷&#xff0c;特别是针对网站的DDoS攻击威胁&#xff0c;几乎每个行业都可能成为目标。为了确保网站的安全性与稳定性&#xff0c;越来越多的企业开始关注Edge …

CN-fnst::CTF Web

文章目录 ezphpez_pythoncomment_mefilechecker_revengei_am_eeeeeshili ezphp 直接数组绕过, 执行命令 GET: usn[]1&usn1[]1&signenv POST: pwd[]2&pwd1[]2 ez_python file参数任意文件读取 读取源码: ?fileapp.py from flask import Flask, request, render_…

AI自我进化的新篇章:谷歌DeepMind推出苏格拉底式学习,语言游戏解锁无限潜能

各位AI爱好者、技术研究者&#xff0c;大家好&#xff01;今天我们来聊聊一个令人兴奋的AI研究新进展——谷歌DeepMind推出的“苏格拉底式学习”方法。这项研究的独特之处在于&#xff0c;它让AI在没有外部数据的情况下&#xff0c;通过“语言游戏”实现自我进化&#xff0c;这…

《类和对象:基础原理全解析(上篇)》

目录 一、浅谈面向过程和面向对象二、C 中的结构体&#xff08;struct&#xff09;1. C 中 struct 的使用 三、C 中的类&#xff08;class&#xff09;四、类的封装性1. 类成员的权限控制关键字2. 权限控制关键字的使用 五、类的六大默认成员函数介绍六、构造函数1. 使用构造函…