关于大模型和自动驾驶的几个迷思-程序员宅基地

技术标签: 自动驾驶  机器学习  人工智能  

作者 | Naiyan Wang  编辑 | 汽车人

原文链接:https://zhuanlan.zhihu.com/p/642846310

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【大模型】技术交流群

本文只做学术分享,如有侵权,联系删文

23年的AI绕不开的问题就是大模型,最近私下以及在几个workshop上反复和各种同学讨论相关的问题。借这个机会也整理一下几点个人的看法和大家分享讨论~

Q1: 究竟什么是大模型?参数量或计算量大就叫大模型吗?Large Model or Foundation Model?

A1: 其实在讨论所有关于大模型的问题之前,都需要明确这个问题。大模型(Large Model)这个名词其实是一个非常误解的名字,其实更准确的应该是基石模型(Foundation Model)。经常发现和很多人聊了很久,观点针锋相对,最后发现双方根本讨论的不是一个东西。。。就目前而言,我认为的大模型至少要有两个要素:1) 跨任务的通用性 2) 跨域的通用性。参数量和计算量的scale up只是大模型的一个必要而不充分条件。以GPT为代表的NLP大模型,通过prompt来统一了不同任务,也通过利用了基本上所有可用的文本数据将所有NLP问题变成了域内问题。

如果我们以这个标准来讨论,就会发现其实现在很多所谓的大模型,都不能叫做大模型。去讨论这样的模型到底能做什么,边界在哪里自然就是一个没有意义的事情。如果能理解这点,很多所谓的行业大模型本身就会成为一个伪命题,只能叫做通用大模型在垂直行业的一个应用(当然这件事情本身很多时候也是有商业价值的)。而反过来讲,想只靠某些垂直领域的数据去训练一个所谓的行业大模型不如叫做小模型或者专业模型变大,这和大家在讨论的Foundation Model就是完全不同的两个东西。

Q2: 目前视觉领域存在这样的大模型吗?如果没有可能的原因是什么?

A2: 很遗憾,虽然这方面已经有了很多如CLIP或DINO之类的尝试和进展,但是目前对于CV而言,还远未到达ChatGPT时刻。究其原因,本质还是视觉信息与语言信息这两者在信息密度上的巨大差异。语言只需要考虑一维上(前后文)的context,然而视觉需要考虑在三维(2D图像的x y和时间)的context。这会使得context信息密度的急剧下降,对于需要的数据量和计算量有指数级的上升。说到底,语言毕竟还是人的逻辑思考的产物,而图像或者视频则完全是自然的展现。具体到技术层面上来说,也有若干没有确定答案的open问题:

什么是最合适的监督形式?年初SAM带火了一波视觉大模型,但其实本质上仍然是监督学习的范式。做的事情也是在工程上推到极致,通过这样的方式继续scale up的难度是非常大的。而现在视觉自监督最常见的两种范式Contrastive Learning和Masked Autoencoder也遇到了继续scale的难题:似乎视觉模型随着参数量和计算量的增加并没有出现语言模型的Grokking现象,甚至随着规模的scale up性能出现了一定程度的饱和。这和在NLP里面的大力出奇迹的表现非常不同,究竟是规模还不够大,还是因为这样的监督方式就有问题,目前还不得而知。

多任务的表示形式怎么统一?这一点其实是在一次的panel上 @代季峰 老师提到的。在NLP中我们可以通过prompt的形式把基本上所有的NLP任务统一成text to text的形式,但是CV中呢?naive地类比成image to image translation显然会存在很多的问题。没有统一的表示使得多任务很难共享同样的网络,仍然需要单独训练不同任务的head,使得模型的泛化性大大降低。

不敢妄言视觉大模型正确的思路是什么,但是可以分享一些我认为的视觉大模型该考虑到的一些点或者说具有的一些性质:以自监督为范式,时序和3D为基础,能预测物理世界。第一点是scale up的基础,无需多言。第二三点其实我认为是目前所有视觉预训练模型都没有解决的一个核心问题,也是打通low level vision与high level vision的一个关键的桥梁。现有的视觉预训练数据基本都来自于单帧的web data,这和在自然物理世界中会遇到的数据分布其实是有巨大的差异的。而CV和NLP我认为最大的区别就在于,CV的大模型最终极的目标是能和这个物理世界产生互动,能够理解这个物理世界中的常识。为了达到这个目标,只使用单帧的web data是显然不行的。在这个方向上,SFMLearner是一个很好的尝试,解决了low level vision自监督中的一些问题,但是仍然没有向上去解决high level的语义问题。希望在这个角度上,能看到更多有意义的尝试。

Q3: 现在有很多大语言模型在机器人领域的尝试,这是否意味着传统的规划控制会被全数据驱动的方法取代?

