自动驾驶下半场的“入场券”发表时间:2023-07-31 15:07 自动驾驶战争的上半场拼的是硬件和算法,下半场拼的则是数据和将数据点石成金的能力,即数据闭环能力。 然而,笔者在跟业内人士的交流中了解到,目前,通过量产车大规模采集数据来支持自动驾驶系统迭代升级的设想尚未实现。有的公司尚未搭建好这样一套数据闭环的流程;有的公司虽然搭建好了流程,也已经采集了一些数据,但是由于数据闭环系统还不够先进,因而尚未将数据很好地用起来。 传统的自动驾驶数据闭环,存在着大量不够高效的部分。例如,几乎每家公司在数据标注环节都需要依靠“人海战术”,需要依靠人工一个个地对采集回来的数据做场景分类等。 幸运的是,我们处在一个技术快速更新的时代,随着深度学习技术的发展,尤其是,随着大模型的潜能逐步得到释放,人们很欣喜地发现,数据闭环中的很多环节都可以实现自动化或者半自动化,效率也会显著提升。 由于参数量大带来的容量优势,大模型的性能和泛化能力相比小模型显著提高。在数据预处理、数据标注等传统数据闭环中需要消耗大量人力且效率低下的环节,大模型的表现都可圈可点。很多公司都在积极探索,希望将大模型运用于数据闭环从而加速算法迭代。 大模型,或将助力数据闭环步入2.0时代(自动化程度低的时代可以称之为数据闭环“1.0”时代),从而影响到自动驾驶下半场的竞争态势。 然而,训练大模型需要大量的数据以及极高的算力,对底层的硬件设施以及AI研发平台都有很高的要求。 特斯拉为了打造一套效率高的数据闭环系统,还自研了DOJO超算中心,目前,特斯拉的Autopilot系统已收集了超过20.9亿公里的路采数据。在某种程度上,在数据闭环系统上的投入,是特斯拉得以在自动驾驶研发上大幅领先的原因之一。 然而,特斯拉这种做法的投入也是巨大的。据悉,2024年,特斯拉在DOJO超算上的投入将超过10亿美金。在国内,有这个财力的公司屈指可数。 那么,对国内的主机厂和自动驾驶公司来说,一个更可行的选择就是,上云,借助于云厂商开放出来的大模型能力、算力、工具链等基础设施及开发平台,快速步入数据闭环2.0时代。 尤其是,假如云厂商具备全栈自研能力,能提供一整套基础设施,那么主机厂和自动驾驶公司在使用时,就无需考虑不同公司提供的工具接口不一致等问题,可以减少很多适配的工作,从而进一步提高开发效率。
数据闭环1.0时代,人们还没有准备好应对自动驾驶系统研发对大量数据的需求,各个模块的自动化程度不够高,效率也不够高。 数据闭环2.0时代需要一套能快速处理大量数据的系统,让数据在系统内更快地流转,提高算法迭代的效率,让车越开越聪明。 在7.21华为云智能驾驶创新峰会上,华为云自动驾驶开发平台重磅发布,在盘古大模型的加持下,该平台在corner case的解决能力、数据预处理能力、数据挖掘能力、数据标注能力方面,相比于传统的数据闭环体系,都表现出了明显提升。 1.1 盘古大模型助力corner case的解决 传统解决corner case的方式主要是通过实车路采尽力采集到足够多的相关数据,然后训练模型,从而让模型具备应对能力。这种方式成本较高而且效率较低,更何况,很多特殊场景出现的频率特别低,实车很难采集到。 近年来,人们发现可以采用NeRF技术做场景重建,然后,通过调整一下参数如改变视角、改变光照、改变车辆行驶路径的方法来模拟一些在真实世界里出现频率较低的场景(合成数据),作为实车路采数据的补充。 早在2022年初,Waymo便开始将基于NeRF技术生成的合成数据用于自动驾驶的算法训练中。 今年CVPR的highlight paper之一UniSim: A Neural Closed-Loop Sensor Simulator也是探索用NeRF技术做场景重建。在这篇文章中,来自无人驾驶卡车公司Waabi的作者将场景分为三部分:静态背景(如建筑、道路和交通标志)、动态物体(如行人和汽车)和区域外物体(如天空和非常远的道路),然后采用NeRF技术来分别建模静态背景和动态物体。 作者发现,采用NeRF技术重建的场景不仅高度逼真,而且方便扩展,研发人员只需采集一次数据就可以做重建。 在国内,华为云基于盘古大模型开发的场景重建大模型也结合NeRF技术。该模型可基于采集的路采视频数据做场景重建(合成数据),普通用户很难用肉眼分清这些重建的场景跟真实场景有何区别。这些重建的场景数据作为真实路采数据的补充,可以用于提高感知模型的精度。 具体来说,场景重建大模型输入的是一段一段的路采视频,在模型对这些视频做场景重建后,用户可以编辑天气、路况以及主车的姿态、位置、行驶轨迹等,然后生成新的视频数据。 例如,用户可以将原始视频中的天气从晴天改为雨天,也可以将白天换成黑夜(如下图所示),还可以将宽阔平整的路面变成泥泞小道。
也就是说,用户可以通过编辑场景元素来生成更多数据,而无需全部依靠路采。尤其是,对于一些不太方便采集的数据,例如极端天气下的场景数据,用户可以采用场景重建的方式来生成。 华为云的一位工程师告诉九章智驾: 我们拿场景重建的数据来训练感知算法时发现,这些数据确实对算法训练有帮助。同时,我们的大模型正在不断提高这些虚拟场景的覆盖度,争取让这些数据能够被更广泛地使用,从而让自动驾驶算法可以应对更多的corner case。 对corner case的解决能力提高,意味着自动驾驶系统在车辆行驶中的参与度提高,用户体验更好,最终可以带动自动驾驶的渗透率上升。 1.2 盘古大模型助力数据预处理 车端采集的数据一般需要经过预处理,然后再进入挖掘和标注流程。预处理的主要作用是给数据分类,去掉不需要的数据,保留重要场景的数据。 传统的采用人工回放来给数据分类的方式非常耗时,假如用大模型来理解视频的内容,自动给这些视频数据分类,就可以大幅提高工作效率。 用模型来给视频分类的难点在于,如何通过语义的方式解锁视频的场景,华为云基于盘古大模型开发的场景理解大模型可以对视频数据做语义理解然后分类。用户上传视频数据后,模型可以识别出关键信息,按照视频类别、出现的时间进行标记,如下图所示,同时支持组合检索。
经测试,场景理解大模型对天气、时间、物体等的识别精度都可达90%以上。 据悉,此种方案已在某主机厂项目中落地。工程师仅需调用华为云提供的API就可以用场景理解大模型来完成给视频数据分类的工作。 1.3 盘古大模型助力数据挖掘 在车辆将路采数据回传到云端后,工程师通常需要挖掘出价值较高的数据。传统的基于标签来挖掘长尾场景的方式一般只能分辨已知的图像类别。 大模型有较强的泛化性,适合用于对长尾数据的挖掘。 2021年,OpenAI发布了CLIP模型(一种文字——图像多模态模型),该模型可以摆脱对图片标签的依赖,在无监督预训练之后将文本和图像对应,从而基于文本对图片进行分类。 这意味着,工程师可以采用这样的文字-图像多模态模型,用文字描述来检索drive log中的图像数据,例如,‘拖着货物的工程车辆’、‘两个灯泡同时亮着的红绿灯’等长尾场景。 根据笔者与业内人士交流得到的信息,一些自动驾驶科技公司已经开始基于CLIP来实现以文搜图,从而提高挖掘长尾数据的效率。 华为云基于盘古大模型开发了多模态检索大模型,多模态检索大模型除了可以实现以图搜图、以文搜图外,还可以以文搜视频。例如,工程师希望找到前车异常停止的视频片段,可以直接用“前车异常停止”来搜索相关的视频片段。 1.4 盘古大模型助力数据标注 根据估算,头部自动驾驶公司每年大概要标注上百TB甚至是PB级的数据需要标注,标注成本高达上千万甚至上亿。 为了降低标注成本,同时提高标注效率,很多公司都在开发自动标注模型。 但目前,大部分公司的自动标注模型(小模型)都存在着不够通用的问题。 在实践中,工程师通常需要针对不同的场景训练不同的标注模型(比如,标注红绿灯的模型,不能用来标注车道线),重新训练的过程可能需要消耗大量的数据及算力,成本较高。 在盘古大模型的基础上,华为云开发了预标注大模型。借助预标注大模型,在面对新的场景时,工程师无需从头开始训练,仅需对基础模型做“微调”,就可以得到针对新场景的预标注大模型。 根据华为云工程师的介绍,针对不同类型的自动驾驶场景,预标注大模型仅需用少量数据(几百到几千张图片)做为期1-2周的训练就能达到较为理想的预标注效果。 并且,针对2D、3D标注任务,预标注大模型可以实现高精度标注。采用预标注大模型做预标注后,标注公司基本只需要再做一些质检,这样可以显著降低标注成本。 说一千道一万,大模型最终还是要接受用户的检验。那么,用户该如何调用大模型呢? 实际上,再通用的大模型,也不会是万能的。大模型的“大”,主要强调其在底层能力方面的通用性,而不是说它有能力解决“每一个细分场景的中每一个细节问题”。在具体落地的过程中,大模型往往要分多个层级,到最终的执行端,真正“干活”的可能是“中模型”,甚至是“小模型”。 在这里,我们以华为云发布的盘古大模型3.0为例来做个简单的阐释。 盘古大模型3.0是一个分层的解耦的开放架构,总共分为3层,如下图所示: 最底层是L0级的基础大模型,它包括语言大模型、视觉大模型、多模态大模型、预测大模型、科学计算大模型等5个大模型。L0级基础大模模型对应的能力,类似于人的看、听、说、读、写、算、思等基础能力,是无论在哪个行业、无论干什么工作,都需要用到的。 在L0级模型的基础上,华为云针对不同行业开发了L1级的行业大模型,包括政务大模型、金融大模型、制造大模型、矿山大模型等。每个L1级行业大模型都跟特定的行业强耦合。 在L0级基础模型和L1级行业大模型的基础上,华为云还给细分场景的用户生成了一些解决特定问题的任务模型,即上图中的L2级场景模型。本文第一章提到的预标注大模型、场景重建大模型等都属于L2级场景模型。 除此之外,在L0级和L1级大模型的基础上,华为云给用户提供了模型开发套件,用户可以用自己收集的数据对L2级的场景理解模型做微调,得到自己的场景模型。 以场景理解大模型为例,用户可以直接调用华为云的API来使用场景理解大模型,也可以加入自有数据训练自己的场景理解大模型。 由此看来,华为盘古大模型3.0的进化是“双轮驱动”:一方面,华为云通过不断地收集公开数据让基础大模型学习通用知识,并且让行业大模型学习行业知识(据悉,华为云的每个行业大模型的训练数据都超过了500亿tokens);另一方面,用户也可以不断地收集适用于自己面对的场景的数据,提高微调后的场景大模型解决特定问题的能力。 在这种机制下,已训练好的大模型,只需少量补充训练样本,就有可能快速迁移到新的场景,大大降低应用推广成本和门槛,提升使用效率。 在实践中,用户要真正用好大模型的能力来为数据闭环赋能,还需要一系列的基础设施。 目前,自动驾驶产业碎片化严重,即使是把范围缩小到数据闭环系统,我们也会看到,在整个生态中,不同的供应商占据着各自的一小部分。体现在研发上,就是数据格式多种多样、工具链的接口不一,主机厂和自动驾驶公司不得不做很多的适配工作,研发的协同效应较差。 如果能有一家供应商可以提供数据闭环工具链的全栈解决方案,那下游客户在使用大模型做数据闭环时就会轻松许多。 在国内,华为云就是极个别具备自动驾驶数据闭环工具链全栈自研能力的云厂商之一。除了给用户提供大模型的能力外,华为云也可以提供数智融合架构、ModelArtsAI开发生产线、昇腾AI云服务等一系列配套设施,用户可以在华为云的自动驾驶开发平台上同时实现数据加速、算法加速和算力加速。
3.1 数智融合架构实现数据加速 在实际使用中,“数据孤岛”是困扰各位研发工程师的一大问题。数据孤岛问题包括但不限于数据格式不一致、工具链接口不一、工具分散在不同的平台导致协同困难等。 针对这些问题,华为云一方面尽力找到各家主机厂以及自动驾驶公司的需求“公约数”,将工具链打造得更加通用,省去很多适配工作;另一方面把数据生产线和AI生产线融合到一起,通过一个统一的原数据管理平台实现数据的无缝流转,在该平台上,工程师可以很方便地在全域数据内使用预置AI算法,将盘古大模型以API和工作流的方式集成到整体的数智融合架构中,从而可以很方便地调用盘古大模型的能力。
3.2 ModelArts AI开发生产线实现算法加速 ModelArts AI开发生产线包含DataTurbo、TrainTurbo、InferTurbo 3部分,分别提供数据加载、模型训练、模型推理的加速工具,倍速提升模型训练效率。 3.2.1 DataTurbo实现数据加载加速 当模型变大后,用于训练模型的数据也会相应增加,相应地,数据读写效率就成为了一个对模型训练速度影响很大的因素。 DataTurbo将计算集群本地的高速SSD盘组建成统一的分布式缓存系统,算法从后端OBS初次读取训练数据时系统会自动将数据缓存,后续训练数据从近计算缓存直接获取,大幅提升数据加载性能。DataTurbo的分布式缓存数据读取带宽可以做到随计算集群节点扩容而线性扩展,最高可达1TB/s以上。 3.2.2 TrainTurbo实现模型训练加速 神经网络由很多基础的算子排列组合而来,因此,优化算子是提高模型训练效率的重要方式。
主流的AI训练框架(如PyTorch、TensorFlow等)由于需要尽可能地保证通用性,提供的算子一般都很基础。 在实践中,企业可以根据自己的需求,对算子做一些针对性的优化。华为、商汤、字节跳动、百度等公司都开发了自己的AI训练框架,并对算子做了针对性的优化,从而提高模型训练效率。 其中,华为由于从底层硬件到工具链再到AI模型的训练框架,都实现了全栈自主,那么,工程师就更容易对算子做软硬联合调优,因而,在TrainTurbo中,用户可以享受到更极致的训练性能。 3.2.3 InferTurbo实现模型推理加速 在模型推理环节,InferTurbo采用算子并行、多流并行、显存复用、低bit量化等方法,针对不同的框架、操作系统进行调优。 以多流并行为例,推理任务中通常需要执行函数计算、数据在多个GPU设备间拷贝或转移等几个操作。InferTurbo把一个大任务中的上述几部分拆分开,放到多个流中,每次只对一部分数据进行拷贝、计算和回写,将数据拷贝和函数计算同步执行,形成流水线,能获得非常大的性能提升。 经过多种方式的优化后,InfeTurbo在确保模型精度的前提下,可以将推理性能提升2-5倍。 3.3 昇腾AI云服务实现算力加速 为了应对模型训练的算力需求,各家科技公司、主机厂等纷纷开始自建/合建算力中心,打造算力集群。华为云在乌兰察布和贵安数据中心同时上线了昇腾AI云服务,为模型训练提供澎湃算力,单集群性能可达2000P Flops,给业界提供了更好的选择。大规模的算力集群通常会面临业务连续性的问题,因为单点故障就可能导致整个大规模分布式任务失败。 当然,这一问题并非无解。至少,华为云就不会被这个问题困扰。 为保证训练任务不中断,华为云开发了断点续训的方法,假如在训练过程中出现了单点故障,系统会将这个点排除掉,用新的节点替换掉故障节点,并且原地重启。据悉,昇腾AI云服务可以实现千卡训练一个月以上不中断,断点恢复时长不超过10分钟。 今年以来,各大车企都在积极进军城市NOA。自动驾驶技术有望“跨越鸿沟”,从科技尝鲜者的圈层突破到大众圈层。
当然,并非所有公司都有能力抓住这一契机。 如果不出意料的话,我们将会看到,自动驾驶在进入下半场之后,那些无法在数据闭环能力上取得突破的公司,将一方面同时被“高成本”和“低效率”拖累,另一方面因为对corner case的解决能力无法取得突破而难以令终端消费者满意。 事实上,只有那些真正掌握了数据闭环能力的公司,或者更近一步说,那些能将大模型等技术运用好从而打造出一套高效的数据闭环系统的公司,才算是拿到了自动驾驶下半场的“入场券”。 当然,对数据闭环能力的掌握,未必要所有东西全部通过自研来实现。因为,普通公司的资源不是特别充沛的情况下,把自研做得太重,反而可能导致竞争力被削弱。在这种情况下,自己只研发数据闭环系统的应用层,而底层基础设施跟有实力的供应商来合作,是更可行的选择。 在这样一个行业拐点时刻,华为云将盘古大模型、算力、工具链等数据闭环基础设及开发平台开放出来,将帮助主机厂和自动驾驶科技公司加速自动驾驶的算法迭代。 我们期待,在产业界各方的努力下,自动驾驶技术能早日取得突破,让大家感受到科技带来的便利。 END |