10月的最后一天,Waymo发布了一篇不足20页的论文,EMMA,其全称是:End-to-End Multimodal Model for Autonomous Driving,端到端多模态自动驾驶,是Waymo基于Google的大语言模型Gemini发布的自己的端到端模型。论文不长,但却引起了科技圈和自动驾驶圈不小的讨论。
在当下端到端领域群雄争霸的局面里,以语言模型为底座、从而实现多模态视觉输入的,只有特斯拉的FSD和Waymo的EMMA两家,这意味着它们的所有非传感输入(如导航指令、自车状态)和输出(如轨迹、3D位置)都可以表示为自然语言文本,从而最大限度地利用预训练的大语言模型里的世界知识。这也因此带来两个好处:1)模型可以自监督,像预训练LLM一样让模型自己从输入里获得人类自己忽略或不易捕捉的规则;2)泛化能力很强,自监督的EMMA比使用大量中间感知和人类标签的DriveVLM-Dual的L2平均误差降低了6.4%,比BEV-Planner的L2的平均误差降低了17.1%。效果相当惊人。
特斯拉的算法没有公开,我们无从得知它的技术细节,但Waymo的EMMA公开了论文,能让我们知道它到底是如何做的,以及如何把一个大语言模型变成专门的自动驾驶模型,且,EMMA的实验数据显示,训练后的大语言模型甚至有超越专业自动驾驶模型的可能性。有几个数据证明了这一点:
1)EMMA+在5秒内的平均误差距离ADS超越了Waymo此前专门训练的车辆轨道预测模型MotionLM和Wayformer,尤其短时间窗口(1s,3s,5s)上性能优越,这对自动驾驶的紧急情况非常重要;
2)自监督方面的改善,如前文提到的比人类标签的平均L2误差降低6.4%,比BEV-Planner的L2的平均误差降低了17.1%;且,在加入COT(链式思考)后,整个模型的输出性能又提高了6.7%;
3)3D检测方面,EMMA+对车辆的检测,相较于最先进的方法(如BEVFormer)在相同精度下的召回率提高5.5%,总检测精度提升16.3%,非常厉害;对行人的检测表现则与专业模型MV-FCOS3D++的表现相当,显示出大语言模型在训练后超越专业模型的能力;
4)场景理解里,EMMA模型对多任务进行整合预训练,模型性能显著提高,展现出单一模型整合多任务后表现增强的能力;
5)从实验的决策效果来看,使用统一的通用模型训练多个任务,效果使用优于单任务训练的专门模型;且,实验证明了多模态方法的潜力,通过适当的预训练和丰富的数据资源,可以广泛应用于各种复杂的自动驾驶场景,整体模型质量能有显著提升。
我们从1)大语言模型变成自动驾驶专业模型的原理和黑盒问题的解决,2)大语言模型训练后的具体效果到底怎么样,两个方面出发,梳理EMMA的这篇论文,以及为国内的智能驾驶从业者带来另一种视角,即,用大语言模型一步就位地实现one-model的端到端智能驾驶的可能性。
一、基本理论和黑盒解决
EMMA的底模理论非常简洁,基本公式就是输入信息(T,Text)和视觉(V,Vision,视频和图像),用Gemini Nano的模型,输出结果O。
稍微具体一点,可以分拆:
感知层面:它是纯视觉,没有雷达之类的输入;
输入层面:是多维度的信息,包括多维指令,来自比如Google地图的导航指令,向左,向右等,具象化可以认为是,“请在前方第二个匝道右转出匝道”这种指令;
第三:是关于此车的既往历史路线和其它数据。
所有的这些输入,都涵盖在信息和视觉这两类信息里,如果遇到视频信息,会拆帧用图片形式来embedding。
接下来就是信息处理模型,EMMA用的是Gemini Nano,EMMA选这个模型的核心原因是它不开源,所以可以比较多地堆料,能做深度蒸馏,同时Gemini本身泛化能力高,推理能力强,也很适合做底模。
O就是把T,V输入给G以后生成的输出。因为是语言模型,所以O是一个序列。
概率分布是这样:
在实际驾驶场景里,这个公式会需要细化一下:
V是所有视觉的东西,通常来说会回塞一个BEV的视角,因为要感知周边的所有环境。
T也要分几个维度:
第一个维度是T_intent,也就是前面提到的高维指令,如左转、右转;
第二个维度是T_ego,历史自车状态。
1)这些状态表示为BEV空间中的一组路径点坐标 (x_t, y_t),用于 -T_h到 T_h ,这一段时间的时间戳。这些坐标在语言模型里表示为纯文本,无需特殊的标记。
2)这一历史状态也可以拓展到更高阶的自车状态,比如速度和加速度。
未来轨迹就会变成:
于是,整体公式就可以细化成:
最后输出的就是车的未来轨迹,O_trajectory,可以直接命令车辆行驶和应对突发情况,而基于训练数据,这个O是序列,所以可以涵盖预计轨迹O’_trajectory和真实轨迹O_trajectory,二者求个Lost,损失函数也就出现了,可以再基于损失函数调整。
这就是EMMA里提供的MLLM作为one-model端到端的基本训练,非常简单,但很有力。
更重要的是,基于MLLM大模型做底模,这个训练是自监督的。对比语言模型的pretrain,二者都没什么人类输入的干扰。比如语言模型,next-token的predicate是一句话的下一个单词,而EMMA的next-token就是基于目前已有信息,预测后面车的位置,(x_t, y_t),多个位置就形成一个轨迹trajectory,就可以了。
这样的好处和训练LLM是相似的,就是尽量让模型去寻找隐空间里、人类不容易捕捉到的规则。从这个角度来看,MLLM进入到端到端有天然的优势。
当然也并不是所有的任务都适合拿自监督来训练,比如3D物体检测,道路图评估和场景理解,依然需要人工标注的数据进行,和一般的supervior的tunning没有太大区别。
另外一个点是:大众普遍反应大模型是黑盒,尤其是当大模型进入实际应用场景(自动驾驶),就需要强烈的决策可解释性。EMMA用prompt让LLM输出它的COT(Chain of Thought,链式思维),把链式思考推理引入到端到端规划器的轨迹生成中,通过要求模型表述其决策依据O-rationale,同时预测最终的未来轨迹路径点O_trajectory。
然后,EMMA会基于四个层次,由粗到细展开信息,并给出决策。包括:场景描述、关键物体、关键物体的行为描述,以及高层决策驾驶。
举个例子:今日天气晴好,道路是没有分隔的四车道,中间有一个人行横道,道路两侧停有汽车(场景)。行人位置在[9.01, 3.22],车辆位置在 [11.58, 0.35](关键物体,识别其精准3D及鸟瞰BEV坐标)。行人望向马路,可能准备过马路,车在我前方行驶,未来轨迹表明将继续直行(关键物体行为描述)。决策:应该保持当前低速。
在这个过程里,驾驶依据说明是使用自动化工具生成,无需任何额外的人类标签,确保数据生成流程的可拓展性。具体来说,EMMA利用现成的感知和预测专家模型来识别关键代理物体,然后使用 Gemini 模型结合精心设计的视觉和文本提示生成全面的场景和代理行为描述。高层驾驶决策通过一个启发式算法计算,该算法分析自车的地面真值轨迹。
在融入了COT之后,EMMA整个系统的决策能力会增强,解释能力也会增加,整个自动驾驶的过程可以往更透明可信的方向走,而且可以逐渐优化,黑盒问题可以逐渐得到解决。
二、实际驾驶中的感知、规划效果怎么样?
在自动驾驶的端到端里,运动规划是最终的核心任务,但全面的自动驾驶系统需要额外的功能,比如感知3D世界,识别周围的物体、道路图和交通情况等。现在市面上大部分两段的端到端的模型,是把感知、规划的分开,EMMA用MLLM模型将之收拢在一起,还是最早的底模基础公式,one-model,对细节进行微调,来实现对真实世界的感知的能力。
有三个公式:
1)3D空间检测:
基本原理是把3D边框化,用文字信息输入,包括长、宽、高、角度、类别信息,总和之后,将之表述为检测场景中的所有3D场景。
3D边框化:
公式表达:
2)路径图估计:
主要原理是把车道信息转换为有序路径点集并编译为文本,模型可以更精确地捕捉道路的方向和曲率,以及理解和解释复杂的道路结构。公式表达如下:
步骤参考:
3)场景理解:
场景理解很重要的一个场景是遭遇阻塞,输入周围图像(V)、所有在道路前方的物体(T_road_user),以及文本提示,前面是否堵塞T_temporary_blockage,然后由Gemini Nano输出结果。公式如下:
公式确定后,就是训练环节。从前面的公式可以看到,整个模型输入和感知的信息都进入了一个统一的公式,这也是one-model的好处,能用单个模型同时训练多个任务,同时在推理时,通过简单变化任务提示T_task实现任务特定的预测,整个训练过程既简单又灵活。
训练的基本方法是:为了防止小数据集被大数据集冲没,每种datasets在训练的时候有合适的ephco和数据集比例的乘积就可以。
EMMA主要训练了两个数据集,WOMD和nuScenes dataset。WOMD有超过10万个真实世界的驾驶场景,并将之分为100万个示例,数据集包括详细的地图特征,交通信号、车道特性,自车的速度、加速度等。nuScenes dataset则是提供了一个综合的自动驾驶传感器套件,1000个场景,包括了6个摄像头、5个雷达和1个激光雷达的360°视野覆盖。
直接说结论。
WOMD数据集:
1.在WOMD数据集上,EMMA的模型表现和MotionLM基线相似,采用Gemini预训练权重。但是,当Waymo用内部数据集训练时(称为EMMA+)模型在未来5s内的平均误差距离超越了MotionLM和Wayformer,特别是在短时间窗口(1s, 3s, 5s)上性能优越。短窗口敏感对自动驾驶非常重要,尤其是应对一些突发情况的时候。
2.不过,在较长时间窗口(8s),EMMA的表现就稍逊于Wayformer,这是因为EMMA只使用相机作为传感器,而Wayformer结合了激光雷达和雷达,提升了深度感知能力。
3.且,MotionLM和EMMA有输入上的差异。MotionLM的输入主要来自于专门的外部感知模式生成,同时看重过去和未来的观测,并经过大量精心制作的人类标签训练。相比之下,EMMA仅使用相机图像和自车历史作为输入,无需任何标签和人类模型(除了Gemini的预训练权重),可见VLM天生的泛化优势。
4.消融研究后,结果证明:使用统一的通用模型训练多个任务,始终优于单任务训练的专门模型。(端到端的最大优势,少了不同模型调用损失,少由于垃圾policy堆砌的影响)
nuScenes dataset
1. nuScenes dataset上的实验结果更令人瞩目:自监督的EMMA在nuScenes上的规划取得了最先进的结果,超越了之前所有的监督(带中间感知标签和/或人类标签)和自监督(无额外标签)方法。在相同的自监督设置下,EMMA的平均L2误差比之前的BEV-Planner 降低了17.1%;即使与使用大量中间感知和人类标签的DriveVLM-Dual 相比,自监督EMMA仍然将平均L2误差降低了6.4%。这是相当厉害的改善。
2. 采用链式思维推理公式之后,整个输出结果实现了6.7%的性能改进。
3. 消融研究后,驾驶元决策和关键物体识别分别提升了3.0%和1.5%的性能。
上面是规划方面,而在感知方面,EMMA的表现效果则甚至超越了专家模型。
3D检测
用包含大量交通场景及其3D标注、被广泛用于自动驾驶研究的WOD(Waymo Open Dataset)数据集,做车辆、行人,以及不同距离范围内的性能测试,数据都非常亮眼:
车辆检测:EMMA+相较于最先进的方法(如BEVFormer),在相同精度下的召回率提高5.5%,总检测精度提升16.3%。(这非常厉害了,尤其EMMA+还不算专家模型)
行人检测:EMMA+ 在行人检测上的表现与 MV-FCOS3D++ 相当。
不同距离范围内的性能:在近距离范围内(例如交通繁忙的都市区域),EMMA+ 的表现尤为出色。(这点更重要了)
关键点:
1)EMMA+展示了多模态方法在丰富数据和大型模型下的强大性能,甚至超越了专门的专家模型。
2)EMMA+ 的出色表现证明了多模态方法的潜力。通过适当的预训练和丰富的数据资源,这种方法可以广泛应用于各种复杂的自动驾驶场景,提升系统的整体检测质量。
道路图估计
道路图估计一直以来都是一个复杂课题,因为道路图多变,比较难能用一种或几种方法就覆盖万象的道路图情况。是智能驾驶的专家系统也需要深度思考的问题。EMMA论文的贡献是给出了比较好的对比消融实验和哪些指标能更好地提升模型的能力。
道路图估计主要是需要预测一组无序的多段线,每个线段表示一系列路径点。有两个指标来衡量道路图预测的质量:1)车道级别的精度和召回率:预测车道段线和真实车道段线平均距离在1米以内;2)像素级别的精度和召回率:多段线被栅格化1米分辨率的BEV网络,将其看作图像,基于逐像素匹配计算精度和召回率。
EMMA在设计上做了提升,让模型达到甚至超越了专业模型的效果。
结论:
1)动态采样:调整多段线的稀疏控制点,以前的普遍方法是每端点2个,外加抓取曲率所需的固定数量的中间点。EMMA发现:更好的方法是根据曲率和长度动态调整每个车道的点数量,保持其密度一致而非数量一致,车道的结构细节捕捉能带来约40%~90%的性能提升;
2)路径点间隔调整:用上述方法防止直接转换点带来的偏差,提升25%~60%的预测质量;
3)随机排序:使用终点距离自车最近的顺序,将车道目标划分为多个区域,动态打乱提高模型在不同车道配置下的健壮性和覆盖范围;
4)填充操作:额外使用“无效”标记以明确表示多段线未填充结束点提高了模型的预测可靠性;
5)标点符号和冗余标记:使用语言样式的结构和标点符号提高分组目标的效果显著。此外,明确标记“有效”或“无效”标记点可以提升车道级别指标约 10%。
场景理解
就是在场景理解板块,EMMA用了单一模型进行多任务的预训练,发现模型质量显著提高,表明即使是单一的大语言模型,在经过多任务整合的预训练后,也会增强表现。One-model的潜力可能比想象中更大。
具体的实验内容,是在临时阻塞检测的任务上进行场景理解研究,基于内部数据集,向人类展示图片并判断车道是否暂时被阻塞,以此建立基准评价,然后交由模型回答。其中,如果模型回答“不确定”,则视为不正确的基线,并将之进行过滤比较。
最初的实验后,模型经过微调后能对所有问题回答确切答案(是/否)。如果仅使用临时阻塞数据对模型进行微调,虽然性能略低于基线比较,但在屏蔽过滤后表现不足。而也就是为了提高模型性能,EMMA的研究人员引入了整合训练。
最初数据:直接微调
仅使用临时阻塞数据进行微调,精度为61.5%;
第一轮尝试:朴素混合
将场景理解任务和道路图估计任务联合训练,精度达到67.0%,但并未改善性能;
第二轮尝试:短期预训练混合方法
现在道路图估计的任务上进行预训练,然后在这两个任务上进行微调,精度达到81.6%,性能提升;
持续训练:长期预训练混合方法
更长时间预训练后再进行微调,精度达到82.5%,质量显著提高,显示出模型能更好整合多任务以增强表现。
在论文的后面部分,EMMA展示了它的一些实验结果。有一个实验很值得一提:车辆遇到一只松鼠,马上减速、向旁边避让,但是,在EMMA的增量数据集里,研究员并没有训练松鼠,这让研究员对EMMA的泛化能力特别惊喜。
业内人分析,可能有两种情况形成这一结果:
1)松鼠不在增量预训练的数据集里,但可能本身在Gemini Nano的原始模型里,这个可能性比较大;
2)松鼠被识别为object而促使车辆避障。
但无论是哪一种,VLM都证明它比传统基于supervisor train的模型要有更大的能力和想象空间。
尾声
业内一直以来的共识是:端到端方案切中的其实是希望这种架构能够解决自动驾驶时在决策和规划领域一些束手无策的复杂case——这需要模型或网络本身能生成极佳的推理能力,而这种能力和GPT3及其后继的大模型涌现出来的能力相似。只是,在此之前,很多人认为大模型本身存在黑盒问题,且其广泛应用的模型会稀释它在自动驾驶这一专业领域的决策可靠性。但EMMA的实验显示一切皆有可能。
事实上,当2023年5月马斯克提出“特斯拉FSD v12是一个端到端的AI”之后,业内都在跟进尝试各种端到端的解决方案,并在当下临近一种「涌现时刻」。智己的“一段式端到端的直觉式驾驶大模型”,Waymo的大语言模型生成one model的端到端模型,都是如此。新的变化正在酝酿中,我们会持续关注智驾领域内的前沿技术与信息,为关注智驾的人提供认知与决策的锚点。未来从当下延展。
福利:
免费领取 | 2024智能驾驶产业发展白皮书
end
扫码获取更多精彩