端到端自动驾驶大模型:视觉-语言-动作模型 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模型,即端到端自动驾驶大模型。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Swin transformer 论文阅读记录 代码分析

该篇文章,是我解析 Swin transformer 论文原理(结合pytorch版本代码)所记,图片来源于源paper或其他相应博客。 代码也非原始代码,而是从代码里摘出来的片段,配上简单数据,以便理解。 当然&…

LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读

LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读 导读:这篇论文提出了一种名为rStar的自我博弈互推理方法,用于增强小型语言模型 (SLMs) 的推理能力,无需微调或依赖更强大的模型。rStar…

CS 144 check5: down the stack (the network interface)

Lectures Note 略 Exercises TCP片段传输到对等方的过程: TCP-in-UDP-in-IP. Linux 提供了一种接口(即“数据报套接字”,UDPSocket),它允许应用程序仅提供用户数据报的有效载荷和目标地址,而内核则负责…

Llama 3 模型系列解析(一)

目录 1. 引言 1.1 Llama 3 的简介 1.2 性能评估 1.3 开源计划 1.4 多模态扩展 ps 1. 缩放法则 2. 超额训练(Over-training) 3. 计算训练预算 4. 如何逐步估算和确定最优模型? 2. 概述 2.1 Llama 3 语言模型开发两个主要阶段 2.2…

越疆科技营收增速放缓:毛利率未恢复,持续亏损下销售费用偏高

《港湾商业观察》施子夫 12月13日,深圳市越疆科技股份有限公司(以下简称,越疆科技,02432.HK)发布全球发售公告,公司计划全球发售4000万股股份,其中3800万股国际发售,200万股香港公开…

微信小程序实现画板画布自由绘制、选择画笔粗细及颜色、记录撤回、画板板擦、清空、写字板、导出绘图、canvas,开箱即用

目录 画板创建canvas绘制及渲染画笔粗细功能实现画笔颜色选择画笔痕迹撤回、板擦、画布清空canvas解析微信小程序中 canvas 的应用场景canvas 与 2D 上下文、webgl 上下文的关系图像的加载与绘制说明代码说明画板创建 canvas绘制及渲染 在wxml添加对应的canvas标签代码,并在j…

混合精度训练说明

什么是混合精度训练?混合精度训练有什么用? 这里总结一下。 本文总结自kapathy的build gpt2 通常在训练过程中,model里面的数据默认都是torch.float32类型, 也就是用32bit的float型数据表示变量。 比如特征提取中提取的特征&…

draw.io 导出svg图片插入word后模糊(不清晰 )的解决办法

通常我们将图片从draw.io导出为svg格式后插入word, 会发现字体不清晰,特别是使用宋体时,折腾了半天,得到如下办法: 方法1: 在draw.io中导出pdf文件,使用 PDF转SVG转换器 - SVGConverter 将其转换为svg, 完美呈现。 …

ARM学习(38)多进程多线程之间的通信方式

ARM学习(38)ARM学习(38)多进程多线程之间的通信方式 一、问题背景 笔者在调试模拟器的时候,碰到进程间通信的问题,一个进程在等另外一个进程ready的时候,迟迟等不到,然后通过调试发现,另外一个进程变量已经变化了,但是当前进程变量没变化,需要了解进程间通信的方式…

【动手学运动规划】 5.2 数值优化基础:梯度下降法,牛顿法

朕四季常服, 不过八套. — 大明王朝1566 道长 🏰代码及环境配置:请参考 环境配置和代码运行! 上一节我们介绍了数值优化的基本概念, 让大家对最优化问题有了基本的理解. 那么对于一个具体的问题, 我们应该如何求解呢? 这一节我们将介绍几个基本的求解…

24-12-22 pytorch学习 基础知识 帝乡明日到,犹自梦渔樵。

文章目录 pytorch学习 基础知识pytorch学习(1) Tensors1.1 初始化Tensor1.2 Tensor 的属性1.3 Tensors 的操作1.4 与 NumPy 的桥梁1.4.1 Tensor 到 NumPy 数组1.4.2 NumPy 数组 到 Tensor pytorch学习(2) 数据集和数据加载器2.1 加载一个数据集2.2 迭代和可视化数据集2.3 为你的…

Linux网络功能 - 服务和客户端程序CS架构和简单web服务示例

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 概述准备工作扫描服务端有那些开放端口创建客户端-服务器设置启动服务器和客户端进程双向发送数据保持服务器进程处于活动状态设置最小…

M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务

M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务 论文大纲理解1. 确认目标2. 分析过程(目标-手段分析)核心问题拆解 3. 实…

【102. 二叉树的层序遍历 中等】

题目: 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例…

第四届电气工程与控制科学

重要信息 官网:www.ic2ecs.com 时间:2024年12月27-29日 简介 第四届电气工程与控制科学定于2024年12月27-29日在中国南京召开。主要围绕“电气工程“、”控制科学“、”机械工程“、”自动化”等主题展开,旨在为从电…

监控易在汽车制造行业信息化运维中的应用案例

引言 随着汽车制造行业的数字化转型不断深入,信息化类IT软硬件设备的运行状态监控、故障告警、报表报告以及网络运行状态监控等成为了企业运维管理的关键环节。监控易作为一款全面、高效的信息化运维管理工具,在汽车制造行业中发挥着重要作用。本文将结合…

大模型+安全实践之春天何时到来?

引子:距《在大模型实践旅途中摸了下上帝的脚指头》一文发布近一年,2024年笔者继续全情投入在大模型+安全上,深度参与了一些应用实践,包括安全大模型首次大规模应用在国家级攻防演习、部分项目的POC直到项目落地,也推动了一些场景安全大模型应用从0到3的孵化上市。这一年也…

大小端存储的问题

请你用C语言写一个简单的程序&#xff0c;判断你使用的主机是大端存储还是小端存储 #include <stdio.h> int main(){int x 0x11223344;char *p (char *)&x;if(0x44 *p){printf("小端\n");}else if(0x11 *p){printf("大端\n");}return 0; }

山景BP1048增加AT指令,实现单片机串口控制播放音乐(一)

1、设计目的 山景提供的SDK是蓝牙音箱demo&#xff0c;用户使用ADC按键或者IR遥控器&#xff0c;进行人机交互。然而现实很多场景&#xff0c;需要和单片机通信&#xff0c;不管是ADC按键或者IR接口都不适合和单片机通信。这里设计个AT指令用来和BP1048通信。AT指令如下图所示…

EMC VMAX/DMX 健康检查方法

近期连续遇到2个由于对VMAX存储系统没有做及时的健康检查&#xff0c;出现SPS电池故障没有及时处理&#xff0c;然后同一pair就是同一对的另外一个SPS电池再次出现故障&#xff0c;然后存储系统保护性宕机vault&#xff0c;然后业务系统挂掉的案例。 开始之前&#xff0c;先纠…