#大模型/Sora/世界模型之间是什么关系

1 什么是大模型

人工智能大模型(Artificial Intelligence Large Model,简称AI大模型)是指具有庞大的参数规模和复杂程度的机器学习模型。通常指的是参数量非常大、数据量非常大的深度学习模型。

大模型通常由数百万到数十亿的参数组成,需要大量的数据和计算资源进行训练和推理。

由于其巨大的规模,大模型具有非常强大的表示能力和泛化能力,可以在各种任务中表现出色,如语音识别、自然语言处理、计算机视觉等。

1.1 大模型的优点

1)强大的表示能力

大模型可以学习非常复杂的模式和特征,从而能够处理各种复杂的任务。

2)泛化能力强

由于大模型在大量数据上进行训练,它们可以捕捉到普遍存在的模式,因此在处理新数据时具有较好的泛化能力。

3)多任务学习

一些大模型可以同时处理多个任务,例如图像分类和目标检测,或者自然语言处理中的文本分类和情感分析。

4)预训练和迁移学习

大模型可以在大规模数据上进行预训练,然后在其他数据集上进行微调,以适应特定的任务。这种迁移学习的方法可以大大减少在新任务上的训练时间和数据需求。

通过在大量的标注和未标注的数据上进行预训练,大模型可以从中捕获通用的知识和特征,并将其存储在参数中。

然后通过对特定任务进行微调,大模型可以将预训练的知识迁移到下游任务中,极大地提高了模型的性能和泛化能力。

1.2 大模型的应用

大模型的典型代表有GPT-4、盘古、Switch Transformer等,它们的参数量都达到了千亿甚至万亿的规模。

除此之外,还有代码大模型、视觉大模型、多模态大模型等。

1)语言模型

语言模型是一种自然语言处理领域的深度学习模型,通过语言模型的应用,可以实现机器翻译、文本摘要、问答系统、情感分析等功能。

例如,谷歌的BERT模型可以用于提高搜索引擎的搜索质量和广告质量;OpenAI的GPT系列模型可以用于自动生成文章、对话和摘要等。

2)图像识别模型

图像识别模型是一种计算机视觉领域的深度学习模型,可以用于图像分类、目标检测、人脸识别等任务。

例如,在医疗领域,图像识别模型可以用于诊断疾病和辅助手术;在安防领域,图像识别模型可以用于监控和人脸识别等。

3)语音识别模型

语音识别模型是一种语音信号处理领域的深度学习模型,可以将语音转换成文本,并支持语音到文本的转换、语音搜索、语音控制等功能。

例如,谷歌助手、苹果的Siri、亚马逊的Alexa等智能助手都使用了语音识别技术。

4)推荐模型

推荐模型是一种个性化推荐领域的深度学习模型,可以根据用户的历史行为和偏好,推荐相关的内容和服务。

例如,在电商领域,推荐模型可以根据用户的购物历史和浏览行为,推荐相关的商品和优惠券;在新闻领域,推荐模型可以根据用户的阅读历史和兴趣,推荐相关的新闻和文章。

5)强化学习模型

强化学习模型是一种通过试错来学习行为的深度学习模型,可以用于游戏、自动驾驶等领域。

例如,DeepMind的AlphaGo可以用于玩围棋游戏;OpenAI的Dota2 AI可以用于玩Dota2游戏。

2 什么是world model

与大模型相比,世界模型是一个更高级别的概念,它涉及到具身智能和现实世界的感知、理解和交互。世界模型试图通过对周围环境进行建模,使人工智能系统能够像人类一样理解和预测环境,从而做出相应的行动。

World Model其本质是对视频中的丰富语义以及背后的物理规律进行学习,从而对物理世界的演化产生深刻理解。

举个例子,在人类的理解中,能够评估出一杯水的重量。当我们拿起一杯水时,大脑其实已经“预测”了应该用多大的力。于是,杯子被顺利拿起。但如果杯子是不透明有盖的而碰巧没有水呢?如果延续杯子有水的理解,我们就会用过大的力去拿杯子,此时发现很轻,我们立刻感觉到不对。对世界的理解里就会加上这么一条:杯子有可能是空的。于是,下次再“预测”,就会对不同内容的杯子使用不同的力。

“不断理解,不断预测”,这种理解世界的方式,是人类理解世界的方式。这种思维模式就叫做:世界模型。

人经历的事情越多,大脑里就会形成越复杂的世界模型,用于更准确地预测这个世界。这就是人类与世界交互的方式:世界模型。

3 什么是Sora

OpenAI官方信息从未表示Sora是world model,而是强调它是world simulator。

Sora,美国人工智能研究公司OpenAI发布的人工智能文生视频大模型(但OpenAI并未单纯将其视为视频模型,而是作为“世界模拟器”),于2024年2月15日(美国当地时间)正式对外发布。

Sora可以根据用户的文本提示创建最长60秒的逼真视频,该模型了解这些物体在物理世界中的存在方式,可以深度模拟真实物理世界,能生成具有多个角色、包含特定运动的复杂场景。

Sora有别于其他AI视频模型的优势在于,既能准确呈现细节,又能理解物体在物理世界中的存在,并生成具有丰富情感的角色,甚至该模型还可以根据提示、静止图像甚至填补现有视频中的缺失帧来生成视频。

在原理上,Sora主要通过三个步骤实现视频训练。首先是视频压缩网络,将视频或图片降维成紧凑而高效的形式。其次是时空补丁提取,将视图信息分解成更小的单元,每个单元都包含了视图中一部分的空间和时间信息,以便Sora在后续步骤中进行有针对性的处理。最后是视频生成,通过输入文本或图片进行解码加码,由Transformer模型(即ChatGPT基础转换器)决定如何将这些单元转换或组合,从而形成完整的视频内容。

3.1 Sora的应用

视频创作:用户可以根据文本生成高质量视频;

扩展视频:可以在给定的视频或图片基础上,继续向前或向后延申视频;

Video-to-video editing:例如将SDEdit 应用于Sora,可以很容易改变原视频的风格;

视频连结/过渡/转场:可以将两个视频巧妙地融合到一起,使用Sora在两个输入视频之间逐渐进行插值,从而在具有完全不同主题和场景构成的视频之间创建无缝过渡;

文生图:图像可以视为单帧的视频,故Sora也能实现文生图。

3.2 目前Sora存在的缺点

尽管Sora的功能十分的强大,但其在模拟复杂场景的物理现象、理解特定因果关系、处理空间细节、以及准确描述随时间变化的事件方面OpenAI Sora都存在一定的问题。

(1)物理交互的不准确模拟:

Sora模型在模拟基本物理交互,如玻璃破碎等方面,不够精确。这可能是因为模型在训练数据中缺乏足够的这类物理事件的示例,或者模型无法充分学习和理解这些复杂物理过程的底层原理。

(2)对象状态变化的不正确:

在模拟如吃食物这类涉及对象状态显著变化的交互时,Sora可能无法始终正确反映出变化。这表明模型可能在理解和预测对象状态变化的动态过程方面存在局限。

(3)长时视频样本的不连贯性:

在生成长时间的视频样本时,Sora可能会产生不连贯的情节或细节,这可能是由于模型难以在长时间跨度内保持上下文的一致性。

(4)对象的突然出现:

视频中可能会出现对象的无缘无故出现,这表明模型在空间和时间连续性的理解上还有待提高。

world model是用Sora能准确生成视频一个很重要的核心,比如人在苹果上咬了一口,并不总是能“咬就会有痕”,sora“有时”也会出错。但通过训练,sora会越来越准确。

Sora的技术文档里有一句话:

Our results suggest that scaling video generation models is a promising path towards building general purpose simulators of the physical world.

翻译过来就是:

我们的结果表明,大规模视频生成模型是一条很有希望构建物理世界通用模拟器的道路。

OpenAI最终想做的,其实不是一个“文生视频”的工具,而是一个通用的“物理世界模拟器”。

4 大模型 Sora和世界模型对自动驾驶的意义

基于World Model所提供的丰富语义信息以及对世界强大的理解力,自动驾驶模型的感知与预测能力有望得到显著提升,规划、控制等下游任务也有望迎刃而解。

类比GPT为所有NLP问题提供了一个通用解,特斯拉、Wayve等公司不约而同地在2023年推出World Model,很大程度上是受到了GPT的启发。对于自动驾驶来说,World Model 是一个无需标注、自监督的预训练模型。可生成自动驾驶相关的连续帧视频场景。

目前,World Model或仍处于GPT-1的阶段,但考虑到目前行业整体对“大模型”潜力的强烈共识、算力的升级以及以特斯拉为代表的玩家此前积累的海量数据,World Model从0到1的爆发或较ChatGPT更快(OpenAI从GPT-1至GPT-3.5共历经4年)。

但考虑到更标准化的解决方案和更巨大的资金投入(资金需求或是这一代BEV+Transformer方案的数倍),行业内有望出现少数几家强大的World Model基础模型层平台方,以SaaS或API的方式为主机厂/运营方提供自动驾驶能力,行业格局和合作模式或将发生较大变化。

中短期来看,World Model或将主要应用于数据合成和仿真模拟环节,厂商的车队规模对算法训练的重要性或有所下降,数据闭环的框架也将有所改变。

长期来看,World Model有潜力成为自动驾驶乃至具身智能领域的基础模型。



#HRMapNet

历史地图发大力!日日新的在线地图新方案(港中文)

无图NOA以来,研究人员focus在端到端的在线矢量地图构建上,该技术在鸟瞰图(BEV)空间中实现,希望能够替代传统成本较高的离线高精(HD)地图。但是当前方法在恶劣环境下的准确性和鲁棒性很容易受限。为此本文提出了HRMapNet,其利用低成本的历史光栅化地图来增强在线矢量化地图的感知能力。历史光栅化地图来源于先前预测的结果,因此可以提供当前帧一定的先验信息。为了充分利用历史地图,作者设计了两个模块来增强BEV特征和地图元素的查询。对于BEV特征,本文设计了特征聚合模块,以编码图像和历史地图的特征。对于地图元素的查询,则设计了一个查询初始化模块,以赋予查询从历史地图中得到的先验信息。这两个模块对于在在线感知中利用地图信息至关重要。HRMapNet能够与大多数现有的在线矢量化地图感知方法集成。问鼎nuScenes和Argoverse 2 SOTA。

