作者 | 王峰 编辑 | 自动驾驶之心
原文链接:https://zhuanlan.zhihu.com/p/699657683
点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
本文只做学术分享,如有侵权,联系删文
从去年chatgpt开始就被好多人问用于自动驾驶的大模型该怎么做,也被业内各种“自动驾驶大模型”刷屏过很多次,但之前其实一直都没想明白什么叫作大模型,到底是参数量大还是数据量大,还是能做很多任务?
似乎都不是。要说是参数量,我加不就完事了,吃显存那就上A100、H100训呗,但传统的模型往往scalability并不好,加到一定数,结果就不涨了,跨卡训练都不需要。
要说是数据量吧,BEV检测这种模型还是挺吃数据量的,因为它相当于要记住 车型 x 姿态 x 位置 x 光照条件 x 天气条件 下所有样本的外观,但我之前主要搞lidar检测的,相当于这里面的光照被消掉了,而位置信息也是原始数据直接提供了,组合数里少了两大项所以也没那么吃数据量,早早就饱和了。就算是BEV检测,听说到达千万级也就饱和了,剩下的就是老生常谈的无尽的corner case,scalability说高也不算很高。至于端到端,老马说到达千万数据之后,模型表现就变得不可思议了,看起来也并不是很高的量级。
要说多任务能力,什么检测、分割、occ、跟踪、预测、规划,如果之前已经有了各自的模块想改成联合训练,似乎也就是同一个backbone上套了各种不同的head,剩下的就是数据怎么准备、这么多任务如何联合训练的事,并不像NLP大模型,同一个head所有任务能都干。而且随着端到端的不断发展,可能除了planning之外的任务也没那么重要,更多的是被当成auxiliary loss,在大模型时代,自动驾驶并不一定需要多任务。
那么还有什么是大模型才具备的能力,而且这个能力恰好能解决自动驾驶的痛点呢?最近看GPT系列文章,尤其是GPT3给了我一定的启发(注意看标题):
Language Models are Few-Shot Learners
arxiv.org/abs/2005.14165
在大模型时代之前,有参数量怼很大的,有数据量怼很大的,有一个backbone上接几十个任务的,但确实没见过in-context learning的能力。in-context learning使得推理时学习成为了可能,而且并不需要很大量的数据就能做到,有时甚至你只给它一个例子,它也能遵循指令。这正好击中了自动驾驶对于corner case的痛点:碰到一个corner case,数据不加到一定数量级,网络往往会把它忽略掉,必须多次采集或者使用仿真生成数据的方式才能让网络学会,这个成本是很高的。
之前自动驾驶解决corner case的手段,要么是增加规则,要么是加较大量(与预训练的海量数据相比并不大)的数据,都比较耗费人力。端到端也不会有任何改善,之前碰到一个问题需要举一反三地增加 规则/优化约束/仿真/摆拍数据,在端到端框架下,也仍然是数据驱动,仍然需要较大量的数据来解决一个问题。
而想想人是怎么做的?人其实只需要看看事故视频,自己就会分析出开车时应该怎么避免,甚至只需要驾校教练骂两句就能意识到自己的错误并纠正,并不需要较大量的数据来进行训练。绝大部分知识在以往的生活中已经学习到了,新的知识只需要看一眼就能自行分析并记住,这就分别对应到了大模型的pre-training和in-context learning两种学习方式。
所以,自动驾驶的大模型,一定要具备的能力就是few-shot乃至one-shot、zero-shot的能力。在碰到corner case时,只需要将回放视频和正确解决思路输入进去作为context,模型就能在下一次遇见时正确地处理,这样corner case库中每个样本只需要一个或少量样例,车上跑的时候通过RAG等手段检索出类似场景加入context就可以了。等类似样例收集足够多了,再在下次训练时加入训练集,也有的样本可能一直收集不够,永远作为corner case库的一部分而不进入训练集。
更进一步说,更遥远的自动驾驶模型有可能具备一定的zero-shot能力,直接输入交规或者一些经验之谈,比如“看到水坑应绕行”这一句话输入进去,模型在遇到水坑时就可以看情况进行绕行。不过这对于现在的技术来说有点过于科幻,具体该如何实施我也没有思路就不谈了。
纵观自动驾驶的发展历史,任何一个自动驾驶公司都有海量的投资,其实所谓的数据量、模型大小都并不是瓶颈,而是早早地就发现了饱和现象,继续投入的收益并不可观才没有scale up。在数据量达到一定量级之后,无穷无尽的corner case才是困住自动驾驶的瓶颈,端到端是找到了一条自动化处理corner case的方式,为解决问题增加了更多可能性,但其维护成本并没有显著降低,反而可能因为依靠数据驱动而需要更多的仿真/摆拍数据。而只有具备了in-context learning能力,做到一条数据解case,才能真正降低corner case的处理成本,推动MPI进一步提高。
最后,希望以后厂家们吹“自动驾驶大模型”的时候,能展示一下in-context learning的能力,不要只是加了加数据量和模型参数量(甚至1B都不到)就管自己叫大模型。
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
网页端官网:www.zdjszx.com② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