单卡就能训的VLM来了!中科院提出MiniDrive:各项指标完爆当前SOTA~

人工智能 新闻
今天为大家分享中科院最新的工作—MiniDrive!单卡就能训的VLM!

本文经自动驾驶之心公众号授权转载,转载请联系出处。

写在前面 & 笔者的个人理解

视觉语言模型(VLM)是自动驾驶中的通用端到端模型,通过问答交互实现预测、规划和感知等子任务。然而大多数现有方法依赖于计算成本高昂的视觉编码器和大型语言模型(LLM),这使得它们难以在现实世界场景和实时应用中部署。同时大多数现有的VLM缺乏处理多幅图像的能力,因此难以适应自动驾驶中的环视感知。为了解决这些问题,我们提出了一个名为MiniDrive的新框架,该框架结合了我们提出的特征工程混合专家(FE-MoE)模块和动态指令适配器(DI-Adapter)。FE MoE在输入到语言模型之前,有效地将2D特征映射到视觉标记嵌入中。DI适配器使可视令牌嵌入能够随着指令文本嵌入而动态变化,解决了以前方法中同一图像的静态可视令牌嵌入问题。与之前的工作相比,MiniDrive在参数大小、浮点运算和响应效率方面实现了最先进的性能,轻量版本仅包含83M个参数。

  • 开源链接:https://github.com/EMZucas/minidrive

图片

总结来说,本文的主要贡献如下:

  • 本文开发了自动驾驶VLMs MiniDrive,它解决了自动驾驶系统VLMs中高效部署和实时响应的挑战,同时保持了出色的性能。该模型的训练成本降低,多个MiniDrive模型可以在具有24GB内存的RTX 4090 GPU上同时进行完全训练;
  • MinDrive首次尝试利用大型卷积核架构作为自动驾驶视觉语言模型的视觉编码器骨干,并能够更高效、更快地提取不同图像级别的2D特征。我们提出了特征工程混合专家(FE-MoE),它解决了从多个角度将2D特征高效编码到文本标记嵌入中的挑战,有效地减少了视觉特征标记的数量,并最大限度地减少了特征冗余;
  • 本文通过残差结构引入了动态指令适配器,解决了同一图像在输入到语言模型之前的固定视觉标记问题。DI适配器使视觉特征能够动态适应不同的文本指令,从而增强跨模态理解;
  • 我们在MiniDrive上进行了广泛的实验,与Drive LM上具有多视图图像输入的自动驾驶VLM相比,实现了最先进的性能。此外,我们在CODA-LM上使用单幅图像输入的性能比普通开源VLM(>7B)平均高出13.2分。

相关工作回顾

Vision-Language Models

Transformer架构的成功推动了LLM的发展。在计算机视觉领域,Dosovitskiy等人提出了ViT,它将图像划分为补丁,并根据transformer架构对其进行处理,成功地将其应用于计算机视觉任务。Transformer架构可以有效地学习和表示图像和自然语言。一项开创性的工作是CLIP,它将对比学习用于图像-文本对齐训练,展示了在图像分类任务中优越的零样本能力。Llava冻结了CLIP的视觉编码器(ViT),并在视觉编码器和LLM之间添加了一个线性投影层,旨在将视觉输出表示映射到文本空间中。同样BLIP-2通过更复杂的Q-Former对齐视觉和文本表示。InstructBLIP以BLIP-2为基础,对公共视觉问答数据集进行指令微调。MiniGPT-4将冻结的视觉编码器和Q-Former与类似冻结的LLM Vicuna相结合,将它们与单个投影层对齐。Llava-1.5v通过使用带有多层感知器(MLP)投影层的CLIP-ViT-L-336px,并添加针对学术任务量身定制的VQA数据,通过简单的响应格式化提示,在11个基准测试中实现了最先进的性能,显著提高了数据效率。Phi-3-mini具有默认的4K上下文长度,并引入了使用LongRope技术扩展到128K上下文长度的版本,同时采用了类似于Llama-2的块结构和相同的标记器,实现了轻量级的多模式模型。尽管这些多模态大型模型具有强大的功能,并且有轻量化设计的趋势,但它们的参数数量超过10亿,这使得在许多硬件平台上的部署和实时使用具有挑战性。因此,有必要研究和开发具有较小参数大小和较低计算成本的高效视觉语言模型。

Autonomous Driving Based on LLMs

