2024年5月18日星期六

特斯拉大裁员后的豪赌,FSD v12 是如何诞生的


裁员 1 万多人、大幅缩减重要项目 4680 电池团队、负责三电系统的高级副总裁等高管离职…… 特斯拉 CEO 埃隆・马斯克在 4 月 15 日发起的大调整,只是一个序幕。

之后半个月,特斯拉持续裁撤曾经的重点项目:4680 电池项目继续裁员、北美的超级充电桩团队完全解散、9000 吨以上一体压铸机项目被叫停,相关高管大批离职。接下来的 6 月,特斯拉还会在加州和得州两地裁员超过 6000 人。

马斯克的新赌注是全自动驾驶。无人出租车(Robotaxi)项目被拔到最高优先级。马斯克宣布将在 8 月 8 日发布产品,今年投入百亿美元采购 GPU、研发车载芯片,用于改进自动驾驶系统。他曾多次说过,只要持续迭代这套系统,就会实现无人驾驶,让特斯拉成为 10 万亿美元市值公司。

在特斯拉的第二大市场中国,马斯克也期望用这套系统翻盘。4 月底,马斯克到访中国,被政府领导接见。不久后,他在内部信中说,特斯拉已在中国获得测试部分辅助驾驶系统的许可。

今年开始大面积推送的 FSD v12 自动驾驶系统确实展现出一些不同寻常的潜力。车主的反馈都很接近:“就像人开车一样”,跟上一代相比有进步,狭路会车、超车更从容。

自动驾驶公司元戎启行 CEO 周光今年 3 月在美国体验 FSD v12 后,承认还是低估了它的能力:“去之前我认为可能是 80 分的东西,但实际做到了 90 分。”

一家国内一线新能源企业负责人体验后相信,特斯拉的自动驾驶会有革命性突破。竞争对手们不敢错过,仅 4 月底北京车展前后,小鹏、华为、长城、商汤绝影等公司宣布将推出类似 FSD v12 的自动驾驶系统。同期,软银、英伟达和微软用 10.8 亿美元投资与特斯拉路线相同的英国自动驾驶公司 Wayve。

沿着特斯拉的路线,一场新的自动驾驶竞赛正在开启。这一次不只要解决技术难题,还是一场资源竞赛。来中国当天,马斯克在社交媒体上划出入局门槛:“任何公司,如果算力投入达不到百亿美元 …… 就无法参与这一轮竞争。”

原理:砍掉 30 万行代码,让数据决定车怎么开

2000 年代,DARPA 在沙漠中举办的 3 场无人车挑战赛,是现代无人驾驶技术研发的源头。Google 招揽了优胜者,趟出一条可行的方案,将自动驾驶拆成多个环节:

用激光雷达、摄像头等传感器收集车辆周围环境数据,交给依赖人工标注数据训练出的模型,识别出常见的重要目标和各种障碍物(感知模块),再配合高精地图,让系统了解道路会怎么变化,最后依赖工程师用代码写成的规则决定车怎么开(预测、规划模块)。

最初,特斯拉也按照 Google 开辟的路径去做自动驾驶,为了节省成本和迅速扩大使用范围,他们开发依赖摄像头,而不是昂贵的激光雷达和高精地图的方案。推出 v12 前,特斯拉的自动驾驶系统工作流程大概是:

负责感知的视觉模块先工作,处理摄像头等传感器捕捉的路况数据,识别出路上有什么东西,大概怎么分布,哪些是动的,哪些是不动的,哪些是车道线,可以行车的区域有哪些等等。

然后是预测规划控制模块,调用感知模型处理过的信息,预测场景中人、车等动态目标接下来几秒如何行动,结合模型和工程师提前写入的规则,规划安全的行驶路线,再控制方向盘、加速或刹车踏板,照路线行驶。

特斯拉在 2021 年 AI Day 上公布的 FSD 系统架构。图片来自特斯拉

