模型框架定义、模型快速迭代能力是考查智驾团队出活能力的两个核心指标。在展开讨论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 模型输出设计
接着上面话题,端到端自动驾驶模型输出的设计应该包括三方面:
- 第一种感知信息,包括Occupancy占用、道路结构网络等(实时构建4D全场景地图,这一步的实现,还顺带实现可以不用高精地图);
- 第二种是驾驶场景描述信息,包括各种动态场景描述和交通参与者行为描述。当前,大家为了快速实现自动驾驶,人为编辑了很多场景及分类,按照各种ODD场景匹配各种驾驶元动作,这使得智能上限很低。增加了场景理解的一些描述信息,能有效的监督大模型能够真正理解场景和交通参与者意图,大大提升自动驾驶智能的上限。
- 第三个信息则是在感知万物、知晓常识的基础上,实现未来轨迹推理,直接输出驾驶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主干中。
这有三个关键好处:
- 它在大型互联网规模的视觉语言数据集上执行视觉和语言对齐;
- 使用通用架构,而不是对机器人控制定制,允许我们利用现代VLM可扩展基础设施,并以最小代码修改量扩展到训练十亿参数策略;
- 它为机器人从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):
- Visual Encoder,将图像输入映射为image patch embeddings。
- Projector,将视觉编码器的output embeddings映射到语言模型的输入空间。
- 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应用了多个数据管理步骤。
- 限制训练数据集仅包含至少一个第三人称摄像机的操作数据集,并使用单臂末端执行器控制。
- 对通过第一轮过滤的所有数据集利用Octo数据混合权重。Octo启发式地降低或删除多样性较小的数据集,并增加具有较大任务和场景多样性的数据集的权重。
- 还尝试将一些额外的数据集合并到我们的训练混合数据中。这些数据集是自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微调
具体来说,我们比较了以下几种微调方法:
- 在微调期间,完全微调更新所有权重;
- 只微调OpenVLA的transformer骨干和令牌嵌入矩阵的最后一层;
- Freezes视觉编码器,但微调所有其他权重;
- Sandwich微调,Unfreezes视觉编码器、令牌嵌入矩阵和最后一层;
- LoRA,采用流行的低秩自适应技术,将多个秩值应用于模型的所有线性层。
4.写在最后
随着Nerf、3DGS技术的发展,感知道路结构的技术逐渐成熟,这减少了对百度、高德等高清地图的依赖,即使在普通导航地图区域也能感知标准的道路结构,大大提升了自动驾驶系统实用性。目标、障碍物检测和道路结构感知逐渐统一,但决策规划仍以Rule-based为主,导致算法迭代需要大量人力,代码复杂且泛化能力有限。
随着Tesla V13版本的发布,基于强化学习的决策规划算法有潜力超越经过大量人力资源精心打磨的规则式算法,而且感知和规划可以融合为一个AI模型,即端到端自动驾驶大模型。