LLM有效地增强了自动驾驶系统的可解释性及其与人类的互动。这些优势促使研究人员将自动驾驶的多模态数据纳入LLM的训练中,旨在为自动驾驶构建多模态大型模型。Chen等人将矢量化模态信息与LLaMA-7B对齐,以训练自动驾驶的问答模型。训练过程遵循两阶段方法:在第一阶段,向量表示与冻结的LLaMA对齐,而在第二阶段,LoRA用于微调语言模型。DriveGPT4也使用LLaMA作为其大型语言模型,使用CLIP作为视觉编码器。它通过输入视觉和文本信息来生成相应的答案。DriveGPT4操纵ChatGPT/GPT-4生成指令数据集,并在此数据集上进行训练。然而DriveGPT4仅使用单视角图像,限制了其在自动驾驶场景中处理更全面理解的能力。Wang等人开发了DriveMLM,该模型使用LLaMA-7B作为基础语言模型,ViT-g/14作为图像编码器。该模型处理多视图图像、激光雷达点云、交通规则和用户命令,以实现闭环驾驶。受大型语言模型中的思维链方法的启发,Sha等人提出了一种用于驾驶场景的思维链框架,使用ChatGPT-3.5为自动驾驶提供可解释的逻辑推理。Mao等人介绍了GPT Driver,它使用ChatGPT-3.5为自动驾驶汽车创建运动规划器,GPT Driver通过将规划器的输入和输出表示为语言令牌,将运动规划作为语言建模任务进行刷新。Sima等人发布了DriveLM数据集,这是一个图形化的视觉问答数据集,其中包含与感知、行为和自我车辆规划相关的问答对,基于NuScenes数据集的多视图图像数据。为了建立基线,Li等人在这个新数据集上对BLIP-2进行了微调。EM-VLM4AD引入了门控池注意力(GPA),它将多个图像聚合到一个统一的嵌入中,并将其与文本嵌入连接作为LLM的输入,在DriveLM数据集上取得了有前景的结果。

虽然现有的工作提供了巨大的价值,并展示了强大的自动驾驶能力,但大多数模型都有超过10亿个参数。它们主要基于GPT-3.5和LLaMA等大规模语言模型,并依赖于基于ViT架构构建的视觉编码器,如CLIP、ViT-g/14和ViT-B/32。这导致了高昂的计算成本,使这些模型不适合在线场景。尽管有开发轻型自动驾驶车型的趋势,但与大型车型相比,它们的性能仍然不足。

MinDrive方法详解

MiniDrive是自动驾驶领域的一种视觉语言模型,旨在执行视觉问答任务。它通过接收图像和用户指令文本作为输入来生成文本响应。在本节中,我们首先详细介绍MiniDrive的整体框架,然后具体解释每个模块的技术细节和原理,包括视觉编码器、特征工程混合专家(FE-MoE)和动态指令适配器(DI适配器)。

Model Architecture

图片

图2(a)展示了MiniDrive的整体结构。在MiniDrive中,主要有两个分支:视觉和文本。在视觉方面,给定来自车辆的n幅图像作为视觉编码器的输入,每幅图像都接收一组深度2D特征表示。然后,这些特征被输入到FE-MoE中,在那里,多个专家沿着通道维度c压缩信息,并沿着高度h和宽度w维度扩展信息,以生成新的2D特征表示。在FE MoE中,Gate网络确定哪些专家更适合处理每个图像,为每个专家分配不同的权重值。最后,通过加权和来组合新的2D特征表示,以产生新的特征集Vmoe。压扁Vmoe得到V。

Vision Encoder

如图2(b)所示,视觉编码器的骨干网络基于大核神经网络UniRepLKNet(Ding等人,2024),该网络在多种模态上表现出色。它有效地利用了大型内核卷积的特性,无需深入网络层即可实现广泛的接受域。在保持高效计算的同时,它在各种任务中也达到或超过了当前最先进技术的性能。这种通用性和效率使其成为一个强大的模型,在广泛的感知任务中具有潜力。如图3所示,对UniRepLKNet的整体架构进行简要回顾后发现,它主要由多个顺序连接的Stage层组成。每个阶段主要由一系列Lark Block和Smak Block组成。在MiniDrive中,我们使用UniRepLKNet作为视觉网络的骨干,其中输入图像并从最后阶段n获得输出特征图F1。

Feature Engineering Mixture of Experts

在图2(b)中,我们展示了FE-MoE的具体结构,该结构旨在处理来自多幅图像的二维输入特征。每个输入图像对应于视觉编码器输出的特征图F1。为了进一步有效地处理每个图像的2D特征表示,它们被输入到FE-MoE中。首先,门网络使用F1来获得与样本对应的专家选择权重。Gate网络主要由卷积层、最大池化层和线性层组成,如下式所示:

图片

每个专家网络主要由解卷积层、ReLU层和卷积层组成。解卷积层首先执行初始上采样映射,增加特征图宽度和高度的维度以扩展信息量,从而促进后续的映射学习。同时,它减少了原始特征图中的通道数量,以最小化数据冗余并选择最重要的二维特征表示信息,从而显著简化了后续视觉标记的数量。卷积层进一步变换特征,以提高专家的学习能力。公式如下:

图片

在这种情况下,F2表示单个专家的输出。假设图像的第i个专家的权重为Wi,该专家的输出为Fi,专家总数为N,则FE-MoE模型处理后的图像特征Vmoe由以下公式表示:

图片

Dynamic Instruction Adapter

在之前的视觉语言模型中,图像表示在输入语言模型之前是固定的,在进入语言模型进行计算之前,它们对应于各种文本表示。为了使图像表示在输入到语言模型之前能够根据不同的文本表示进行动态转换,从而提高跨模态理解,我们引入了动态指令机制并设计了动态指令适配器。我们使用文本输入序列T作为键(k)和值(v),使用图像输入序列v作为查询(q)。通过交叉注意,我们计算了融合了文本上下文信息的融合序列V。公式如下:

图片

残差通道中的序列通过残差连接与投影层的输出序列连接,作为输入到语言模型之前的视觉表示。附加语言模型输出的培训见附录。

实验结果

定量结果

在表1中,我们将MiniDrive的评估结果与之前在测试集上的工作进行了比较,包括EM-VLM4AD和Drive Agent。就指标的整体性能而言,MiniDrive224和MiniDrive384都优于以前的方法,尽管DriveLM Agent在BLEU-4中覆盖了我们,但它的参数计数明显大于我们的,达到3.96B。

图片

计算分析

本节主要比较MiniDrive和一系列现有视觉语言模型在参数计数、浮点运算(FLOP)和内存使用(GB)方面的差异。结果如表2所示。以224的输入图像分辨率为例,MiniDrive在所有三个方面都表现出了卓越的性能。

图片

定性示例

在图4中,我们展示了MiniDrive在三个不同任务中对看不见的样本的实际响应。为了对MiniDrive对多视图图像输入的感知进行可解释性分析,我们分析了MiniDrive在各种场景下的激活图。在图4(a)中,MiniDrive演示了对多个图像输入的感知问答,蓝色框表示用户指令中“左后”位置引用的图像。红色框对应于MiniDrive的响应,主要关注该图像,在指定位置识别“许多汽车、一辆卡车和一名行人”。在图4(b)中,MiniDrive演示了如何为多个图像输入规划问答。根据用户的指令和空间术语“CAM_FRONT”,MiniDrive会聚焦在相应正面图像左侧的红色框上。这种关注与人们在做出规划决策时考虑的因素相一致,包括行车道标记和自我汽车左侧的车辆。在图4(c)中,MiniDrive演示了多个图像输入的预测性问答。根据用户预测“左前”位置行人运动的指令,MiniDrive会关注相应位置图像中的行人,并用红色框突出显示。综上所述,MiniDrive在激活图中关注的对象与人类驾驶员在驾驶过程中遵循的推理一致,表明MiniDrive具有一定程度的可靠性和可解释性。

图片

消融实验

为了验证每个模块的有效性,我们设计了一系列消融实验。在表3中,我们研究了FE-MoE和动态指令适配器(DI适配器)对MiniDrive的影响。当FE-MoE和动态指令适配器分别引入时,各种指标的结果都有所改善,当两个模块同时引入时,效果更好。这表明了模块之间机制的有效性。其他消融实验的详细信息见附录。

图片

进一步分析

尽管MiniDrive被设计为用于接收多图像输入的自动驾驶问答模型,但它从多个图像中提取、压缩和重新学习信息,作为语言模型的文本令牌。然而它仍然可以用于单个图像输入任务。我们将其与CODA-LM上现有的主流开源和闭源通用模型进行了比较,如表4所示。很明显,尽管MiniDrive只有83M个参数,但它表现出了卓越的性能,优于开源模型,接近闭源模型的性能。由于训练数据的分布问题,我们认为这是MiniDrive识别“圆锥体”能力强的主要因素。

图片

结论

本文介绍了MiniDrive,这是一种最先进的自动驾驶轻量级视觉语言模型。我们介绍了FE-MoE和DI-Adapter机制,提出了一种将2D卷积特征映射到语言模型的文本标记中的新方法。我们的模型在DriveLM和CODA-LM两个数据集上取得了出色的结果。未来,我们的目标是开发一个具有视频输入的实时响应模型,以进一步推进自动驾驶技术。

限制

MiniDrive构建了专用于自动驾驶领域的VLM,并在当前的主流基准测试中取得了优异的成绩。然而它仍然缺乏一定程度的泛化能力,我们认为这是由于训练样本的局限性造成的。现有的自动驾驶领域需要更多的公共数据集和开发工作。此外,MiniDrive的培训主要集中在基于指令的数据集上,它仍然会遇到幻觉问题。

责任编辑:张燕妮 来源: 自动驾驶之心
相关推荐

2018-02-28 16:20:57

中科睿芯

2017-05-15 15:07:36

纳米材料农药

2024-09-03 10:20:00

框架模型

2019-01-16 15:21:12

中科院大数据数据库

2024-08-30 14:38:00

2009-09-18 09:40:57

浪潮中科院合肥

2010-05-14 10:09:21

中科院LED无线上网

2016-04-19 12:51:26

2009-10-11 01:04:43

曙光中科院计算中心

2013-09-02 10:21:31

曙光核高基中科院

2020-01-16 15:20:48

编程语言PythonJava

2009-07-21 09:47:59

龙芯中科院

2016-11-18 13:24:14

网络升级锐捷

2022-02-19 08:21:21

中科院量子计算编程软件

2010-11-08 15:26:31

曙光服务器

2018-05-04 13:31:00

人工智能芯片云端

2011-12-28 17:30:17

开放平台

2017-05-17 11:54:18

2023-03-20 13:43:00

AI论文

2013-08-15 16:12:32

Enlogic中科院信息中心
点赞
收藏

51CTO技术栈公众号