开源链接:https://github.com/HXMap/HRMapNet

相关工作总结

自动驾驶技术中,高精HD地图对于车辆导航至关重要,它们可以详细表述如车道线、人行横道和道路边界等矢量化地图元素的位置与结构。这些地图以往通过离线方式并结合SLAM等技术构建的。

单帧地图感知

早期的地图感知研究主要集中在车道线检测、道路拓扑推理或地图分割上,这些研究通常产生光栅地图,并需要额外的后处理步骤来生成用于后续任务的矢量化地图元素。例如,HDMapNet通过聚类分析预测的光栅地图来构建最终的矢量化地图。

VectorMapNet和MapTR等工作直接预测矢量化地图。VectorMapNet设计了一个地图元素检测器和一个多边形生成器来构建最终的矢量化地图。MapTR提出了一种统一的排列等价模型,并采用DETR框架直接预测矢量化地图元素。这些突破性的研究推动了在线矢量化地图感知技术的发展,并激发了一系列旨在提升性能的新方法。MapTR的改进版MapTRv2在解码器中引入了解耦的自注意力机制和辅助损失,显著提高了预测精度。ScalableMap利用地图元素的结构特性,设计了一种渐进式解码器以支持长距离感知。MapVR引入了可微分的光栅化和基于渲染的损失函数,以增强对细节的敏感度。此外,BeMapNet和PivotNet等方法通过预测贝塞尔控制点和支点,而非固定数量的点,来提高预测的准确性。

利用额外信息的地图感知

上述方法仅利用单帧图像进行地图元素的预测,这限制了性能的进一步提升。最新的研究进展已经开始突破单帧感知的局限,通过整合额外的信息来提升性能。例如一些研究探索了如何利用额外的标准清晰度(SD)地图来辅助HD地图感知和车道拓扑理解。还有研究利用卫星地图来增强车载图像数据,以改善地图感知。这些方法虽然提高了性能,但需要额外的数据源,从而增加了在线建图的成本。

时间信息作为在线感知中更容易获得的补充信息,在BEV特征学习和目标检测中已被广泛利用。在矢量化地图感知方面,StreamMapNet通过查询传播和BEV特征融合来利用时间信息。SQD-MapNet引入了流查询去噪技术,以增强时间一致性。这些方法通常利用时间上短期的先前帧来辅助感知。

如果能够收集并利用所有时间信息,就可以构建一个地图。一些工作利用过去的LiDAR扫描构建的地图被用于自动驾驶中的目标检测。NMP构建了一个用于地图分割的由历史BEV特征组成的地图。然而,BEV特征占用大量的内存,这限制了它的实际应用。以nuScenes数据集中的波士顿地图为例,BEV特征需要超过11GB的内存在NMP中。相比之下,本文提出维护一个低成本的历史光栅化地图进行矢量化地图感知,大幅减少了内存开销。

HRMapNet方法详解概述

HRMapNet框架旨在作为现有在线矢量化地图感知技术的补充。如图2所示,该框架通过维护一个全局历史光栅化地图来辅助在线感知过程。输入环视图像后,从共享的主干网络中提取2D特征,并将其转换到鸟瞰图(BEV)空间。作者引入了地图编码器和特征聚合模块,以及一个新颖的查询初始化模块,这些模块在原始地图解码器之前工作,旨在赋予基础查询来自本地地图的先验信息,使搜索所需地图元素的过程更加高效。最终矢量化地图元素直接从预测头输出,并可以光栅化以合并到全局地图中。

51c自动驾驶~合集26_自动驾驶

图 2: 所提出的 HRMapNet 架构图。图中的灰色块表示与现有最先进在线矢量化地图感知方法保持一致的部分

全局光栅化地图

下面首先介绍用于保存历史信息的光栅化地图。如图2左下角所示,矢量化地图被光栅化以更新全局地图。与[19]类似。简而言之,光栅化地图中每个像素的标签是基于其与矢量化元素边界的距离来确定的。从每个时间点i的在线预测中,作者可以获取一个语义掩码,称为本地光栅化地图,其中和表示BEV空间中感知范围的空间形状;是地图元素类别的数量,,分别代表车道线、人行横道和道路边界。因此,指示对于每个类别,位置是否存在地图元素;值1表示存在,值0表示不存在。作者使用的这种光栅化地图类似于占用网格地图,这是机器人导航和建图中一个成熟的概念。Occ研究了如何从局部观测更新全局地图。作者使用类似的方法来更新全局光栅化地图,其中和表示全局地图的空间形状。对于地图更新,每个像素的本地坐标的首先被转换为全局坐标,基于自车姿态:

其中和分别是相对旋转和平移,表示将连续坐标转换为光栅化地图中的离散坐标的四舍五入函数。或者,给定全局坐标和姿态,其对应的本地坐标为:

然后,全局地图可以根据每个类别的本地地图进行更新。以一个类别为例:

其中由公式(2)确定,记录了每个地图元素类别的状态,和是基于本地预测结果更新状态的设定值。这种简单的方法有效地将局部结果整合到全局地图中,便于持续细化和更新。对于在线感知,基于自车姿态从全局地图中检索本地光栅化地图,并使用阈值来确定每个类别的地图元素是否存在:

其中由公式(1)确定。

在本文的实现中,全局地图被缩放到8位无符号整数值以减少内存消耗。因此,光栅化地图只占用很小的内存空间,大约每公里1MB。

BEV特征聚合

BEV特征已经有很多相关工作。例如MapTRv2使用BEVPoolv2获取BEV特征,其中是特征通道的数量。作者保持这个模块不变,并引入一个聚合模块,以利用本地地图中的先验信息增强BEV特征。在HRMapNet中,检索到的局部地图作为先验,指示哪些位置值得更多关注以进行地图元素感知。因此,受FBBEV的启发,作者在本地地图中存在地图元素的位置(即)添加额外的BEV查询。这些额外的BEV查询被投影到图像上,通过空间交叉注意力提取相关特征。然后,在本地地图中存在地图元素的位置获得额外的BEV特征。对于没有地图元素的位置(即),相应的额外BEV特征被设置为零。这些额外的BEV特征被公式化为。在特征聚合模块中,、和被融合在一起:

这里,被添加到作为额外补偿。此外,可以被视为具有明确语义信息的特殊BEV特征。因此,作者将它们与BEV特征连接起来,并使用卷积获得增强的BEV特征以供进一步处理。

查询初始化

除了将检索到的光栅化地图融合到BEV特征中外,作者还设计了一个新颖的查询初始化模块,以促进对所需地图元素的有效搜索。在DETR框架中,一组可学习的查询将与提取的特征交互,以搜索所需的元素。没有先验信息,查询将从随机状态开始搜索,通过多个解码器层逐步细化预测结果。在HRMapNet中,检索到的光栅化地图提供了有关地图元素可能存在位置的先验信息,从而可以有效地促进地图元素查询搜索所需元素。如图2右侧所示,所提出的查询初始化在原始地图解码器之前工作。基础查询首先与从本地地图嵌入的先验特征进行交互。具体来说,对于检索到的本地地图中地图元素存在的有效位置,其位置与可学习的位置嵌入相关联;语义向量被投影到标签嵌入中,使用线性投影。然后,作者为每个有效位置获得地图先验嵌入:

地图先验嵌入根据检索到的本地地图编码了地图元素可能存在的位置。为了融合先验信息,基础查询通过交叉注意力与一组地图先验嵌入进行交互。然后,初始化的查询通过原始解码器层在BEV特征中搜索所需的地图元素,从而实现更高效的搜索。

实验结果和分析数据集

nuScenes数据集包含1000个场景,这些场景分布在4个不同的地理位置,并且每个场景都提供了由6个环视图像。Argoverse 2数据集则涵盖了6个不同城市的1000个场景,每个场景都包含了7个环视图像。

评估指标

评测主要关注三个地图元素:车道线、人行横道和道路边界。本文使用Chamfer距离来衡量预测结果与真实标注之间的匹配程度,该距离在三个不同的阈值(0.5米、1.0米和1.5米)下进行计算。最终计算这三个类别的平均精度均值(mAP)作为评估指标。

实验细节

实验中,作者遵循了与MapTRv2和StreamMapNet相同的训练和验证细节。以MapTRv2为例,作者使用ResNet50作为特征提取的主干网络,每个地图元素被建模为20个顺序的点。感知范围被设定为车辆后部至前部30米,左右各15米,BEV特征的分辨率为0.3米×0.3米。本地光栅化地图的尺寸与BEV特征相匹配,局部和全局光栅化地图的分辨率同样设定为0.3米×0.3米。作者设定为30,为1,用于更新全局地图。模型训练在8个NVIDIA A100 GPU上进行,batch大小为8×4,学习率设定为。

与SOTA比较

在 nuScenes 数据集上的比较:如表 1 所示,作者将 HRMapNet 与仅使用单帧图像的当前最先进技术进行了比较。HRMapNet 在这些方法中表现出显著的优势,包括 VectorMapNet、PivotNet、BeMapNet、MapTR、StreamMapNet 和 MapTRv2。具体而言,经过 24 个周期的训练,HRMapNet 将 StreamMapNet 和 MapTRv2 的性能分别提升了 5.9 mAP 和 5.7 mAP。即使在 110 个周期的训练后,HRMapNet 依然在同一设置下比 MapTRv2 高出 4.9 mAP。与引入额外信息的方法相比,HRMapNet 通过全面利用所有历史信息而脱颖而出。例如,P-MapNet 引入了 OpenStreetMap的额外标准清晰度地图,但其改进幅度不如作者的方法。SQD-MapNet 利用流查询去噪策略从先前帧的结果中受益,而 HRMapNet 利用全局栅格化地图不仅整合了时间信息,还整合了所有过去的结果进行在线感知,因此取得了更优越的性能。此外,HRMapNet 在与 StreamMapNet 和 MapTRv2 集成时,推理速度分别达到了 21.1 FPS 和 17.0 FPS,确保了其在自动驾驶实时应用中的实用性。