为了尽可能应对路上遇到的各种情况,特斯拉数百名工程师写了 30 万行 C++ 代码制定规则 —— 相当于早期 Linux 操作系统代码量的 1.7 倍。

这不是人学会开车的方式,人不需要认出一条路上可能出现的大量物体到底是什么,也不需要为每个复杂场景提前制定各种规则,就能开车上路。

这样做出来的自动驾驶系统,很难保证绝对安全。真实世界千变万化,再多的工程师也难以穷尽。现在商业化的无人出租车,只能在有限区域运营,车内没有安全员,只不过是运营方把他们转移到云端,远程盯着。

直到 2021 年,在路上遇到一排交通锥,Google 无人驾驶子公司 Waymo 的无人车还是有可能停下来拒绝行驶。此时 Google 已经带着整个行业投入上千亿美元。一批公司在那两年关停已经耗资数十亿美元的无人驾驶项目。

“付出 20% 的努力,就能获得 80% 的能力。” 小鹏原自动驾驶 AI 负责人刘兰个川去年在一场学术活动上说,传统自动驾驶方案开发简单,但继续提升困难。现在他加入英伟达智能汽车团队。

特斯拉 FSD v12 学开车更像人。最大的改变是用了 “端到端” 架构:一端输入摄像头等传感器获得的数据,另一端直接输出车该怎么开。

训练这套系统时,机器从大量车辆行驶视频和人类司机在不同环境下打方向盘、踩加速踏板的数据中学习怎么开车。

在 FSD v12 中,特斯拉工程师们写的规则几乎全被消灭,30 万行规则代码仅剩 2000 多行,不到原来的 1%。

端到端自动驾驶系统学开车的方式,也只是有一点像人,并没有系统能像人类一样真的理解世界。所以人学几天,就能开车上路安全驾驶,但 FSD 要看海量的视频学习。马斯克去年在一次财报会上谈到数据有多重要:“用 100 万个视频 case 训练,勉强够用;200 万个,稍好一些;300 万个,就会感到 Wow;到了 1000 万个,就变得难以置信了。”

“传统自动驾驶系统就像一个漏斗,信息一层层丢失。” 一位自动驾驶算法工程师说,传统方案的感知阶段,工程师们通常会设置 “白名单”,重点识别行人、车辆、车道线、红绿灯等重要目标,以节省算力。到了预测规划环节,工程师会提前设定,根据需求调用感知模块输出的信息完成工作,信息会再一次折损。因此传统方案很难像人一样用充分的信息决定怎么开车,要依赖工程师们提前写的规则。

而端到端方案中,摄像头等传感器获得的信息全部传递到决策环节,“信息无损传递,模型可以从感知数据中捕捉更多信息完成决策,提升系统应对各种复杂场景的能力。” 上述自动驾驶算法工程师说,因为是端到端架构,模型的决策也会直接影响感知环节,让它之后捕捉更多人意识不到但对驾驶有帮助的数据。

在许多场景,特斯拉 FSD v12 都有明显提升。一位自动驾驶从业者(知乎 @EatElephant)告诉我们,他体验后感觉到,与 v11 相比,v12 控制车辆的速度和转向 “很丝滑”,“即使坐在后排,路口转弯时几乎感觉不到任何顿挫”。为了保证安全,传统自动驾驶方案行车时,会时不时带下刹车。

他在一篇文章中写道,面对右前方有人骑自行车的场景,“v11 会过度小心,规划出一条非常离谱的大幅绕行路线,v12 从容淡定,绕行幅度接近人类司机的选择,速度控制和果断程度也非常合理。”

那些难以用规则描述的场景,FSD v12 的应对方式有明显进步。他举例,比如遇到路边开着双闪的亚马逊送货卡车,能迅速判断对向无车,立即借道绕行。而传统的方案大多数情况下都会停下来,或者等一段时间才会考虑采取行动。

