
DriveGPT:毫末将「生成式预训练大模型」用于自动驾驶
自2022年11月底上线后,这个AI聊天机器人在5天内用户超百万、2个月实现月活用户过亿,成为史上增长最快的应用。
人们关于ChatGPT的分享和讨论像病毒一样在互联网上扩散,参与者几乎涵盖所有的行业;今年1月,微软宣布将在数年内向OpenAI(ChatGPT的拥有者)追加数十亿美元投资(一说为100亿美元);而在太平洋彼岸的中国,短时间内掀起的通用大模型创业热潮当中,出现了王慧文、王小川、李开复这样的名字。
ChatGPT的成功和出圈,最直接原因是相比之前的AI对话机器人,它展现出了提升显著的“像人一样对话”的能力。在这背后,是因为OpenAI团队过去几年对大模型、预训练(无监督式学习)和RLHF(基于人类反馈的强化学习)的坚持,使得生成式语言模型取得了超出预期的进步。
在自动驾驶领域,对于同样在与大模型、预训练、RLHF死磕的毫末智行而言,ChatGPT提供了很好的参考。
4月11日,在该公司的第八届AI DAY上,毫末发布了自动驾驶界的首个生成式预训练大模型——DriveGPT雪湖·海若。
毫末智行董事长张凯透露,DriveGPT雪湖·海若已完成基于4000万公里驾驶数据的训练,参数规模达1200亿。
毫末CEO顾维灏则表示,DriveGPT将重塑汽车智能化技术路线。
一、GPT能为自动驾驶带来什么提升?
GPT的全称是「生成式预训练Transformer」(Generative Pre-trained Transformer),它也是2017年谷歌团队提出的Transformer模型,被用于自然语言处理领域的成果之一。
GPT运行的数学原理,本质上是做文字接龙——根据输入的前序文本,模型会输出可能出现的下一个字的几率分布,再从中取样出几率较高的字。如此循环往复,直到完整地写完下文。
图片来源:台大李宏毅教授课程《ChatGPT原理剖析》
以“文字接龙”为数学原理的生成式语言模型并非新鲜事物,OpenAI在2018-2020年开发出的GPT、GPT-2、GPT-3均属此类,还衍生出了CodeGPT(2021年7月)、WebGPT(2021年12月)和DALL-E(2021年5月)等下游应用。
ChatGPT是基于GPT-3开发的对话式AI应用,因此人们将其背后的模型称为GPT-3.5。而在今年3月14日,GPT-4也已面世。
作为ChatGPT的基础模型,GPT-3同样可以生成文本,但它在对话中的表现并不好。OpenAI首席科学家Ilya Sutskever表示,从GPT-3到ChatGPT,微调和RLHF的过程起到了关键作用。
基础模型GPT-3是预训练(无监督式学习)的结果,预训练阶段的特点是大模型+海量数据——GPT-3的模型参数达到1750亿个,用于预训练的数据规模达570GB。
神奇的是,相比预训练,ChatGPT在微调阶段使用的人工标注数据并不多(大约仅需数万条带有标注的答案)。
这是因为,经过预训练,GPT-3本身已具备了生成海量文本内容的能力,只因缺乏人类常识,不知道哪些生成的内容是人类想要的。通过用人工标注的答案进行“微调”,模型会调高那些最符合人类喜好的答案的几率,从而输出更接近人类的回答。
在RLHF阶段,OpenAI用来自人类的反馈训练出一个奖励函数(这里无需人打出具体的分值,只需给出“好”或“不好”的反馈),再用这个奖励函数创建出对模型进行强化学习所用的数据。经强化学习之后的ChatGPT,效果好得出奇,甚至超出了OpenAI团队自己的预期。
虽然从数学原理上看,ChatGPT与GPT-3并没有本质的不同,但实用效果上,ChatGPT生成的对话内容的确具备了极高的拟人性,甚至看上去已经具备了类似人类推理的能力(尽管,包括一些AI专家在内的人群对此并不认同)。
让我们暂且撇下“ChatGPT是否具备了初级的智能”这一问题——至少从效果上看,OpenAI对ChatGPT的开发,证明了通过「大模型预训练-微调-RLHF」这条路线,是能够打造出像人类一样说话的AI机器人的。
毫末认为,依照同一思路打造的DriveGPT,也能够像人类一样开车。
具体的做法是,毫末首先将GPT的思路用于自动驾驶的“认知”环节,即对场景和目标轨迹的预测,从而支持驾驶决策和路径规划。
与ChatGPT不断求解下一个token(在中文语境里,token=汉字)的概率类似,DriveGPT也是在不断求解下一个token的概率——这里的token,由文字换成了驾驶场景中的一个组成部分。
ChatGPT的输入是未写完的句子,DriveGPT的输入是某个场景下前序几秒内的驾驶环境。
ChatGPT的输出是续写完成的句子,DriveGPT的输出是该场景下后序几秒内的驾驶环境。
DriveGPT将一连串的token拼接在一起,就组成了完整的驾驶场景时间序列,包括在序列中任何一个时刻,周围交通环境的状态、其他交通参与者的状态以及自车的状态。
不同概率的token引向不同场景序列,相当于许多个可能在未来出现的平行宇宙。
在这些平行宇宙中,因为每个环节都有相应的概率分布,就能够显性地计算出自车的每一个驾驶行为,从概率的角度来说,在安全、舒适、高效等维度分别表现如何。
在具体的算法设计层面,毫末将驾驶场景的token化表达称为Drive Language,对整个BEV空间做网格式的离散化,再用Drive Language来描述每个网格里的情况。如此一来,每个token中不同词表的组合,就对应了不同障碍物、车道线、道路结构的分布。
截至目前,毫末从真实驾驶场景库中提取的token序列,规模达到50万个。
有了这些token,毫末用人类驾驶的数据对模型进行预训练。经过预训练后,模型就可以根据输入的前序token,自动生成后序所有可能的token。
在RLHF环节,毫末主要使用两个数据来源:一是接管,接管意味着用户认为系统的驾驶行为不好,因此是一个负样本;二是用户自己的开车行为。
经过用这两种来源的人类反馈进行强化学习,对预训练中得到的无数个“平行宇宙”进行收敛,再用一个反馈模型对这些token进行排序打分,把反馈模型认为好的结果排上来、差的结果排下去,最后把参数更新到一个备份模型(Active Model)中。
与ChatGPT相似地,经过RLHF,DriveGPT生成的效果也出现了明显的提升。
如果将毫末的方案与特斯拉的决策规划模型“交互搜索”(Interaction Search)做对比,不同点在于,特斯拉交互搜索分为三个步骤:树搜索、神经网络轨迹规划和轨迹打分,而毫末DriveGPT则是用生成式方法,将预测、规划两个动作合而为一。
先猜、再应对的方法,类似于下棋时的博弈;而同时预测整个环境变化的方法,则是一视同仁地将自车看作场景中的一个参与者,同时预测所有参与者的轨迹。
这是一个十分有趣且潜力巨大的方法。毫末表示,在实测中,DriveGPT的决策规划在对Hardcase的处理上提升了48%。
当然,DriveGPT并非只是针对认知环节的解决方案,其最终目标是把感知、认知、决策、规划等环节都纳入进来,形成端到端式的自动驾驶大模型。关于这一点,本文将在第三部分进一步讨论。
二、DriveGPT的“周边工程”准备
过去数月,为支撑DriveGPT的搭建,毫末还在视觉感知、大模型训练等方面做了很多工作。
感知是一切驾驶动作的依据。对当前主要负责认知环节的DriveGPT而言,毫末MANA视觉的感知结果,决定了输入端的数据质量。
毫末智行CEO顾维灏介绍称,MANA视觉感知系统在过去三个月里主要完成了4个方面的提升:
1.同时识别纹理和结构
毫末认为,所有的感知任务,无论是检测障碍物还是车道线,实际上关注的都是两件事情:要么关注三维结构,要么关注每种材质的纹理分布。
通过对视觉自监督大模型进行扩展,毫末把预测环境的三维结构、速度场和纹理分布融合到了一个训练目标里面。
目前,毫末已在这个大模型中灌入了400万个Clips的数据——每个Clip为100个bundle,每个bundle则包括6-10张图像不等,因此相当于数十亿帧的数据规模。
优化后的模型在车端感知任务上,性能提升了大约20%。
2.用纯视觉取代超声波雷达
顾维灏表示,单目视觉测量是最难的视觉任务之一,特别是近距离视觉测量。通常使用的鱼眼相机,因畸变严重和遮挡、截断等因素,对距离判断的难度很大。
为解决这一问题,毫末将鱼眼相机引入到视觉BEV框架中,并在BEV空间里对障碍物的轮廓边界进行识别和测量。
目前,毫末使用鱼眼可做到在15米范围内测量精度30cm、2米范围内精度10cm——这样的精度可支持毫末在行泊一体方案中用视觉取代超声波雷达,降低整体方案的成本。
3.通过NeRF三维重建完成自动标注
在用NeRF技术做周围环境的三维重建方面,毫末首先提升了NeRF最终合成的效果,不仅能准确地重建三维结构,还能以很高的精度恢复路面的纹理。这样做的好处是,能够更准确地了解整个场景、掌控其中所有的真值,从而就能根据需要做各种各样的标注。
毫末将(不依赖激光雷达的)视觉感知结果转化为可用于BEV模型训练的带有3D标注的真值数据,场景重建的误差小于10cm,同时还能对场景中的动态物体做出肉眼难辨的重建和渲染。
针对单趟重建因遮挡、截断等造成的数据不足,毫末通过多趟重建将更多观测视角的数据对齐、融合在一起,可进一步提升场景还原度,重建效率提升5倍。
4.在三维重建(静态)中加入动态障碍物编辑,模拟更多Corner Case
在完成静态环境重建的场景中,毫末在上一届AI DAY上展示了修改光照、天气等全局性信息的能力,此次又增加了额外添加虚拟物体的能力。
例如在空旷的街道上加入无人配送车“小魔驼”,并让其做出想要的动作,从而用更低成本仿真出各种各样的Corner Case。
以上提到的NeRF重建、摄像头代替超声波,以及用高真实度的仿真创造Corner Case,对自动驾驶从业者都不陌生——它们与特斯拉采用的技术非常相似。
在算力和模型的训练方面,毫末主要介绍了3个方面的进展:
1.训练稳定性优化:训练数月0故障
大模型的训练非常复杂。
毫末DriveGPT参数量达到1200亿,并且还计划尝试参数量更大的模型。训练如此规模的模型,通常需要几百、上千卡,训练几个月的时间。
大规模训练的工程稳定性问题至关重要,当训练过程中发生一些波动,一旦造成整个系统崩溃,就会浪费前期投入的大量资源。
毫末通过与火山引擎合作,针对异常大规模模型的训练,做了很多硬件异常的处理和捕获,增加了包括Monitor&Alert、Tracer&Log、Profile&Checkpoint的训练保障框架。
如此一来,当集群中的某些卡、某些路由器出现异常时,能够在分钟级内进行捕获、旁路、维修,从而不会引起整个系统的停摆。
毫末表示,当前可以做到千卡任务连续训练数月,不出现任何非正常中断。
2.训练资源的弹性调度
在大模型训练中,数据的规模和质量直接决定训练的成效。为了最大限度地从量产车真实数据中搜集语料,毫末采用基于量产数据实时回传的增量学习方式。
由于不同时段回传的数据量差异很大,需要解决对算力资源的弹性调度,以及整个数据流的流转问题。
例如,当回传数据量大、训练所用的卡数变多时,就会挤占其他任务所用的算力;而当没有实时数据回传时,需要把这些算力释放出来,保证利用率。
顾维灏介绍称,毫末的集群计算资源利用率达到95%。
3.底层算子优化
由于计算量巨大且仍在不断增加,为应对高昂的算力成本,提升计算效率是一项持续开展的任务。
在Transformer的大矩阵计算上,毫末通过对内外循环的数据拆分,尽量保持数据在SRAM中从而提升计算效率。
在传统训练框架中,例如PyTorch,算子流程很长,包括Attention、LayerNorm、Dropout、Softmax等多个环节,而毫末通过引入火山引擎提供的Logo核心算子库,端到端的吞吐提升了84.2%。
今年年初,毫末公布了其与火山共同打造的MANA OASIS智算中心,算力达到67亿亿次/秒,存储带宽2T/秒,通信带宽800G/秒。
虽然计算硬件处于国内领先水平,但随着数据规模、集群规模、训练时间的数量级增长,计算成本仍是毫末在未来很长时间里需要面对的挑战。
在算法、数据、集群工程等各个层面反复优化,不断提升训练效率,是每个自动驾驶公司的必修课。
三、生成式模型可能带来的跨越
毫末提出,ChatGPT的最终目标是端到端大模型,这意味着要将目标检测跟踪、地图拓扑、轨迹预测、可行驶区域预测、决策规划等自动驾驶中的不同任务,都纳入到同一个深度神经网络框架中。
深度神经网络正在向越来越多的自动驾驶模块渗透,特别是感知和预测部分,很可能会首先100%替换为深度神经网络。
在规控部分,则更多采用人为规则。
端到端是一个非常诱人的概念,也是很多实践者努力的方向。但在当下,端到端自动驾驶大模型仍然停留在论文阶段。
人们对端到端的可行性的质疑,一大理由是神经网络的不可解释性。
不久前的3月31日,小鹏汽车自动驾驶副总裁吴新宙就表示,小鹏智能驾驶的预测模块会以深度学习为基础,但是基于规则的运动规划、运动控制,一定会长期存在,因为可解释性是非常重要的。对于能用数学解决的问题,小鹏暂时不会用深度学习网络去解决。
关于驾驶策略的可解释性问题,毫末也一直在思考和探索。
从2022年9月初次提出“自动驾驶3.0”这一概念时,毫末就提出在数据驱动的3.0时代,自动驾驶的认知方向,应是通过大量人驾数据,抽取可解释的场景化驾驶常识。
基于这一观点,毫末早期先是设计了自动驾驶场景库,其中收集了几十万个细分场景,每一个都是用自然语言描述的,可理解、可解释。
基于此,毫末对一段段分割开的驾驶数据做标注,标明这段驾驶过程属于哪一类场景。
到了做大模型研发的阶段,毫末的团队发现,如果把一连串的场景串起来,其实就组成了一个完整的可解释的决策过程。
受ChatGPT的启发,毫末发现可以利用生成式模型本身在文本生成方面的能力,输出决策逻辑链(CoT,Chain of Thoughts),从而用自动生成的自然语言来解释驾驶决策。
在CoT的生成过程中,毫末利用同样与ChatGPT相似的提示词(Prompt)技术,在输入端给模型一些提示,诸如“我要去……”、“快一点”、“慢一点”,帮助模型学习不同场景的推理关系,使其朝着人期望的方向生成“平行宇宙”。
在生成结果的同时,模型也生成了与之对应的CoT——在产品端,未来毫末还可将这些CoT与车机语音系统结合,根据用户的喜好,提供“驾驶决策语音解释”的功能。
毫末用生成式模型解决自动驾驶问题的思路,或将为业界开启巨大的想象空间——关于这一点,也可从OpenAI首席技术官Ilya Sutskever的观点里找到端倪。
今年3月,Sutskever在接受Lunar Society访谈时说道:
“我对‘下一个对token的预测不能超越人类表现’的说法提出质疑。从表面来看,如果你只是学会了模仿,预测人类会做什么,似乎意味着你只能复制人类。但我有一个反驳的论点来说明为什么不是这样——如果你的基础神经网络足够聪明,你只需要问它:一个具有伟大洞察力、拥有智慧和能力的人会做什么?也许这样的人并不存在,但神经网络很有可能会推断出这样的人具有哪些特征、如何行动。”
表面上看,生成式模型只是在学习文本中的统计相关性,但实际上通过统计相关性,它是在对知识进行极致的压缩,从而建立一个世界模型。
完成驾驶任务,不正是“建立一个世界模型,并在其中安全、高效地行驶”吗?
无独有偶,4月9日,特斯拉CEO伊隆·马斯克在推特上表示,在处理视觉感知上,Diffusion(一种生成式模型,通过文字提示生成图像)要比Transformer的计算效率更高。
在自动驾驶感知技术逐渐趋同的背景下,在认知、规划等模块还有很大的探索空间,头部玩家们更具多样性的探索,将会促进技术更快进步。
结束语
2023年,中国的自动驾驶竞赛进入深水区。
头部玩家们一头扎进“难度百倍于高速场景”的城区,在产品层面研发可用、好用的城市NOA的同时,也在将技术钻研的触角伸向更深、更广的领域。
毫末基于GPT技术的探索,不仅将为其城市NOH的体验提升提供助益,还可能衍生出服务于业界的能力和新的商业模式——毫末表示,将逐渐向业界开放DriveGPT的能力,其中首期4月11日即刻开放单帧自动标注服务,可大幅降低标注成本,今后还将陆续开放驾驶行为验证、困难场景脱困等功能。
基于来自技术的自信,毫末重申了2024年的目标:城市NOH落地100城。
文章转载自公众号:建约车评