51c自动驾驶~合集26_自动驾驶_02

表 1: 在 nuScenes数据集上的比较结果。每个块中的第一行是基线方法,标记为 “#” 的是改进方法。“Modality” 列中,“means using only a single frame” 表示仅使用单帧图像;“SDMap” 表示添加额外的标准清晰度地图作为输入;“Temporal” 表示使用时间信息;“HRMap” 表示使用历史栅格化地图。MapTR 和 P-MapNet 的结果取自 P-MapNet;StreamMapNet 和 SQD-MapNet 的结果取自 SQD-MapNet,也与作者自己复现的结果一致。其他结果取自各自论文。FPS 是在单块 NVIDIA A100 GPU 上,批量大小为 1 时测量的。作者方法引入的改进用红色标记。

在 Argoverse 2 数据集上的比较:如表 2 所示,Argoverse 2 数据集上的结果进一步证明了 HRMapNet 的有效性。HRMapNet 在 StreamMapNet 和 MapTRv2 上都取得了显著的提升,分别提高了 2.8 mAP 和 4.0 mAP。这些结果强调了作者方法在不同方法论和数据集上的有效性和通用性。

51c自动驾驶~合集26_自动驾驶_03

表2:在 Argoverse 2数据集上的比较结果

在新分割数据集上的比较:上述实验是在常用的原始数据集分割上进行的,其中训练和验证数据集之间存在位置重叠。StreamMapNet 提出了 nuScenes 和 Argoverse 2 的新分割方法,其中训练和验证数据在位置上是分开的。作者在表 3 中也提供了这些新分割数据集上的结果。在这些新分割数据上,StreamMapNet 利用查询传播和 BEV 特征融合来整合时间信息。作者没有使用这两种时间融合模块,仅集成了利用全局栅格化地图的策略。HRMapNet 仍然在这两个数据集上提高了 StreamMapNet 的性能,分别提高了超过 3.0 mAP,这加强了集成全局栅格化地图的价值。

51c自动驾驶~合集26_自动驾驶_04

表3

消融实验

在本节中,作者对方法进行了消融研究,这些研究在 nuScenes 数据集上进行,使用 24 个训练周期,并将 MapTRv2作为基准模型。

特征聚合与查询初始化:在线感知中,作者的方法利用全局地图信息增强了鸟瞰视图(BEV)特征和查询。表 4 展示了这两个模块的消融研究。基于 MapTRv2,将全局地图信息集成到 BEV 特征中,性能提升了 3.1 mAP。进一步引入查询初始化模块,性能又提升了 2.6 mAP。这两个组件在将全局地图信息集成到在线感知中都起到了显著的正面作用。为了进一步证明提出的查询初始化模块有助于更高效地搜索地图元素,作者在补充材料中提供了减少解码器层数的消融研究。

51c自动驾驶~合集26_自动驾驶_05

表4:消融实验

查询初始化中的地图分辨率:在查询初始化过程中,所有地图元素存在的位置都被视为地图先验,并嵌入到基础查询中。然而,有时会产生过多的先验嵌入,占用大量内存。为此,在提取地图先验嵌入之前,作者对检索到的本地栅格地图进行了下采样,以达到更粗糙的分辨率。表 5 展示了不同分辨率下编码地图先验嵌入的消融研究。在 0.3 m 分辨率下,未采用下采样,导致训练过程中产生大量嵌入和显著的 GPU 内存消耗。随着分辨率的降低,内存使用量迅速减少,对推理速度的影响很小。作者将分辨率设置为 0.6 m 作为默认配置,因为此时内存消耗是可以接受的,并且能够获得最佳性能。结果还表明,与 MapTRv2 相比,HRMapNet 在训练中额外消耗了约 9 GB 的 GPU 内存。

51c自动驾驶~合集26_自动驾驶_06

表5:消融实验

实际使用中的额外结果

定位误差的鲁棒性:如第 3.2 节所述,全局地图是基于自车定位从本地预测的栅格地图中更新的。在自动驾驶中,自车定位通常使用 GNSS 模块或基于 SLAM 的方法进行高精度定位。为了评估 HRMapNet 对定位误差的鲁棒性,作者在 nuScenes 数据集上进行了额外的实验,结果如表 6 所示。基于 MapTRv2 训练了 24 个周期的模型在不同级别的定位误差下进行了测试;所有结果均来自同一模型,只是定位误差水平不同。作者为自车定位的平移和旋转添加了随机噪声,从而影响了地图的更新和检索。

51c自动驾驶~合集26_自动驾驶_07

表 6: 在不同定位误差下测试的 mAP

结果清楚地展示了 HRMapNet 对定位误差的鲁棒性,尤其是在平移方面。一个促成因素是作者方法中使用的相对较小的地图分辨率(0.3m)。尽管存在不同程度的定位误差,HRMapNet 仍然能够一致地提供可比的结果,大多数情况下性能仅下降了 1 mAP。即使在最坏情况下,即噪声最大的情况下,历史地图仍然带来了好处(63.8 mAP),与基线模型 MapTRv2(61.5 mAP)相比有所提升。考虑到自动驾驶中对平移的 0.1 m 误差和对旋转的 0.01 rad 误差是常见的要求,这些额外的结果表明 HRMapNet 在实际使用中的有效性。

不同初始地图:在上述实验中,为了进行更公平的比较,HRMapNet 被测试为使用一个空的初始全局地图。全局地图是逐渐从感知结果中更新的,并有利于后续预测。对于许多帧来说,在线感知实际上只从时间上的前几帧中受益,这削弱了使用全局历史地图的力量。在这里,作者提供了使用预构建初始地图的额外结果,如表 7 所示。这里使用的模型与表 1 中的模型相同,与 MapTRv2 集成并训练了 24 个周期。注意,模型没有重新训练或微调,作者只是用不同的初始地图进行了测试。这里有两种地图可以提供。

51c自动驾驶~合集26_自动驾驶_08

表 7: 使用不同初始地图进行测试的 mAP

对于“验证地图”,相同的模型用验证数据运行两次。第一次是使用空的初始地图运行。地图随着验证数据的进入而逐渐更新,最终的全局地图被保存。这个全局地图被加载用于第二次验证。实际上没有额外的数据输入,模型自己构建了一个全局地图并再次用于验证。有了这个更完整的地图的帮助,相同模型的性能进一步提高了 +5.4 mAP。此外,训练期间构建的全局地图被保存并再次加载用于验证。如第 4.2 节所述,训练和验证数据之间存在位置重叠。因此这个训练地图也可以在线感知中受益于验证。因为这个训练地图更准确,性能大大提高了 +16.5 mAP。作者提供这些额外的结果,以显示 HRMapNet 在自动驾驶实际使用中的潜力,包括众包在线地图感知。提供了一个易于维护的全局地图,甚至可以由其他车辆构建,在线矢量化地图感知的性能可以大大提高。

定性结果分析

如图 3 所示,作者对比了在严重遮挡、雨天以及夜间照明条件不佳的情况下的地图感知结果。所有参与比较的方法均基于 24 周期的训练。本研究提出的方法以 MapTRv2 为基础模型。图中,车道线、人行横道和道路边界分别用红色、绿色和蓝色标识。

51c自动驾驶~合集26_自动驾驶_09

图 3: 在三个挑战性场景(严重遮挡、雨天和夜间照明不足)下的可视化结果对比

结论

作者提出了一种新颖的框架,即通过维护一个全局的历史栅格化地图来增强在线矢量化地图的感知。这种全局栅格化地图能够利用过往的预测成果被简易地构建和更新。作者通过将历史栅格化地图的信息融合进鸟瞰视图(BEV)特征增强和查询初始化过程中,使其成为在线感知任务中的有益补充。本框架与当前大多数在线矢量化地图感知技术相兼容。实验结果证明,作者所提出的 HRMapNet 显著提升了两种业界领先的在线矢量化地图感知方法的性能。作者期望 HRMapNet 能够成为众包地图感知的基石:由众多自动驾驶车辆共同维护一个精确的全局栅格化地图,并以此为每辆车提供准确的在线矢量化地图感知的先验知识。

局限性:尽管 HRMapNet 专注于如何利用历史栅格化地图来增强在线矢量化地图的感知,作者并未设计过于复杂的地图维护机制,而是采用了一种源自机器人领域的占用网格建图技术的简化版本,用以将局部预测结果整合入全局地图。


#GaussianPU

消费级GPU即可完成彩色点云超采样点云超采样的瓶颈

点云超采样的早期方法主要依赖优化技术,但这些方法高度依赖点云的先验知识。基于深度学习的点云超采样网络出现并取得了显著成果。代表性方法有:

分层学习和多级特征聚合

逐步超采样稀疏3D点集的多步骤端到端网络

通过GAN框架学习点的多样化分布,确保超采样片段的均匀性

引入图卷积网络进行超采样,并进行多尺度特征提取

尽管这些深度学习方法取得了很大进展,但由于计算开销大,难以直接处理大规模点云,现有方法大多仅限于处理小于1,024个点的点云片段。此外,这些方法主要针对几何信息进行超采样,未充分利用彩色点云的颜色特性。

基于点的神经渲染技术早期利用神经网络增强点云渲染,随着NeRF的提出,神经渲染取得了巨大进展。目前,3DGS已成功应用于动态3D场景建模、生成式AI内容和自动驾驶等多个领域,展示了其在低级别点云处理任务中的潜力。