FSD v12.3 更新推送后,一批车主在 YouTube 上传了车辆从容应对各种复杂的路况的视频,比如晚间穿越拥挤的纽约第五大道,30 分钟全程没怎么碰方向盘。

面对兴奋的车主们,美国公路交通安全管理局在 5 月 6 日发函要求特斯拉详细说明,如何防止车主滥用辅助驾驶系统,比如怎么提醒驾驶员 “把手放在方向盘上”。

基础:最难的几年依然坚持预装硬件、研发芯片、采集数据

2018 年初,特斯拉深陷产能危机、面临生死考验时,马斯克发邮件给 OpenAI 管理层,希望 OpenAI 并入特斯拉,共同研发 “基于大规模神经网络训练的全自动驾驶方案”。

他认为,AI 研发需要巨资,而 OpenAI 需要建立盈利模式才能与巨头抗衡。而特斯拉已经用 Model 3 和其供应链打造了火箭的 “第一级”,如果 OpenAI 能够并入特斯拉,将会加速无人驾驶研发,打造火箭的 “第二级”,特斯拉会因此卖出更多车,OpenAI 也会有足够的收入开展人工智能研究。

马斯克的提议被拒绝,最后退出 OpenAI 董事会。但在此之前,他就已经从 OpenAI 挖来安德烈・卡帕蒂(Andrej Karpathy),负责自动驾驶技术研发,带队训练效果更强的模型。

多位自动驾驶从业者认为,卡帕蒂加入特斯拉是其研发 v12 版端到端自动驾驶模型的开端。

1986 年出生的卡帕蒂,是过去十多年人工智能浪潮的亲历者,也是从中成长起来的人工智能科学家。他 2011 在斯坦福大学读博士期间和导师李飞飞一起完善催生 AlexNet 的 ImageNet 竞赛数据集,在各个学术会议上发表数篇计算机视觉论文,在斯坦福大学开设了第一门深度学习课。博士毕业后,他是最早一批加入 OpenAI 的人。

安德烈・卡帕蒂在特斯拉的 AI Day 上。

2017 年 11 月,卡帕蒂发布著名的《软件 2.0》 文章,称 “软件吞噬世界,而人工智能为基础的软件 2.0 正在吞噬软件”。那时经过大量数据训练的计算机视觉模型,识别物体的准确率超过人眼。AlphaGo 从数据中学到了击败人类围棋冠军的方法。

他相信,靠着大量数据,人工智能在大部分有价值的垂直领域,“至少在涉及图像 / 视频和声音 / 语音的领域,比你我能想出的任何代码都要好。”

在卡帕蒂到来前,特斯拉已经完成了自动驾驶的数据基建。

用大量数据训练更强的模型,是非常适合特斯拉的技术发展路线。但特斯拉要投入大量资源研发自动驾驶技术,马斯克从不缺乏冒险的决心。

2016 年开始,每一辆出厂的特斯拉汽车都搭载能运行 Autopilot 辅助驾驶系统的硬件,花钱买了软件才能开启功能。到现在也没几个汽车品牌会这么做,更常见的做法是把同一款车分成不同的版本,把搭载自动驾驶硬件车型卖给感兴趣的客户。

标配辅助驾驶的时候,特斯拉启用 “影子模式”(Shadow Mode),就算驾驶员不购买 Autopilot 功能,这套系统也会在后台运行,记录行车数据、规划行车路线。马斯克当时接受采访说,它的作用是证明系统比人可靠,为监管机构批准技术提供数据支撑。

卡帕蒂加入后,影子模式成为特斯拉获得训练模型数据的核心来源 —— 当系统选择的路线与驾驶员的选择有明显偏差时,就会触发数据回传机制,系统会自动记录摄像头捕捉到的数据、车辆行驶数据等,等到连接 WiFi 后上传到特斯拉的服务器中。到 2018 年底,特斯拉就靠这套系统采集 16 亿公里数据,超过现在绝大多数研发自动驾驶技术的车企。