A3: Of course no! 以有限的对LLM for robotics的了解,现在的工作大致可以分为两类:1) 用LLM作为一个更好的环境理解与人机交互的接口。2) 用LLM + Neural Symbolic的方法去做task planning。在这两个方向上确实LLM取得了很好的进展,但是这就是规划和控制的全部吗?分享一些我能看到的问题:

  1. 更底层的运动控制与规划是一个被well solved的问题吗?目前还没看到有什么证据表明LLM可以直接去控制一些复杂的被控目标。和执行器打交道的更底层控制,仍然需要对被控对象进行精细的建模。我也不相信Boston Dynamic这样的公司真的会去用大模型去解决这些复杂的底层控制问题。

  2. 现在看到的应用中基本上都是对于静态环境与静态的agent交互。对于更复杂的POMDP,目前并没看到有什么相关的尝试。这恰恰算是在规划控制问题中一类常见的问题,例如无人车的规划,竞技类的棋牌游戏亦或是星际争霸。这样的一些任务中,状态空间巨大,也需要对不确定性进行很好的建模。目前也没看到LLM能够通过一些prompt的形式实现这样的功能。

所以总结一下,LLM for robotics确实有很多有价值的应用,尤其是在任务理解和规划层面,但是想完全取代也是不现实的。

Q4: 端到端自动驾驶算不算大模型?都拿了CVPR best paper了,你们L4为什么不跟进?

A4: Well,如果以Q1中的定义的话确实不算。除了实际的一些工程问题之外,其实在L4中不去这样做的一个核心问题还是在于可靠性。在很多场合我都表达过追求全系统的端到端对于L2来说是可行的,但是对于L4是不适合的。L2系统很多时候可以在效率与安全之间tradeoff,但是L4系统的设计目标则是在保证worst case安全的前提下来优化效率。显然,任何一个纯数据驱动的feedforward系统是不会有这样保证的。为了达到这样的安全目标,我们必然要去在系统设计层面设计足够多的算法冗余,这就会打破端到端的模式。更详细的阐述见我之前写的这篇文章:

https://zhuanlan.zhihu.com/p/384804813

最后,为了防杠,想补充的一点是,上下游协同设计和优化的这个思想我认为是非常正确和有意义的,只不过在部署端一定会存在模块化的冗余。在这一点上,还是有很多有意义的方向可以尝试,除了常见一些模块之间的表示与接口有很大的优化空间,就算在端到端方向也有一些有意义的问题:第一,怎样把一些行为有保障的planner(一般会是一个非凸的优化问题) formulate成对输入可导的形式,从而指导上游模块的学习?这样系统就不是一个纯feedforward了,从而可以加入各种约束和保证。我们之前在多目标追踪方向上做过这样的一些尝试,但是这个问题中的优化形式相比于planner还是过于toy了。第二,如何评测一个端到端训练的系统输出以便可以比较?在端到端的系统中,传统的感知评测的metric都已经不再适用。期待在这些问题上能有一些突破性的进展。

Q5: 那大模型在自动驾驶中可能有哪些应用?有没有实际落地的场景呢?

A5: 在车端而言,我确实没看到有什么去做部署的可能。一方面是实际算力的问题,一方面是并没看到一个特别清晰的杀手锏应用,也就是说没看到什么现在车端小模型一定解决不了但是大模型可以解决的问题。换句话说,如果给一台8卡A100在车上跑,L4自动驾驶就做出来了吗?答案显然不是的。但是在离线场景中,确实大有可为。这面最典型的应用可能就是数据集和corner case的检索与扩充。这个在 @王井东 老师在Apollo Day上有详细的介绍,我们做过一些类似的尝试,也取得了很不错的效果。除此之外,在预标注和自动标注方向也有很多的应用,也可以用更直接的model distill的方法来辅助在线模型的训练。总结下来,核心思想都是通过无论是数据还是特征的方式,将大模型更强的表征能力赋予在线的模型。也期待后续能有一些更新的范式出现,解决在线场景中的一些棘手的问题。但所有这些的前提都是大模型真的可以可靠解决小模型解决不了的问题。

在2023.7这个时间点来mark一下现在的认知,可能随着技术的发展有很多东西都要被打脸,也欢迎大家评论区理性讨论,观点碰撞~

① 全网独家视频课程

BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码学习)

63c09f8edf70ad18232ce5052f8c8512.png 视频官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

e886623c1591128902c210201d44be76.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

f9be7c06f6a96de17b3428522fb8703f.jpeg

④【自动驾驶之心】平台矩阵,欢迎联系我们!

9094216928f6ae4cd05f1f5c240a9fc5.jpeg

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CV_Autobot/article/details/132062068

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf

推荐文章

热门文章

相关标签