彩色点云通过添加颜色属性增强了传统点云(仅包含几何位置信息)的表现。然而,当前机器人传感器的性能限制通常导致彩色点云稀疏且不均匀,进而不可避免地降低了机器人的感知精度和决策能力。应用超采样技术的目标是生成更稠密、更高质量的彩色点云,从而显著提升机器人对复杂场景的解释能力、识别精细物体的能力以及与周围环境的精确互动能力。

当前先进的点云超采样技术通常采用基于多层感知器(MLPs)的深度学习架构的瓶颈在于:巨大的计算需求以及训练中采用的批处理方法通常要求对点云进行预处理,分割为片段。这些片段随后被用作模型的基本输入单元,正如图1所示。将点云分割为片段的超采样模型可能会在这些片段之间产生不连续性。这些不一致性会损害点云的整体质量和感知体验。这个问题对于包含大量点、旨在用于人类视觉感知的彩色点云尤为重要。

本文介绍的GaussianPU[1]一种用于机器人感知的点云超采样新框架,结合了3D高斯斑点(3DGS)和轻量级2D图像恢复网络。该方法解决了机器人应用中处理大规模点云的挑战。引入了一种双尺度渲染恢复模型来处理稀疏点云渲染中的遮挡不确定性。利用3DGS作为2D图像与3D点云之间的桥梁,再结合插值点云的几何和颜色先验,将恢复的图像转换为高质量的3D点云。框架能够让机器人在消费者级GPU上高效生成大规模彩色点云,增强其对环境的理解能力。

主要贡献如下:

  1. 提出了一种结合3DGS和2D渲染图像恢复模型的新型彩色点云超采样框架。该框架解决了传统超采样方法直接处理大规模点云时遇到的挑战。
  2. 针对点云渲染图像的前后遮挡问题,提出了一种双尺度渲染恢复方法。对原始3DGS进行的系列改进有效提升了超采样点云的质量,并实现了对超采样点数量的精确控制。
  3. 在机器人感知场景中的大量实验表明,所提方法显著增强了稀疏彩色点云的视觉和空间精度,提高了机器人对复杂环境的理解和导航能力。

具体方法

如图2所示。整个超采样框架可分为两个模块:数据准备和3DGS超采样。数据准备阶段包括渲染稀疏点云、重建渲染图像以及插值稀疏点云。接着,重建的渲染图像和插值后的点云,连同相机姿态一起输入到超采样模块中,以获得超采样后的稠密点云。

预备知识

考虑一个由N个点组成的点云P,表示为 ,其中每个点  由一个六维向量表示。这个向量包含两个基本属性:几何属性和颜色属性。几何属性由XYZ坐标表示,定义了每个点在3D空间中的位置,而颜色属性由RGB值表示,提供了点云的视觉外观信息。给定一个稀疏点云  和一个超采样因子 ,目标是生成一个包含  个点的稠密点云 ,并且希望 

点云渲染与渲染图像恢复

点云渲染:在这项工作中,使用Open3D工具来实现点云的渲染。渲染过程的数学表达如下:

51c自动驾驶~合集26_自动驾驶_10

其中,PS表示点的大小,IR表示渲染图像的分辨率,T表示相机的外部参数矩阵,具体形式如下:

其中, 和  分别代表相机在图像传感器的水平和垂直方向上的焦距, 和 

在设置点大小 

双尺度渲染图像恢复网络:在获得稀疏点云的渲染图像后,使用图像恢复网络恢复稀疏点云的渲染图像,目标是生成与稠密点云渲染效果相当的结果。考虑到轻量化的需求,选择了BRNet作为图像恢复的主干网络。BRNet通过引入均值移位模块来规范化输入图像,从而提升性能。为了结合不同点大小渲染图像的优点并减少其缺点,将FFDNet的输入通道扩展为六个通道,构建了一个双尺度恢复网络。将两种不同点大小的渲染图像拼接后一起输入点云恢复网络,以获得较小尺寸的稠密点云渲染图像。更多关于网络架构的详细信息,请参阅BRNet。在网络训练过程中,考虑到点云渲染图像中存在一定的空白背景区域,对前景和背景区域分配了不同的损失权重,损失函数如下:

其中, 和  分别表示恢复的渲染图像及其真实值,W表示白色像素集(即背景区域,像素值为(1, 1, 1)),O表示其他像素集(即前景区域)。通过设置不同的权重系数 和 ,可以调整前景和背景区域在总损失中的重要性,从而使网络更专注于前景,同时减少背景对整体损失的影响。

高斯插值

为了更好地控制超采样过程中生成的点数量,在将稀疏点云 

51c自动驾驶~合集26_自动驾驶_11

在这个公式中, 代表点的几何或颜色属性, 表示高斯分布的方差, 表示标准正态分布。对于点云的几何属性,将 设置为点云步长的0.25倍,而对于点云的颜色属性,将 设置为0。通过对稀疏点云中的每个点执行R次重参数化,获得了高斯插值后的点云 ,其点数量是稀疏点云的R倍。

3DGS点云超采样模块

在获得恢复的多视图渲染图像后,利用这些图像进行3DGS超采样。通过优化3DGS,可以根据3D高斯分布中心  和球谐系数 

通过给定的点云渲染图像及相应的相机姿态,3DGS可以学习以一组3D高斯分布形式表示的3D场景,这使得从任何视角渲染新图像成为可能。为了更好地适应彩色点云的超采样任务并提高感知质量,对原始3DGS框架进行了以下改进:

  1. 为了精确实现超采样后期望的点数,在优化过程中禁用了原始3DGS中的克隆、分裂和剪枝操作。这样可以固定3D高斯分布的数量,确保点云中的点数与输入到3DGS超采样模块的插值点云 
  2. 由于每个点在点云中以相同的大小进行渲染,引入了一个缩放约束,以确保点云整体的一致性。在每次优化迭代中,计算点云中所有点的平均缩放值,并将其分配给所有点,确保它们在渲染过程中具有一致的大小。
  3. 除了原始3DGS中的L1距离和DS-SSIM作为优化目标外,还引入了对超采样点云的正则化约束。具体来说,使用高斯插值点云  的颜色信息的L1距离作为颜色约束项。此外,还使用原始稀疏点云 

其中, 是权重系数, 和  分别表示点云的颜色和几何属性。通过优化 ,能够生成更加精确的超采样点云。

实验效果

总结一下

GaussianPU是一种新颖的2D-3D混合彩色点云超采样框架,结合了3D高斯斑点技术(3DGS)和2D渲染图像恢复网络。该框架可以在消费级GPU上直接进行大规模彩色点云的超采样,而不需要进行点云分割,从而避免了基于分块处理可能导致的质量下降。此外,提出了双尺度点云渲染图像恢复网络,并对3DGS进行了一系列针对点云超采样任务的改进。这些改进不仅实现了对超采样点数量的精确控制,还显著提高了超采样点云的质量。实验结果表明,在提高稀疏彩色点云的感知和几何质量方面表现出色,并且其处理数百万点的能力表明其在大规模机器人应用(如自主导航和环境建图)中的巨大潜力。



#Hint-AD

面向可解释端到端!语言与感知-预测-规划全面对齐,助力多项任务SOTA

自动驾驶中的端到端架构在可解释性方面面临重大挑战,这阻碍了人机之间的信任。为了执行诸如驾驶解释和3D字幕生成等任务,已探索过了人性化的自然语言。然而,以往的工作主要关注于声明式可解释性的范式,其中自然语言解释并未以自动驾驶系统的中间输出为基础,导致这些解释仅具有声明性质。相比之下,对齐式可解释性在语言与自动驾驶系统的中间输出之间建立了联系。在此,我们介绍了Hint-AD,这是一个集成的自动驾驶-语言系统,能够生成与自动驾驶模型的整体感知-预测-规划输出相对齐的语言。通过整合中间输出和一个用于有效特征适应的整体标记混合子网,Hint-AD实现了理想的准确性,在包括驾驶解释、3D密集字幕生成和指令预测在内的驾驶语言任务中取得了最先进的成果。

为了促进对nuScenes上驾驶解释任务的进一步研究,我们还引入了一个人工标注的数据集Nu-X。代码、数据集和模型均可在网上公开获取,网址为:https://air-discover.github.io/Hint-AD/

背景介绍

端到端的感知规划架构在自动驾驶(AD)和一般具身智能中至关重要,因为它具有利用大量数据进行自监督训练的潜力。然而,这些系统面临着严峻的可解释性挑战,在具身智能问题中,如自动驾驶,可解释性问题尤为突出。当自动驾驶系统直接输出控制信号时,人类乘客很难信任其决策。为了解决这个问题,自然语言作为一种高度用户友好的沟通媒介,已被探索用于通过诸如驾驶解释、3D密集字幕和视觉问答(VQA)等任务来增强可解释性。虽然人类驾驶员认识到BEV轨迹作为解释正在发生什么(WHAT)的价值,但语言提供了为什么发生这种情况(WHY)的补充视角。这些方法可以根据单一标准分为声明式可解释性和对齐式可解释性:即生成的语言是否与自动驾驶系统的中间输出对齐(图1)。

51c自动驾驶~合集26_自动驾驶_12

声明式可解释性如近期在驾驶解释、3D密集字幕和视觉问答等方面的研究所示,它直接生成自然语言,而不依赖于自动驾驶系统的中间输入。这种方法经常会产生幻觉,因为语言没有基于全面的中间输出,只是驾驶行为的合理化解释。

对齐式可解释性要求语言与自动驾驶模型的内部状态保持一致。据我们所知,这种方法首先由[14]提出,他们将自动驾驶模型的注意力状态与语言解码器对齐,后来的工作将语言解码器与内部决策状态对齐。

然而,现有研究忽视了语言解码器与自动驾驶流程中的完整感知-预测-规划输出之间的对应关系,导致语言任务与自动驾驶任务之间存在差异。通过自动驾驶流程的中间输出来提高驾驶场景中语言任务准确性的潜力尚未被探索。为此,这里提出了Hint-AD,一个集成的自动驾驶-语言框架,旨在与自动驾驶模型的感知-预测-规划过程进行全面对齐,并生成高精度的语言,以促进自动驾驶的可解释性。