特斯拉的自动驾驶团队把大部分精力放到数据上,搭建了一套数据处理系统,专门分析、筛选收集到的数据,一开始用人、后来绝大部分数据用机器打标签,然后喂给模型,持续改进自动驾驶系统。为了用大量数据训练模型,特斯拉在 2019 年之前,就采购大量 GPU 建设名为 Dojo 的算力中心,并持续扩大,到现在已经积累了等同 3.5 万张 H100 的算力。

2019 年 4 月,特斯拉发布 HW 3.0 硬件,搭载两颗 FSD 第一代芯片,算力达到 144 TOPS,是当时英伟达车载芯片 Xavier 的近 7 倍。和过去一样,不论用户是否购买辅助驾驶系统,特斯拉都这套硬件装到每一辆特斯拉车上,而且免费帮买了辅助驾驶系统的老用户升级。

“不仅让我们能够更快地运行当前的神经网络(模型),更重要的是,它允许我们在车上部署更大、计算成本更高的模型。” 卡帕蒂说。HW 3.0 也是特斯拉现在能大规模推行 FSD v12 系统的基础。

特斯拉搭建这套基础设施的时候,也是它开始量产车辆以来资金最紧张的一段时间。从 2017 年到 2019 年初,特斯拉都深陷 Model 3 产能危机。

到 2019 年 3 月,特斯拉的现金储备只剩 22 亿美元,只够再烧不到半年。《马斯克传》记录,当时马斯克对妻子说,“我们必须筹集到资金,否则就完蛋了。”

马斯克想了几夜后,决定面向投资人办一场活动,即特斯拉 “自动驾驶日”。他告诉华尔街的投资人,无人驾驶汽车未来能帮特斯拉实现巨额盈利,接下来一年多时间会部署 100 万辆无人出租车,重塑人们的日常生活。

没人相信特斯拉的无人驾驶能很快到来。这场活动结束一个多月,特斯拉股价跌了 30%。靠着 Model 3 产能顺利扩大,上海工厂迅速建成,特斯拉才缓了过来。但接下来的 5 年,是特斯拉自动驾驶基础技术进步最快的阶段。

实现:从模拟人眼开始,一步步扩展到整个系统

看视频学开车的道理听起来很简单,但中间需要解决无数问题。

2020 年到 2022 年,特斯拉每年都会公开一版 “感知” 模型,每个版本都朝着模拟 “人眼” 更进一步。

2020 年 2 月,卡帕蒂在一场学术会议上展示了特斯拉训练 48 个神经网络组成的 “多任务模型” HydraNet,可以识别 1000 多个目标,比如汽车、自行车、车道线、学校区域等。

HydraNet 用微软亚洲研究院 2015 年发布的 ResNet 模型当主干,提取车身周边 8 个摄像头所捕捉画面的通用特征,交给不同的算法分支完成不同的任务。这么做可以避免用不同的模型重复从相同的画面提取特征,节省算力。

这是当时学术界和多数开发大型计算机识别系统公司的选择,特斯拉把它做得规模更大,并实现工程化。但这么做有局限。HydraNet 只能从不同角度的摄像头捕捉的画面中各自提取信息,摄像头可能只会捕捉到周边物体的一部分。就像新手司机很难靠后视镜流畅倒车入库一样,自动驾驶系统也很难靠它实现真正的无人驾驶,还得靠各种雷达、高精地图辅助。

不用激光雷达的卡帕蒂团队选择使用一系列算法,将 8 个不同方向的摄像头收集的画面拼成一个 360° 的鸟瞰图(Bird’s Eye View,即 BEV)模式,再让模型 “理解世界”,规划行车路线。但想让这套系统效果良好,得尽量保证地面是平的,而且车周围环境要简单,否则系统就难以准确理解不同摄像头看到的图片之间有什么关联。

