今年9月,特斯拉Cybercab正式在美国德州奥斯汀开启运营,这款车取消了方向盘与脚踏板,仅配备两个座位。马斯克表示,这代表了未来出行的形态。
今年5月中旬,Cybercab仍处于测试阶段,尚未向公众开放。经过数月的测试,这款车达到了一个新的里程碑:截至9月22日,特斯拉在德州登记的Robotaxi车队总数已增至476辆,其中Cybercab有67辆,其余409辆仍是带有方向盘的Model Y。
目前,特斯拉为Cybercab设置了安全措施,包括远程操作员干预、星链网络支持,以及乘客可使用的一键紧急避险按钮。按下Emergency Stop后,车辆会立即发出靠边停车请求,并自动接通Robotaxi专属客服。
但FSD的进展并非一帆风顺,十多年来,丑闻、诉讼和质疑始终如影随形。供应商关系破裂、自研芯片、算法重写,硬件量产前还曾推倒重来,团队内部甚至出现过隐瞒与欺骗。与此同时,软件团队一直抱怨算力不足、人员短缺,却在极致的成本控制中,被推向了极端的技术路线。
从供应商的“黑盒”模式转向自研芯片,一套原本需要30万行代码的系统精简到2000行,FSD究竟是如何炼成的?硬件与软件在13年的演进中,经历了哪些曲折?而当方向盘真的被移除,车队开始扩张,最棘手的难题又是什么?
2013年,成立已十年的特斯拉决定进军自动驾驶领域,最初希望与谷歌合作。
但谷歌的高精地图结合激光雷达方案成本过高,不符合马斯克的第一性原理。同时,谷歌主张一步到位直接开发L4级自动驾驶,而马斯克则认为应先推出L2级,再逐步迭代至L4级,双方因此分道扬镳,这也让自动驾驶领域诞生了两条技术路线,并争论至今。
然而,特斯拉当时连生存都颇为艰难,更别提自研,最现实的路径是寻找现成供应商,于是他们选择了Mobileye。
2014年10月,特斯拉发布了Autopilot Hardware 1.0。整车硬件非常基础:仅配备1个前置摄像头、1个前置毫米波雷达,外加12个超声波传感器。芯片是Mobileye的EyeQ3,频率500MHz,内存256MB,放在如今显然不够看。
Kerry刘向科 前特斯拉AI硬件开发高级经理 早期车规技术的局限性很大,这是一个不得不采用的方案,因为没有其他选择。
Kerry在特斯拉工作了近12年,参与了能源、自动驾驶、机器人等多个项目,负责AI相关硬件开发。他告诉硅谷101,FSD 13年的研发历程中,充满了曲折故事。
2015年,Autopilot软件正式上线。虽然仅能实现车道保持、自适应巡航等基础功能,但对当时的车主来说,这已经相当惊艳。要知道,那时大部分车辆甚至还未标配定速巡航。
车主们开始在网络上分享体验:有人在车里吃汉堡,有人在副驾睡觉,将Autopilot视为“无人驾驶”。马斯克不仅没有制止,反而助长了这种狂热,隐患由此埋下。
2016年5月7日,佛罗里达州一辆Model S撞上了一辆正在左转的拖挂货车,车主当场身亡。事故原因是辅助驾驶系统未能识别出货车。
此前,Mobileye曾警告马斯克禁止驾驶员双手离开方向盘,但未被重视,这次事故成为双方彻底决裂的催化剂。
为什么只是“催化剂”呢?这里我们先来看看特斯拉第一代Autopilot是如何运作的。
自动驾驶主要分为三个流程:感知、规划、执行。 特斯拉与Mobileye合作时,感知部分的算法完全由Mobileye垄断,规划与控制由特斯拉主导。
Mobileye提供的是典型的“黑盒”模式:摄像头捕捉画面后,直接输入到Mobileye的EyeQ3芯片中,计算完成后再传递到规划层。
匿名 前自动驾驶资深从业者 这可能也是当时双方分裂的原因。因为双方强行定义了一个接口,而接口之下,Mobileye的内容是黑盒,不提供给特斯拉。这非常阻碍特斯拉的开发,因为有时你想跨越或更改这个接口,却没有控制权。
因此,真正导致特斯拉与Mobileye分手的原因是合作不畅。此后,特斯拉开始独自掌控算法部分,硬件系统也更换了合作商,但市场并不买账。
2016年10月,距离事故仅5个月,特斯拉发布了Hardware 2.0。这次传感器从1个摄像头增至8个,芯片从Mobileye换成了Nvidia Drive PX2。虽然摄像头数量增多,但在当时作用并不大。
匿名 前自动驾驶资深从业者 我认为8个摄像头可能是为未来准备的。如果未来想实现全自动驾驶,就不可能只有前向摄像头。但在当时,如果只是取代Mobileye的功能,未必需要动用这么多算力去处理每个摄像头的信息。
不过,特斯拉很快发现Hardware 2.0存在缺陷,于是在发布10个月后推出了Hardware 2.5,两者的核心区别在于冗余。
因为Hardware 2.0是特斯拉首次使用英伟达的方案,当时英伟达并未专门为辅助驾驶设计芯片,所以结构上是一个SoC外挂一个GPU。
但问题是,马斯克当时已在推动全自动驾驶,必须考虑一个现实问题:万一芯片坏了怎么办?需要有备用方案。因此到了2.5,特斯拉增加了一个GPU作为冗余,这就是特斯拉FSD双芯片架构的雏形。
与此同时,特斯拉在6个月内通过自研替代了Mobileye的算法部分,并推出了FSD(全自动驾驶),这意味着与以往大不相同,但初期表现并不如预期顺利。
匿名 前自动驾驶资深从业者 Mobileye已经迭代了很多年,即使技术相对落后,各方面也还是比较完善。一个新团队从0到1开始做,初期出现各种问题,我认为完全可以理解。
不过,英伟达芯片只是一个过渡方案,接下来特斯拉FSD才开始真正发力。
2019年4月,特斯拉发布了Hardware 3.0,用自研的AI3芯片替换了英伟达芯片。采用自研芯片是迟早的事,早在与Mobileye合作时,特斯拉就已开始布局。让我们把时间拨回2016年。
1月,马斯克挖来了芯片设计界的传奇人物Jim Keller,他在AMD设计了K7、K8架构,在苹果设计了A4、A5芯片,又回到AMD研发了Zen架构,后来还去了英特尔。
2月,Peter Bannon也加入特斯拉,履历同样硬核:加入特斯拉前已有近40年的计算系统设计经验,曾在苹果、英特尔、PA Semi等公司任职,领导了苹果A4到A9处理器的开发。
在这两位芯片大神的带领下,以及三星团队的协助下,第一款FSD芯片AI3仅用18个月就设计完成,并于2017年12月首次流片成功,整个过程非常顺利。
Kerry刘向科 前特斯拉AI硬件开发高级经理 当时甚至第一次流片出来,这个芯片基本上就没有毛病了,最后只是做了少量修改,做了第二版后就开始量产,后面没有再改过了,所以Hardware 3算是一个非常成功的芯片。无论在英特尔、AMD,还是其他公司,处理器芯片能够一次流片做好的,都是凤毛麟角。很多芯片第一次流片后,甚至无法开机。而且当时特斯拉采用的14纳米制程,也相对成熟。
这款自研芯片的一大优势是性能强劲。相比Hardware 2.5采用的英伟达Pascal芯片,AI3的神经网络算力提升了5倍以上,其他各项参数也有显著提升。
为什么提升这么大?因为这是专为自动驾驶场景设计的芯片,与之前通用芯片架构完全不同。
芯片算力不能只看纸面参数。像英伟达的芯片,因为是通用的,包含线程调度、内存访问、分支预测等任务,在执行神经网络任务时,实际利用率很难跑上去。而特斯拉定制的芯片,专为实际任务场景做了优化,有效利用率能达到80%,相比通用芯片提升了50%。
Peter Bannon 前特斯拉硬件负责人 2016年,确实还没有从零开始设计的神经网络加速器。当时大家都在自己的CPU、GPU或DSP上增加指令,让它们更适合做推理,但没有人真正从底层开始专门为此设计。所以,我们决定自己来做。
就在AI3即将量产的节骨眼上,Jim Keller离开了特斯拉,由Peter Bannon接手整个硬件团队。别急着为特斯拉担心,因为在业内看来,Jim的离开早已注定。
Kerry刘向科 前特斯拉AI硬件开发高级经理 我跟Jim Keller的一些朋友聊过这件事情,大家的反馈是,Jim Keller是一个非常喜欢做从0到1的工作的人,他不喜欢做从1到10的事情。他之前在苹果或AMD,都是把芯片从无到有做出来,然后在这个芯片做出来之前就会走。我想这可能也是为什么他愿意来特斯拉的原因,因为特斯拉要做芯片这件事,在当时就属于从0到1的事。
虽然AI3芯片的开发过程很顺利,但鲜为人知的是,在整套Hardware 3.0量产前的三个月,特斯拉内部连轴转几乎崩溃,而原因竟是马斯克的“抠门”。
Kerry刘向科 前特斯拉AI硬件开发高级经理 马斯克不喜欢招人,就算到今天,FSD和机器人相关的软件团队,人数一直很少。他们既要支持还在量产的Hardware 2.5,又要编写Hardware 3的软件,人手明显不足。 没有配套软件,很多产品、芯片的测试和功能验证就无法开展。我印象很深,当时硬件团队只能自己拼凑软件,写一些指令来模拟软件团队的功能,再自己运行、自己测试。 量产前三个月,马斯克说,必须开始推进Hardware 3了。这时,软件团队只剩下三个月,我们硬件团队还要配套测试,所以相当于几乎没给我们时间。于是,他们写出一部分软件,我们就跟着做相应测试。那是我在特斯拉最忙的三个月,基本没有休息。
使用自研芯片后,主要带来了两个好处:成本优势和主动权,这背后还有两个与供应商的周旋与冲突。
先说说第一个。众所周知,马斯克一直非常在意成本,而Kerry一项重要的工作就是通过各种手段迫使供应商降价。
Kerry刘向科 前特斯拉AI硬件开发高级经理 TI(德州仪器)是非常大的车规芯片供应商。2018年,我们整个车上每年要用大量TI的芯片。而2018年年底时,特斯拉差点破产,所以成本压力非常大。因此公司提出,希望TI把特斯拉用的所有芯片全部降价。 TI一直不肯答应。但当时车规芯片的利润水平很高,平均利润甚至能达到50%至55%。于是,我把这套TI芯片全换成了ADI同等功能的芯片。更换芯片的方案需要硬件和软件团队做大量测试、开发,但我认为必须换,就推进了。 TI没想到我们真会更换。这套芯片对他们很重要,占了很大一部分营收额。他们就开始求我们,也找了我的老板,连CEO都来问,能不能不换,是否还有其他办法。采购部门就直接把降价表发给他们,表示只要表上的芯片全部降价,我们就改回来。 TI和我们僵持了几个星期,最后同意了。当时一年大约能节省2000万美元,对马斯克来说,这是很大的一笔成本下降,他还特地发信感谢我们。
其次,在主动权方面,特斯拉除了因Mobileye黑盒算法吃过亏,与英伟达的合作也存在冲突。一方面,英伟达的芯片并非专为自动驾驶设计。
Kerry刘向科 前特斯拉AI硬件开发高级经理 即使到今天,英伟达最新的Thor这类芯片,也仍然是通用芯片。马斯克不希望被任何一家公司牵着鼻子走,更不希望被局限在特定功能或算力框架之内。
另一方面,英伟达团队配合度不高,这对马斯克来说更加无法容忍。
Kerry刘向科 前特斯拉AI硬件开发高级经理 2017年,有些车辆返修的事件,我们怀疑主板温度过高,因为英伟达的芯片里有温度传感器,我们就提出,能否把温度显示出来。这是一个很简单的事情,只需要写几行代码的驱动。英伟达和我们来来回回,光扯皮就扯了差不多一礼拜。之后又问我们要钱,说开通这个新功能需要付费,而且还要再等一个礼拜。三行代码就能解决的事情,已经折腾了快半个月,这样的合作模式很难继续推进。英伟达也有其他核心产品,所以在2017年,车载的业务很难做,效率非常低。
讲完这些小故事,我们再回到Hardware 3.0硬件上。它有个很大的问题是,虽然在2016年设计时,专为当时常用的卷积神经网络(CNN)做了优化,但谁都没想到,一年后,也就是2017年,出现了一篇改变整个AI史的论文——《Attention Is All You Need》。
2017年6月,谷歌发布了Transformer开山论文,随后启发了OpenAI,诞生了ChatGPT。与此同时,一个30岁的年轻人却离开了OpenAI,他就是Andrej Karpathy。
与Mobileye决裂后,特斯拉急需从零开始自研基于深度学习的视觉感知系统。彼时的马斯克还担任着OpenAI的联席董事长,在见识到Andrej的能力后,马斯克决定邀请他加入特斯拉,并直接向自己汇报。
Andrej Karpathy 特斯拉前人工智能高级总监 实际上,是马斯克主动联系了我。他找我的时机非常合适,那时候,我真的开始有些坐不住了。我觉得我能做这件事,我有能力在这里作出贡献。
Karpathy的加入不仅为特斯拉带来了技术创新,更重要的是,当时特斯拉的自动驾驶正处于低谷,急需一位领头人来吸引更多人才。
匿名 前自动驾驶资深从业者 他是AI和机器学习领域的标志性人物,所以我认为,他加入后最大的作用是招聘。如果没有他,对刚毕业的顶尖AI人才来说,为什么要去一家车厂?但有了Andrej,这些人可能就有了理由,因为很多人都上过他的课。
随后,特斯拉在2018年到2021年间,对算法部分的“感知”模块进行了一次次升级。接下来,我们尽量用通俗的语言介绍其中的四大升级点。
还记得自动驾驶的三大模块吗?即感知-规划-执行,相关基础知识我们在之前的文章中有详细介绍。
而Karpathy加入的第一件事,就是用神经网络重构“感知”模块。
他提出将车道线检测、车辆识别、行人感知等基础任务都交给深度学习模型。通过海量数据训练,让系统自己识别环境,这样面对从未见过的路况,神经网络依然能做出合理判断。
这又带来了另一个问题:系统既要识别车辆、行人,还要看懂红绿灯、锥桶、减速带、施工标志等,如果每个任务都运行一个独立的神经网络,不仅代码量会非常大,车载算力也不够用。
这就要说到第二个升级点,HydraNet架构。
它的设计思路是让所有任务共用一个底层的特征提取网络(Backbone),只在最顶端分叉出不同的“任务头”,即“Head”。这样,多个摄像头、多个识别任务都能共享同一个算力底座。就像一棵树,树干是共享的算力底座,树枝是不同的识别任务,各长各的叶子,但共享养分。
HydraNet不仅提升了计算效率,更重要的是,它能针对不同的识别任务单独微调,而不影响其他任务的表现。
第三个升级点,是从“看图片”转向“看视频”。
特斯拉早期的感知模块更像一个图像识别系统:摄像头拍下一张照片,通过CNN算法,依次识别哪里有辆车、哪里有行人、哪里有车道线。
但现实世界是连续变化的。例如,一辆小汽车被驶过的大巴暂时遮挡后,摄像头在某些时刻可能无法直接看到它,系统就需要结合前后时刻的信息,继续判断这个目标是否仍然存在以及可能的位置。
因此,特斯拉团队让系统从“看图片”转向“看视频”,利用时序信息,学习连续几秒钟发生了什么,并预测物体的运动轨迹或行为趋势,这样系统就拥有了短暂的记忆能力。
第四个升级点,是Transformer加持的鸟瞰图视角,即BEV。
过去,每个摄像头更多是各自完成识别任务,互相之间没有多少交流。例如,左摄像头和右摄像头都识别到了一辆车,但系统并不清楚这是否是同一辆。
现在,系统开始融合8个摄像头的信息,通过空间变换和多视角融合技术,并结合Transformer的交叉注意力机制,将这些信息统一投射到同一个俯视坐标系中,最终构建出完整的2.5D空间模型。
匿名 前自动驾驶资深从业者 BEV并不是特斯拉独有的创新,可能更多来自整个学界。随着研究经费增加,学界一直在推进相关研究,也出现了一些关于多传感器融合的成果。
有了这四大升级,到2021年,特斯拉的感知模块开始真正理解整个道路环境。但马斯克又突然决定移除车上所有的雷达,这可苦了软件团队,一下进入了“作战模式”。
虽然马斯克很早就说过,自动驾驶只需摄像头就够了,在特斯拉内部看来,移除雷达也确实会带来一定优势。例如,过去融合多传感器信息时会对算法带来额外负担,同时增加后期维护工作量等。但2021年5月,马斯克决定移除车上所有雷达时,还是让大家觉得这个时间点很突然。
你可能问,是不是因为内部团队早已做好测试?或者技术已经足够成熟?我们起初也这么认为,但Kerry告诉我们,真实原因非常现实,就是供应链问题。
Kerry刘向科 前特斯拉AI硬件开发高级经理 当时是因为疫情,毫米波雷达供不上货。我们的供应商是Continental(德国大陆集团),后来双方好像谈崩了。 疫情期间,很多供应商都无法正常供货。这种核心供应商一旦供不上,采购团队就会把问题上报给马斯克,让他直接与供应商的CEO通话。有些供应商很配合,有些则不配合,可能觉得我们的采购量不够大,或者有更重要的客户。这类不配合的供应商,基本上都被拉黑了。 马斯克直接说,既然你不给,那我也不谈了,直接不要了。
在此之前,马斯克早已催促过软件团队尽快在算法中移除毫米波雷达,但受限于软件团队人员不足,这件事一拖再拖。所以疫情,相当于是一个催化剂。
去掉雷达后,测距精度会大幅降低。为了弥补这些信息,只能通过纯视觉来预估速度,软件团队也进入了作战模式。
匿名 前自动驾驶资深从业者 因为雷达对速度的估计会比较准,而且对天气情况也没有那么敏感,所以很多人是反对移除的。
虽然移除过程让团队吃了不少苦,但