我们开发了两种方法来实现语言与自动驾驶模型之间的全面对齐以及语言输出的准确性:

(a) 开发了一个整体token混合模块,该模块将自动驾驶模型的中间输出token适应于语言解码器,重点在于稳健的特征提取和融合;

(b) 引入了一个对齐任务作为在线数据集,以将语言输出与自动驾驶模型的中间输出对齐,要求语言解码器在整个训练过程中解释自动驾驶模型推理过程中生成的中间token。

在UniAD和VAD这两个最先进的自动驾驶模型上实现了Hint-AD,这两个模型分别采用了光栅化和矢量化表示,以证明Hint-AD的通用性。实验结果表明,Hint-AD在各种语言任务上均达到了最先进的性能,包括驾驶解释(CIDEr得分比基线高出20.4%)、3D密集字幕(CIDEr得分比基线高出185%)、视觉问答(准确率提高1.2%)和驾驶指令预测(准确率提高1.2%)。对齐任务显著提高了语言输出与自动驾驶模型中间表示之间的一致性。此外,我们还贡献了一个基于nuScenes的人类标注的驾驶解释数据集Nu-X,以解决这个广泛使用的自动驾驶数据集上缺乏驾驶解释数据的问题。

相关工作介绍

端到端自动驾驶系统旨在构建一种能够处理传感器数据并直接输出车辆控制信号的架构。这些系统因能够解决传统模块化设计中存在的误差累积问题而备受研究关注,传统模块化设计将感知和规划分为不同的模块。其中,UniAD和VAD等杰出例子将模块化感知任务(如目标跟踪、地图构建、运动预测和轨迹规划)集成在一个统一的框架内。此外,还开发了用于端到端自动驾驶的离线数据集。

自动驾驶的可解释性,即为自动驾驶规划提供全面解释的能力,对于自动驾驶系统中的用户信任和系统透明度至关重要。自然语言作为一种与用户沟通的用户友好型媒介,已被探索用于通过驾驶解释、视觉问答(VQA)和3D密集字幕等方式来提高自动驾驶的可解释性。以前的工作主要集中在声明式可解释性上,一些方法使用视觉信息实现了驾驶解释任务。但是,自动驾驶模型的中间输出并未与语言输出对齐。其它论文提出了语言输出应基于自动驾驶系统内部状态的概念。也有人探索了将语言解码器与自动驾驶模型内部决策状态对齐的方法,但据我们所知,以前的工作尚未实现与自动驾驶模型整个感知-预测-规划过程的全面对齐。

Hint-AD方法

为了探索自然语言与端到端自动驾驶框架中的中间结果之间的全面对齐,我们提出了一个名为Hint-AD的新型框架,该框架包含三个模块:整体token混合器、语言解码器和传统自动驾驶框架。Hint-AD的概览如图2所示。图2中的现有自动驾驶流程可以是任何将自动驾驶分解为感知、预测和规划的端到端自动驾驶系统。为了不失一般性,在UniAD(作为Hint-UniAD)和VAD(作为Hint-VAD)的基础上实现了我们的方法,它们分别使用光栅化和矢量化表示。

51c自动驾驶~合集26_自动驾驶_13

1)Hint-AD的整体框架

首先,从现有的感知-预测-规划架构的自动驾驶模型中提取中间查询token,生成跟踪token、运动token和规划token。其次,整体token混合器模块将对token进行适配,以作为语言解码器的输入。在此模块中,设计了一个实例混合器来合并每个检测实例的实例级跟踪和运动信息。还引入了鸟瞰图(BEV)block和实例block以进行进一步的特征提取,并将长度可变的实例token转换为固定长度。所有处理过的token都被连接起来作为文本生成的上context tokens。最后,context  tokens被格式化为prompt tokens,并与文本提示一起放入语言解码器中。我们采用了一种杠铃式适应范式,以实现语言解码器对context的高效理解。

为了在训练过程中使语言和自动驾驶pipeline的中间结果对齐,加入了额外的训练数据,称为对齐任务,这些数据在训练过程中在线构建。

2)Holistic token mixer

从自动驾驶pipeline中提取的查询tokens对于语言解码器来说并不是直接可理解的。针对这一问题,我们提出了一个整体token混合器架构。Hint-UniAD和Hint-VAD的具体实现略有不同。主要遵循Hint-UniAD的设计,而Hint-VAD的小幅调整则在附录中给出。

首先,对从自动驾驶pipeline中提取的查询tokens进行标记。对于一个典型的感知-预测-规划自动驾驶pipeline,可以提取以下组件:BEV tokens ,其中、和分别是BEV字段的高度、宽度和通道数。

Track tokens 包含每个检测对象的位置和过去轨迹信息,其中是检测到的目标数量,D是token向量的维度。Motion tokens包含每个检测目标预测的未来轨迹。Planning steps 将是模型预测的未来轨迹。

为了有效地将tokens合并到实例级别,设计了一种新颖的实例混合器,它将每个检测实例的跟踪tokens 和运动tokens 集成到一个实例tokens 中。这是通过张量拼接后跟一个多层感知器(MLP)投影器来实现的,该投影器将个检测实例的tokens投影到维度为的嵌入中:

51c自动驾驶~合集26_自动驾驶_14

特征编码器E被实现为一个多层卷积网络,该网络提取特征并将鸟瞰图(BEV)缩放到3×3。之后,使用一个多层感知器(MLP)投影器来将BEV的通道维度C转换为,从而得到。

BEV block和实例block采用多头自注意力层来适应BEV和实例特征。对于BEV tokens,多头自注意力(MHSA)在它们之间进行操作。考虑到每帧检测到的实例数量是可变的,我们引入了个可学习的tokens 作为查询。然后,在这些可学习tokens和实例tokens之间进行多头交叉注意力(MHCA)。BEV block和实例 block通过改进BEV和实例tokens的特征提取和融合来提高适应性。

51c自动驾驶~合集26_自动驾驶_15

规划步骤将通过正弦位置编码PE和一个MLP投影器编码到嵌入维度。在所有实例令牌中,有一个自我实例令牌F_{ego}^{instance}代表自我车辆[2]。处理后的BEV、实例、自我实例和规划令牌将被连接为上下文令牌,以进行进一步的语言生成任务:

在所有实例tokens中,有一个ego实例tokens 代表自车。处理后的BEV、实例、ego实例和规划tokens将被连接为context tokens,以进行进一步的语言生成任务:

51c自动驾驶~合集26_自动驾驶_16

3) Language decoder with barbell adaptation

为了将多模态大型语言模型(MLLMs)在自动驾驶相关语言任务中的高级推理和上下文理解能力融入其中,我们采用了预训练的LLaMA-2-7B模型作为语言生成器的LLaMa-AdapterV2。对于语言微调,使用了可学习的适配器,这些适配器在插入的层中作为额外的键和值,并采用零初始化的注意力,其中是要插入的层数,是语言解码器中tokens的维度。

在原始的LLaMa-Adapter-V2策略中,context tokens 会被插入到第一层,而可学习的适配器会被插入到其他所有N-1层中,其中N是LLaMA-2-7B的总层数。我们观察到,用于语言调谐的适配器往往会主导适应过程并降低上下文与语言的对齐度。这对于需要高级context理解能力的自动驾驶任务至关重要。因此,我们提出了一种barbell adaptation范式(见图2),其中可学习的适配器仅被插入到层(作为前端适配器)和层(作为末端适配器),context tokens被插入到第一层。

将适配器放置在前端和后端的理由是,前端适配器有助于理解context信息,而后端适配器则增强了语言的微调。这种设计平衡了对高级context理解和精确语言适应的需求。在训练过程中,采用交叉熵损失作为字幕损失,仅对答案tokens进行监督。

4)Aligning language and intermediate outputs

为了使语言与自动驾驶模型的中间输出对齐,语言解码器需要对自动驾驶模型推理步骤中生成的每个token(即跟踪tokens中目标的位置)所包含的信息进行基于context的理解。我们通过在训练过程中添加一个在线对齐任务数据集来实现这一点。

51c自动驾驶~合集26_自动驾驶_17

在对齐任务中,给定自动驾驶模型的中间输入,会生成一组提示-答案对(图3)。该任务包括四种类型的对齐:(a)计数对齐,要求语言解码器根据跟踪tokens解释帧中每种类型实例的数量;(b)位置对齐,要求模型根据特定实例token提供跟踪实例的位置;(c)运动对齐,涉及解码实例tokens中包含的速度信息;(d)规划对齐,要求语言解码器输出规划tokens中包含的未来轨迹点。

对齐任务中的所有问答对都是在训练过程中在线生成的。对齐任务极大地提高了语言解码器对中间令牌的上下文理解能力,从而大大提高了自动驾驶字幕的准确性。

5)Training pipeline

Hint-AD的整个训练流程包括两个阶段。在第一阶段,端到端的自动驾驶(AD)模型被独立训练。在第二阶段,冻结AD模型和大规模语言模型(MLLM)的所有参数,仅更新整体token混合器和适配器的参数。第二阶段的总可训练参数为87M。

实验设置1)数据集和baselines

数据集。解释是人类学习和理解的重要指导工具。特别是在端到端自动驾驶(AD)系统的背景下,人类用户经常寻求解释来弥合传感器输入和AD行为之间的鸿沟 。目前,在自动驾驶研究中广泛使用的nuScenes数据集  没有提供此类解释。为了弥补这一空白并促进针对nuScenes的可解释性研究,我们引入了Nu-X,这是一个全面、大规模、经过人工标注的解释性数据集。Nu-X为nuScenes中的每一个34,000个关键帧提供了详细的contextual信息和多样化的语言表述。

一个解释性句子通常包括叙述和推理 ,例如:“<叙述>汽车正在并入右侧车道。<推理>为了超过前面的红色汽车。”在我们的数据集中,每个标题都包含这两个部分。