“当我们用它实现 FSD 时,很快发现达不到预想中的效果。” 安德烈・卡帕蒂在 2021 年特斯拉 AI Day 上说,他介绍了用 Transformer 架构开发的新版模型,能准确地把跨越多个相机的目标拼得更准确、稳定。

上部三个视角是特斯拉车载摄像头拍摄的画面。左下是传统方法拼出来的 BEV 道路图,右下是 Transformer 方法拼接、预测的道路。动图来自特斯拉 2021 年的 AI Day。

而且利用 Transformer 架构做成的模型,输出的信息可以直接用到后续的预测规划模块,也为 FSD v12 做成端到端模型打下基础。

与新模型配合,卡帕蒂还分享了一个名叫 “Spatial RNN” 的架构,用视频训练模型时,模型能获得短暂的 “记忆” 能力,理解周围的场景如何随着时间变化,从而具备脑补摄像头视野盲区、实时构建局部地图的能力。

这次技术迭代,让特斯拉的辅助驾驶系统不用高精地图也能把车开好,再一次推高自动驾驶的能力上限,向人眼靠近。

等到 2022 年特斯拉 AI Day 举办时,卡帕蒂已经离开特斯拉。特斯拉的自动驾驶系统继续迭代,继任者阿肖克・埃卢斯瓦米(Ashok Elluswamy)介绍了 “占用网络”(Occupancy Network),在 Transformer 架构基础上引入 “高度” 要素,能把不同角度摄像头捕捉到的画面还原成 3D 场景,计算出一个物体在空间中占用多少点,从而推断出它的形状。

借助 Occupancy Network,特斯拉的自动驾驶系统不用激光雷达,只靠摄像头收集信息,就可以识别出它没有见过的障碍物,被视为 “纯视觉方案” 的胜利。

特斯拉多年研发,终于实现马斯克多年前提出的第一个要求:人靠双眼就可以识别、还原 3D 环境,车靠摄像头也应该可以。

 

特斯拉 Occupancy Network 识别车辆周围障碍物。图片来自特斯拉 2022 年 AI Day。

在这个过程中,特斯拉还在逐步尝试让神经网络决定车怎么开。在 2021 年的 AI Day 上,特斯拉就展示了用大量数据训练出来的 “神经网络规划模型”,当时只是作为辅助,为最终的规划决策模块提供参考。到 v12 版本,神经网络正式接管预测规划模块,完成端到端拼图。

疑问:自动驾驶现在能不能有 Scaling Laws

FSD v12 距离真正的无人驾驶还有距离。像 ChatGPT 一样,它有闪光时刻,但也常犯错。广受好评的 v12.3 版本上线后,车辆时有撞到马路牙、损坏轮毂的低级错误。而在上一代方案中,很少会出现类似的情况。

特斯拉也没敢全面依赖 v12。一位特斯拉车主从 FSD 的软件包中发现,v12 仅适用于城市街道,高速场景还是用 v11。

“端到端系统的下限其实很低。” 一位自动驾驶工程师说,高速行车速度更快,规则更简单,经过长期打磨的传统方案,可能比当前的端到端方案更安全。“只有把端到端方案下限提上来,处理简单场景比原本方案更好,才是真正的性能提升。”

端到端需要更多投入才能达到传统方案效果。图片来自小鹏原自动驾驶 AI 负责人刘兰个川在去年 CVPR 上的分享。

“端到端的模型上线之前一定会有 ‘护栏’。它像是未来会成为博士的学生,但成长过程中需要小学、初中老师去带,需要时间成长。” 英伟达汽车事业部负责人吴新宙认为端到端模型成为主流之前,还需要和原有模型配合工作,保证安全。

马斯克愿意更快一点。今年 4 月,马斯克在一季度财报会上说,他们可以看到三四个月后的模型效果,已经可以称为 FSD v13,“比当前车上的版本更强,但有一些问题需要解决。”