为了提供全面的分析,所有Hint-AD架构和基线都在以下数据集上进行了训练和评估:(1)对齐任务数据集,旨在通过要求语言解码器解释每个中间标记来将语言与AD模型的中间输出对齐,训练过程中在线生成真实答案;(2)TOD3Cap ,一个3D密集字幕数据集,为nuScenes中的64.3K个户外目标提供目标描述,并标注了外观、运动、环境和目标间空间关系;(3)NuScenesQA ,一个VQA数据集,覆盖了nuScenes的34K帧,包含五种问题类型,包括存在性、计数、查询对象、查询状态和比较;(4)驾驶指令数据集,我们在nuScenes上进行了标注,由方向和速度指令组成。

基线模型。我们选择了基准方法,这些方法既包括了语言生成领域的关键里程碑,也包括了自动驾驶背景下最先进的方法:(1)ADAPT 采用自回归方式,通过视觉-语言转换器生成句子。在文本和视频标记上使用了交叉注意力和稀疏注意力掩码;(2)BEV+Adapter 仅以鸟瞰图(BEV)特征作为输入,并使用LLaMA-Adapter-V2(与Hint-AD相同)作为语言解码器;(3)BEVDet+MCAN 使用模块化协同注意力网络(MCAN),其中包含用于单独的语言和视觉理解的自注意力层。堆叠的交叉注意力层用于跨模型特征交互。输入采用了来自BEVDet 的检测结果;(4)Vote2Cap-DETR  基于transformer架构,具有两个并行的特定于任务的头。查询被解耦为定位查询和字幕查询;(5)TOD3Cap 利用基于查询的检测头从BEV特征中生成一组3D目标proposal。然后,这些特征通过LLaMA-Adapter处理,作为语言模型的提示来生成密集字幕;(6)GPT-4o 是OpenAI开发的多模态模型,具备最先进的视觉能力,同时文本生成性能与其前身GPT-4相当;(7)Gemini-1.5 是谷歌开发的一款开创性的大型语言模型,专为处理具有扩展context长度的多模态输入而设计。

2)Comparing with baseline models

量化结果。在四个数据集上,针对不同类型的输入和主干模块分别展示了结果。对于Nu-X和TOD3Cap数据集,我们采用了四种标准的图像字幕评估指标,包括CIDEr (C) 、BLEU (B) 、METEOR (M)  和 Rouge (R) 。由于Nu-X中驾驶解释的全面性,还采用了GPT-3.5评分(G)来评估Nu-X。在测试TOD3Cap时,为匹配预测和真实边界框设置了0.25的阈值。对于NuScenes-QA和Command数据集,我们直接将生成的文本与真实文本进行比较以获得准确率。根据推理复杂性,QA被分为zero-hop (H0) and one-hop (H1)。从表1中可以得出以下结论:

51c自动驾驶~合集26_自动驾驶_18

Hint-UniAD和Hint-VAD在多任务测试中均表现出高性能。两个系统均在Nu-X数据集上取得了最先进的结果,CIDEr分数比最佳基线(BEV+Adapter)高出3.8分(20.4%)。值得注意的是,Hint-UniAD在TOD3Cap任务上表现出显著优越的性能,CIDEr分数提高了222.3分(185%)。尽管HintVAD在该任务上的表现略低,但附录C.3中讨论了可能的解释。此外,在NuScenes-QA和Command数据集上,Hint-VAD的总体准确率分别比最佳基线高出0.6分和1.2分。这些结果凸显了所提出的Hint-AD架构的有效性。

定性结果。图3展示了一些定性结果。Hint-AD生成的文本显示出对场景的深刻理解,并且与自动驾驶模型的中间结果恰当地保持一致。

3)language和模型的对齐分析

量化语言与自动驾驶(AD)模型中间输出之间的一致性,我们对语言解码器的输出与AD感知模块的预测进行了评估,这些预测是在验证集上实时生成的。我们设计了四种不一致性协议:(a)计数不一致性(CD),用于衡量解码head和跟踪模型给出的每个类别实例数量之间的差异;(b)位置不一致性(PD),用于衡量特定实例的位置差异;(c)运动不一致性(MD),用于衡量速度差异,计算为字幕中速度与感知系统预测速度之间的平均距离;(d)规划不一致性(PLD),用于衡量轨迹点之间的差异。对Hint-AD进行了测试,包括对齐可解释性(原始设计)和声明性可解释性。与在声明性可解释性范式下运行的模型相比,对齐语言解码器的性能显著更优,这表明包括整体token混合器和对齐任务在内的对齐设计是有效的。

4)消融实验

整体对齐的有效性。为了评估整体语言-自动驾驶(AD)对齐在语言任务准确性上的有效性,我们通过从语言解码器的输入中移除跟踪、运动和规划tokens来进行了一项消融研究。表2中的结果表明,使用所有tokens可实现最高性能。跟踪tokens通过位置信息增强了3D密集字幕,而规划tokens则通过提供未来轨迹数据改进了命令预测。

51c自动驾驶~合集26_自动驾驶_19

整体token混合器设计的消融研究。实例混合器和实例block增强了中间tokens的特征提取和适应性。表3中的结果表明,移除实例block和实例混合器会显著降低TOD3Cap和NuScenes-QA的性能,因为物体的位置和运动信息没有得到充分融合。

fbarbell adaptation的有效性。我们探索了三种替代方案:(a)早期融合,即LLaMA-Adapter-V2的原始设计,每层都有适配器;(b)金字塔式适应,仅在前面的Nfront层有适配器;(c)锤式适应,仅在最后的层有适配器。哑铃式适应在三个数据集上表现最佳(表4)

51c自动驾驶~合集26_自动驾驶_20

一些结论

本工作提出了Hint-AD,这是一个集成的自动驾驶(AD)-语言框架,它将语言生成与自动驾驶模型的整体感知-预测-规划过程对齐,从而在多个自动驾驶字幕任务中实现了最先进的性能。同时,作为对齐可解释性实现的一项探索性研究,以下限制仍有待进一步研究解决:

  • 由于其针对特定流程的性质,中间输出格式的任何更改都需要对令牌混合器的设计进行修改。对于纯端到端模型(如黑盒模型),则需要进行调整以有效处理潜在输出。
  • 基于LLaMA的语言解码器相对耗时。有必要进一步研究更小的模型替代方案,如MiniChat-1.5-3B和StableLM-3B-4E1T。

随着大型语言模型(LLM)理解自动驾驶模型中间输出的潜力日益显现,未来研究可以进一步深入这一领域,并通过对齐可解释性增强用户对自动驾驶模型的信任。





#LM-Gaussian

大规模视觉模型助场景重建一臂之力大模型能带来什么帮助?

尽管已有一些尝试试图解决稀疏视角的场景重建问题,但现有的工作仍局限于简单的前向场景,比如LLFF数据集,该数据集只涉及小角度旋转和简单的场景方向。对于大规模的360度场景,不适定性和欠约束性的问题阻碍了这些方法的应用。

3DGS技术在稀疏视角条件下进行高质量的3D重建时面临三大主要障碍:

初始化失败:3DGS严重依赖于预先计算的相机位姿和点云来初始化高斯球。然而,传统的基于运动恢复结构(SfM)技术在稀疏视角下无法成功处理,由于输入图像之间的重叠不足,导致相机位姿不准确和点云不可靠,从而无法进行3DGS的初始化。

输入图像的过拟合:由于缺乏足够的图像提供约束,3DGS往往在稀疏输入图像上过拟合,从而生成严重失真的新合成视图。

细节缺失:由于多视角约束和几何线索有限,3DGS总是无法恢复捕获的3D场景的细节和未观测到的区域,这显著降低了最终的重建质量。

为了应对这些挑战,本文介绍的LM-Gaussian[1]是一种结合了大模型先验知识的创新方法,能够在稀疏输入图像的条件下生成高质量的重建。核心思想是利用各种大模型先验的力量来提升3D高斯分布的重建能力,主要包括三个目标:1)稳健的初始化;2)防止过拟合;3)细节保留。

在稳健的初始化方面,提出了一个新的初始化模块,使用来自DUSt3R的立体视觉先验代替传统的SfM方法。DUSt3R是一个综合性的立体视觉模型,它以图像对为输入,直接生成相应的3D点云。通过全局优化过程,它从输入图像中推导出相机位姿并建立一个全局注册的点云。然而,由于DUSt3R对前景区域的偏好,生成的全局点云经常在背景区域中出现伪影和漂浮物。为了解决这个问题,引入了一个背景感知的深度引导初始化模块。该模块初步使用深度先验来优化由DUSt3R生成的点云,特别是在场景背景区域。此外,通过几何一致性检查和基于置信度的评估进行迭代滤波操作,消除不可靠的3D点。这种方法确保生成一个干净且可靠的3D点云,以用于初始化3D高斯分布。

一旦获得稳健的初始化,通常使用光度损失来优化3D高斯球。然而,在稀疏视角设置下,仅仅使用光度损失会导致3DGS在输入图像上过拟合。为了解决这一问题,引入了多个几何约束,有效地规范了3DGS的优化过程:

  • 引入了一个多尺度深度正则化项,以鼓励3DGS捕捉深度先验的局部和全局几何结构。
  • 引入了一个余弦约束的法线正则化项,以确保3DGS的几何变化与法线先验保持一致
  • 应用了一个加权的虚拟视角正则化项,以增强3DGS在未观测视角下的鲁棒性。

为了保留复杂的场景细节,引入了一个迭代高斯细化模块,该模块利用扩散先验恢复高频细节。利用基于扩散的高斯修复模型来修复从3DGS渲染的图像,旨在增强图像细节并产生良好的视觉效果。这些增强的图像被用作额外的伪真实数据,以优化3DGS。在3DGS优化过程中,反复执行这种细化操作,逐渐将图像扩散先验注入3DGS以增强细节。

具体方法概述