他相信特斯拉已经找到适用于自动驾驶的 “Scaling Laws”(规模定律):只要继续扩大模型参数、投入更多数据和算力,不断改进模型架构,就会有更好的效果。

过去多年,Scaling Laws 被视为 OpenAI 有底气开发规模更大、效果更好模型的秘诀。而自动驾驶所在的计算机视觉领域,因为训练模型需要的数据是与物理世界中相关的视频,需要模型理解更多物理规则,许多研究者担心,用更多的数据、算力训练更大的模型,会陷入瓶颈,能力不会提升,反而会下降。

“我们可以根据过去的趋势估算未来的进展,从过去的数据来看,估算通常都是正确的。” 埃卢斯瓦米在财报会上说,特斯拉每周都会训练数百个能够生成不同驾驶路线的模型,再拿从用户和测试人员那里收集的数百万视频片段测试,如果效果更好,就会给专门的路测团队和员工测试,最后推送给更多用户,迭代速度会越来越快。

我们了解到,特斯拉的 v12 系统目前并不能像 GPT-4 等语言大模型那样,可以解答训练数据中没有的问题,还要从大量的数据中学习如何应对复杂场景。

随着模型能力提升,改进模型需要的数据更多。马斯克今天说,每 10000 公里的行驶数据,只有 1 公里能训练模型。而且每训练一遍,都需要消耗大量算力。

这对于特斯拉不是问题。路上数百万辆特斯拉车可以源源不断为它提供各种各样的数据。特斯拉还在开发更强的仿真系统,生成各种数据训练模型。去年的计算机视觉学术会议 CVPR 上,埃卢斯瓦米展示了特斯拉用收集来的数据训练成的 “世界模型”(World Model),它可以根据提示词和过去的视频,生成汽车继续向前开会经历什么场景的视频,比如不同视角的摄像头中,车道线怎么延续,路口怎么变化。

但建立在端到端架构上的自动系统,是一个 “黑盒子”,就连它的创造者都搞不清楚它如何把一堆数据变成结果。人们能做的,是给它处理好的数据,让算法自己提炼规律,并依此处理新的数据。如果出了问题,就给它更多的数据,让它自己修正。

这不是自动驾驶独有的问题,任何使用深度学习的应用都一样。只是人们不那么在意抖音的算法推给你几个不感兴趣的视频,也能忍受 ChatGPT 有时 “胡说八道”,但非常在意 2 吨重的汽车为什么在道路上失常。

“它可能会 ‘无声地失败’,当问题爆发出来时,通常难以分析和排查,因为模型已经变得非常庞大。” 卡帕蒂在《软件 2.0》文章中谈到了缺陷,这会是一个选择题:“用我们理解的、效果达到 90% 的方法。还是我们不理解、效果达到 99% 的模型。”

特斯拉已经用行动做出选择。他们相信,采用端到端神经网络、经过数十亿公里现实世界数据训练的纯视觉模型,是实现大规模无人驾驶的正确方法。

马斯克给自动驾驶团队下达的命令是,想尽办法提高 FSD v12 不需要人类能够行驶的距离。他们在办公室放了一面锣,每解决一个问题,锣就会响一次。马斯克认为,只要有确凿的数据证明,自动驾驶比人开车更可靠,就不会有太多监管障碍。

过去几个月,特斯拉降低 FSD 价格、让美国的车主免费试用,激进地把 v12 版本推向市场,一个季度就行驶 5 亿公里。

从特斯拉开始研发辅助驾驶系统以来,马斯克就对无人驾驶极其乐观。2016 年,特斯拉第一次在车辆周围放置了 8 颗摄像头,拥有 360° 视角,马斯克就安排团队精心准备视频,宣扬无人驾驶即将到来。

之后每隔一两年,马斯克就会更新一次无人驾驶即将到来的时间表,然后被证明是过于乐观。但每一次,自动驾驶技术又会往前多走一步。

没有评论:

发表评论