LM-Gaussian旨在通过有限数量的输入图像生成高质量的360度场景新视角。集成了多种大模型先验,并由四个关键模块组成:

  1. 基于深度感知的初始化:该模块扩展了DUSt3R,用于相机姿态估计和详细的3D点云创建。通过集成深度先验和点云清理,实现了用于高斯初始化的高质量点云。
  2. 多模态正则化高斯重建:除了3DGS中使用的光度损失外,还引入了深度、法线和虚拟视角约束,以正则化优化过程。
  3. 迭代高斯细化:使用图像扩散先验增强由3DGS渲染的图像。这些改进的图像进一步细化3DGS的优化,通过迭代引入扩散模型先验来提高新视角合成的细节和质量。
  4. 场景增强:除了图像扩散先验,还应用了视频扩散先验,进一步增强3DGS渲染图像的逼真视觉效果。
基于背景感知的深度引导初始化

传统上,3D高斯分布(3DGS)依赖通过运动恢复结构(SfM)方法计算的点云和相机位姿进行初始化。然而,在稀疏视角设置下,SfM方法经常面临挑战。为了解决这个问题,提出了利用立体视觉先验作为替代方案。DUSt3R 是一个端到端的稠密立体模型,它可以接收稀疏视角图像作为输入,并生成稠密的点云和相机位姿。然而,DUSt3R生成的点云在场景的背景区域容易出现浮动物体、伪影和失真,特别是在3D场景的背景部分。

为了解决这些问题,提出了基于背景感知的深度引导初始化模块,该模块能够生成稠密且精确的点云。此模块集成了四个关键技术:

  1. 相机位姿恢复:最初,利用DUSt3R为每张图像生成点云。然后,将相机位姿和点云对齐到一个全局一致的坐标系中。此过程通过最小生成树算法来完成,以确保所有相机位姿和点云的对齐是一致的。接下来,使用一个优化方案来提升对齐点云的质量。起初,按照DUSt3R的方法,最小化点云投影损失  。对于图像对 ,其中  和 
  2. 深度引导优化:仅依赖点云投影损失进行优化可能不足以重建大规模场景,这会导致背景区域浮动和场景失真的问题,这些问题会影响后续的重建过程。为了解决这些问题,引入了一个单目深度估计模型(Marigold),该模型以其在深度估计领域的高性能表现而闻名,可以为场景深度信息提供有力的支持。优化网络中的深度引导优化通过结合DUSt3R的输出与深度指导,显著提高了深度感知,从而有效减少了场景失真。
  3. 点云清理:为了消除浮动和伪影问题,实施了两种清理策略:基于几何的清理和基于置信度的清理。基于几何的清理在深度优化过程中迭代执行,通过比较3D点在不同视角下的投影差异来去除不可靠的3D点。每经过指定的迭代次数后,执行几何清理步骤以移除漂浮的点云。优化过程结束后,应用基于置信度的清理策略,以在前景和背景之间进行区分,并使用不同的置信度阈值处理前景和背景区域,从而确保生成的点云更加稳定和准确。
  1. 深度优化的点云清理:在基于几何和置信度的清理之外,还在优化过程中引入了背景感知的深度引导,以确保不仅前景区域细致,背景区域也得到了合理的优化。具体方法包括使用图像对的投影一致性来减少背景噪声和伪影,进一步提升点云的全局一致性。
多模态正则化高斯重建

通过基于背景感知的深度引导初始化,获得了稠密的点云和相机姿态。这些变量用作高斯核的初始化。传统的3DGS方法使用光度损失函数(如L1和LSSIM)来优化3DGS核,使其捕捉基础的场景几何结构。然而,在输入图像极其稀疏的情况下,挑战随之而来。由于高斯表示的固有偏差,高斯核容易在训练视图上过拟合,从而导致在未见过的视角中性能下降。为了解决这个问题,通过整合光度损失、多尺度深度损失、余弦约束的法线损失和基于范数加权的虚拟视图损失,增强了高斯优化过程。

光度损失:与传统3DGS一致,首先计算输入RGB图像与高斯渲染图像之间的光度损失。光度损失函数结合了L1和SSIM项。

51c自动驾驶~合集26_自动驾驶_21

其中, 是一个超参数,

多尺度深度正则化:为了解决上述挑战,可以将深度信息引入高斯场景,以在训练期间提供正则化。与初始化模块类似,首先使用单目估计模型Marigold从稀疏的输入图像中预测深度图。由于单目深度估计模型通常提供相对深度预测,而不具有真实场景的尺度信息,使用皮尔逊相关系数(PCC)作为度量来评估深度图之间的相似性。皮尔逊相关系数是一种基本的统计学相关系数,用于量化两个数据集之间的线性相关性。简而言之,它评估了两个不同分布之间的相似性。

余弦约束的法线正则化:为确保几何变化与法线先验保持一致,引入了余弦约束的法线正则化项。这个正则化项通过强制高斯核的法线与法线先验对齐,进一步提升了3DGS在几何结构上的一致性。

基于范数加权的虚拟视图正则化:为了提高3DGS在未见视角下的鲁棒性,引入了基于范数加权的虚拟视图正则化项。使用一个加权的融合算法来创建点渲染图像,并与高斯渲染图像保持一致性。这些虚拟视图提供了附加的几何约束,减少了网络在稀疏输入图像下的过拟合倾向。

最终的多模态联合优化损失函数表示为:

51c自动驾驶~合集26_自动驾驶_22

其中,、、

迭代高斯细化

在此阶段,实施了一种迭代优化方法,以逐步增强场景的细节。首先,使用高斯修复模型对来自虚拟视角的高斯渲染图像进行均匀增强。该模型能够将模糊的高斯渲染图像优化为清晰且逼真的表示。优化后的图像作为附加指导,结合深度和法线正则化项,帮助进一步优化高斯核。经过 

1) 迭代高斯优化

最初,使用高斯核从虚拟视角生成  张图像。随后,使用高斯修复模型对这些图像进行均匀增强,生成一组修复后的图像,记作 。为了保持场景的连贯性并减少潜在冲突,将降噪强度设置为较低,并在每次修复过程中逐步重新引入有限的细节到高斯渲染图像中。这些修复后的虚拟视角图像,连同来自训练视图的单目深度图和法线图(详见IV-C部分),将用于调节高斯优化过程。高斯细化阶段的整体优化损失 

51c自动驾驶~合集26_自动驾驶_23

其中, 和  分别对应于多模态正则化高斯重建过程中的深度正则化和法线正则化。修复损失  的权重由  控制,修复损失 

在此公式中,通过光度损失函数计算修复图像与高斯渲染图像之间的差异,并将修复图像作为指导参考。参数 、 和 

通过这种迭代优化策略,生成的新图像将逐步变得更加清晰,而不会受到视角差异所导致的模糊影响。优化过程将持续进行,直到确认扩散过程不再产生令人满意的结果,如与初始场景的偏差或视角之间的不一致性所示。

2) 高斯修复模型
模型架构

高斯修复模型的架构如图6所示。该模型以高斯渲染图像和真实世界的输入图像为输入。在图6(b)中,高斯渲染图像 \ 经过图像编码,提取潜在的图像特征。真实世界的输入图像通过一个GPT API处理以生成描述提示 σ\,然后进行编码以获得文本的潜在特征。这些图像和文本的潜在特征作为条件输入给ControlNet来预测噪声 εθ\,并逐步去除高斯渲染图像中的噪声。该模型通过在ControlNet层中注入LoRA(Low-Rank Adaptation)进行微调,最终可以生成修复后的高斯渲染图像。图6(c)展示了Lora-ControlNet的工作原理,其中LoRA权重被集成到ControlNet的UNet中的每个Transformer层内。保持Transformer块的原始参数不变,仅训练低秩矩阵 \ 和 \,其中 \、\,并且 \。在文本编码器方面,如图6(d)所示,LoRA权重被集成到编码器的每个自注意力层中。Lora-Text编码器的输入是场景提示,输出为文本嵌入。

训练过程

首先,进行数据准备,收集图像对,场景中的输入图像作为参考图像。对于每个训练视角,随机选择 ω\ 张高斯渲染图像,并将其与输入图像配对,形成训练对。随后,这些图像对用于训练高斯修复模型。

如图6(a)所示,输入图像 \ 经过前向扩散过程。具体而言,图像被输入到图像编码器中,以提取潜在表示 \。该潜在表示随后经过一个扩散过程,其中噪声 ε\ 在 \ 步中逐步加入。在获得潜在表示 \ 后,开始反向扩散过程,如图6(b)所示,Lora-UNet和Lora-ControlNet在每一步预测噪声 εθ\。此预测的噪声与扩散过程中引入的噪声结合,进一步优化生成修复后的图像。

场景增强

鉴于输入图像稀疏且训练视角有限,预计从相邻新视角渲染的图像可能会显示出差异。为了确保沿着指定的相机路径进行高质量且一致的渲染,提出了一个视角增强模块,该模块利用视频扩散先验来改善渲染图像的一致性。

该模块的重点是增强渲染图像的视觉一致性,而不涉及高斯核的细化。首先,在预定的相机轨迹上渲染多张图像并进行分组处理。随后,使用一个视频扩散UNet来对这些图像进行去噪,以生成增强后的图像。在视频扩散模型中,使用DDIM逆向将高斯渲染图像映射回潜在空间,其公式可表达为:

其中  是时间步长, 表示一个引导扩散过程的递减序列。σ

将高斯渲染图像映射到潜在空间的原因是为了利用潜在空间的连续性,保留不同视角之间的关系。通过在潜在空间中集体对图像进行去噪,旨在提高视觉质量,同时不牺牲空间一致性。

实验效果
总结一下

LM-Gaussian是一种利用大规模视觉模型先验的稀疏视角3D重建方法。该方法包含一个稳健的初始化模块:

  • 利用立体视觉先验来帮助恢复相机姿态和可靠的高斯球体。多模态正则化方法则利用单目估计先验来防止网络过拟合。
  • 采用了迭代扩散细化方法,将额外的图像扩散先验引入高斯优化中,以增强场景细节。
  • 利用视频扩散先验进一步改进了渲染图像的真实视觉效果。

与传统的3DGS方法相比,显著减少了数据采集要求,并且即便在360度场景中也能获得高质量的结果。当前,LM-Gaussian基于标准的3DGS构建,该技术目前仅适用于静态场景,未来希望引入动态3DGS技术,以实现动态建模





#将 MOE 塞到 LoRA

在传统的 LoRA 中加入一个 Mixer 矩阵,进行混个不同子空间的信息。

Nothing will work unless you do. --Maya Angelou

文章的基本信息是:

标题:Mixture-of-Subspaces in Low-Rank Adaptation

链接:https://arxiv.org/pdf/2406.11909

代码:https://github.com/wutaiqiang/MoSLoRA

简介:在传统的 LoRA 中加入一个 Mixer 矩阵,进行混个不同子空间的信息。设计非常简单:

最初的想法

说来也是巧合,之前有很多的文章尝试将 LoRA 和 MoE 结合起来,他们基本上都是把 LoRA 当做 MoE 的 Expert,然后塞到 MoE 结构之中,之前也介绍过一些,如文章 https://zhuanlan.zhihu.com/p/676782109、 https://zhuanlan.zhihu.com/p/676557458、 https://zhuanlan.zhihu.com/p/676268097、https://zhuanlan.zhihu.com/p/675186369。这些文章无疑都是将 LoRA 看作 MoE 的 expert,一来缺乏动机,二来影响了 LoRA 的可合并性,三来 训练还慢。

闲来与同事聊天,同事说没见过有文章把 MoE 塞到 LoRA 里面,我当时愣了一下。啊?MoE 塞到 LoRA 里面,意思是说把 MoE 的那种 gate+多专家去做 LoRA 的 lora_A 和 lora_B ?

最直观的设计就是:

有点抽象,但稍微知道点 MoE 和 LoRA 的应该都能懂

其实想出这种设计还是很直接的,毕竟 lora 和 MoE 都是很成熟,很简单的设计。

先不谈有没有动机,反正水文章嘛,都能找到点。就说这个设计,其实有点不合适,为什么呢?

核心就在于 Gate 这玩意,MoE 是希望尽可能训多点参数但计算量不要大太多,因此整了多个Expert 选用一部分并设计了 Gate Router 的机制。但是,LoRA 本身参数量就不大,且rank 大又不一定效果好,堆这个参数属实没必要。此外,LoRA 的好处就在于可以 Merge 回原来的权重,infer 的时候 0 延迟。这个Router Gate 因为和输入 x 耦合,因此没法 merge 回去了。这就带来了推理延迟。

去掉Gate,直接上

有了上面的分析,下一步自然就是要去掉 Gate 了。为了确保能合并,因此所有的 expert 都得用,此时就变成了:

仿佛在拼积木

有了这个设计以后,同时又出现了一些 concern:虽然说 infer 的时候,大家都可以合并到原始权重,都是 0 延迟。但是训练的时候,比如我这个图画的,训的参数是之前的 3 倍多。(在当今这个大环境下,怕是要被审稿人喷)

所以说,要说公平,那就不能设置为 r,每个模块还是得设置成r/k,上图的 case 对应的就是 r/3,这样训练的参数没变,同时 infer 都是 0 延迟。

这也就是论文里面的two-subspace-mixing 的方法的由来。

'多头注意力'的视角

既然把每个专家设置成了 r/k 的大小,这玩意就很像是多头注意力了,有 维度切分+并行操作+最后合并 的操作。这不禁让我思考,这和多头注意力有什么关系?原始的 LoRA 能不能等价拆开?

说到拆开,有两个量可以拆,一个是 rank,一个是输入的维度 d。若是直接说多头,可能大家想到的都是直接把 d 拆开,而不是把 rank拆开。那么这两种拆开我们都可以分析:

i) 把 d 拆开的视角 :

一如既往的抽象,熟悉矩阵运算的应该能一眼看明白

图中展示的是 d拆分2 个 d/2 的 case,为了好理解,我刻意画了矩阵视角。从矩阵运算角度来看,在 d 维度 切分以后,相当于过了两个 A,求和,然后再过两个 B,最后拼接在一起。这三个视角都是等价的。

说实话,要说改进这个,真就没啥好改的。

ii) 把 r 拆开的视角 :

这个视角去看,就挺好的,也比较简介

类似地,也可以将 rank 去拆开。上图展示了将 rank 拆开成两个子块的过程。可以看出,等价于两条支路,每个支路 rank=r/2,最后求和。明显比上面的拆分 d 的方法更优雅。

在这个视角下,一个很简单的改进,就呼之欲出了:

思路很简单的,其实就是将中间的平行支路扭在一起,从公式的角度来看,从A1B1+A2B2 变成了 (A1+A2)(B1+B2)=A1B1+A2B2+A1B2+A2B1.

这么来,相当于多了两项。暂且称这个为扭麻花方案吧。

阶段性结果,但还不够

有了上面的分析,那么就开始做实验了:

微调 LLaMA3做 commonsense reasoning,发现还是有提高的。

不过,这么做还有个问题,那就是 代码效率其实不高。划几条并行的线然后扭个麻花很简单,但是实现起来得看怎么去实现。我初始化了两个 expert 依次去 forward,因此计算效率不高。当然,也可以学习 MHA 的代码,先整个 infer,然后再拆分向量(相当于 A1和A2两个线性层拼在一起 forward,得到结果后再将向量拆开)。

这就启发了另外一个思考,也就是说,这一通操作有很多的线性层的拆分与合并操作,我们之前的分析都是从 linear 层的拆分合并去考虑的,没有考虑向量的拆分合并操作。向量角度等价于:

核心在于中间的 r 向量进行一系列操作(切分,求和,复制)

之前提到的扭麻花操作,等价于中间的 r维度的向量,拆分,逐位相加成一半长度,然后复制,再拼接,获得最终的r'。从这个视角去看,这种多 expert 的扭麻花本质就是在 r 维的向量上加一套组合拳。

混合矩阵的引入

既然是加一套组合拳,这个组合拳 (r维度的向量,拆分,逐位相加成一半长度,然后复制,再拼接)用矩阵来看,是什么呢?

一番分析下来,不难得到相当于中间加了一个固定的蝴蝶矩阵因子(关于蝴蝶矩阵因子,可以参考:https://weld.stanford.edu/2019/06/13/butterfly/ )。

既然如此,那么有没有可能模仿 Tri Dao 的做法, 引入一堆蝴蝶矩阵因子?想想还是没啥必要,因为lora 本身计算量不大,无需这样的拆分,其次就是延迟可能变大很多 (此外,调研发现,蝴蝶矩阵序列在 OFT 系列里面是有应用的,也就是 BOFT)。

不往蝴蝶矩阵序列走,另外一个直观的想法就是把这个矩阵升级为可学习的矩阵了。我在论文中把这个矩阵称为 Mixer 矩阵,那么:

原始的 LoRA 相当于使用固定的单位矩阵 做 Mixer,中间的扭麻花方案相当于插入固定的蝴蝶因子矩阵做 Mixer,论文里升级为可学习的 Mixer,且矩阵全部元素可学习,也就是所提出的MoSLoRA方法。

注1:这种形式和 AdaLoRA 还是蛮像的,不过 AdaLoRA 中间是一个 SVD 分解的特征值,且前后矩阵都加上了正交化约束。注2:我在写论文的时候,发现了 Arxiv 有个优秀的同期工作 FLoRA: Low-Rank Core Space for N-dimension,他们的论文是从 Tucker 分解的角度去切入的,思路很巧妙,也很优雅,感兴趣的也可以看看他们文章和解读。

回到MoE的视角

回到 MoE 的视角去看,也就是回到论文最开始的图:

我们可以简单地将 Mixer 理解为 MoE 的 Gate 生成的 weight,此外这个 Gate有几个特性:

这个 weight 和输入无关,进而确保可合并性

这个 weight 是稠密的,意思是所有的 expert 都用上,而不是 MoE 的那种选取 top-k

原始的 vanilla LoRA 可以看作是 这个 Mixer 矩阵固定为单位矩阵。

看到这,还可以看明白另外一件事,也就是:

【多个并行的LoRA分支 选 top-k个输出 最后求和】 这种常规 LoRA+MoE 设计,本质上相当于 Mixer 具备:i)每行都是同一个元素 ii)部分行全行为 0 iii) 非 0 行的元素由输入来确定 iv) 不可合并 这些性质或者特点。

后记

写到这里,其实也把整个思维的推进过程都说清楚了。当然,论文不可能这么写,太冗长且难以理解。知乎上尚且没几个人有耐心看完,更别说审稿人了。不过整个的思考过程还是收获很多的,可能一个东西刚开始想的时候复杂,换个角度以后,竟然会如此简单。

2024/07/06 补充证明

这点也正如@dt3t的评论,直觉上来说,中间插一个 W,如果把 AW 合并看作 A',那岂不是和直接学 A‘B 效果是一样的?

其实,并不是一回事,就算是初始化等价,不代表后续优化的路径是一致的。正如重参数化,虽然看起来是等价的,但是学的结果就是不一样。这个角度去看,Mixer 也可以看作是重参数化分支的形式:

51c自动驾驶~合集26_自动驾驶_24

其中 I 是固定的不学习的矩阵。这样就相当于原始 LoRA的旁边加了一个并行分支,和 RegVGG等重参数化一致了。

当然,这里也给出一个【后续优化的路径是不一致的】的简单证明:

https://github.com/wutaiqiang/MoSLoRA/blob/main/MoSLoRA_proof.pdf

也可以直接看图:

只有当 W 是固定的正交矩阵 ,才是等价的,不然就算初始化一致,优化过程也会有差异。

在 MoSLoRA 中,W 是可学习的,且我们分析了初始化对结果的影响。