「唯快不破」的自动驾驶,更要有数据智能的深思考与慢功夫。
「唯快不破」四个字,在当下的自动驾驶行业较量中,是一种战术,也需要极强的资源支撑。截至目前,毫末智行驾驶辅助产品已积累 100 万公里的真实数据,装车量也达到了 100 万辆。这家被比作「中国 Cruise」的公司,正在沿着预定路线快速前进,但仍在量产应用中遇到了新的挑战。
9 月 28 日,与传统观念中发布会的「花哨感」不同,毫末智行第三期品牌日在一种「理工男」的氛围下进行。这场活动更像是一场技术干货分享会,市场情况和量产产品较少被提及,花了更多时间分享有关数据智能的新思考。「我们发现了大量量产前想不到的情况,现实世界远远比我们想的复杂。」毫末智行 CEO 顾维灝表示,有许多问题在规模化量产后才会遇到,比如车端感知可能遗漏很多潜在的高价值场景,能否挖掘出更有价值的数据,将海量数据训练的比别人更快,将决定谁能占领自动驾驶制高点。虽然遇到许多诸如此类的意外,但毫末智行搭建的数据智能闭环,仍可解决这些问题。顾维灝曾表示:「想要真正训练出高普适性的自动驾驶系统,首先必须用更快速度收集到大量真实数据,其次必须有能力快速将数据用于算法训练。」背靠长城汽车的量产优势,毫末智行能够从用户端获取足够多的原始数据。但而后的步骤更加重要,作为商业化技术,不但要有能力发现高价值数据、快速用于训练模型,同时还要保证这个过程足够经济。目前,毫末智行每天可产生几千万桢数据,如何找到对当前能力最有价值的数据,成为了能否高效训练模型的前提。毫末智行把找到有价值场景数据的行为叫做诊断,通过云 + 端上模型对照的方式,快速找到有价值数据,以此为核心优化现有模型。毫末智行在云端和车端部署两个模型,云端模型叫做 Fundamental Model,是一个基于 Transformer 的全任务感知大模型。车端的小模型是 Domain Model,通过灰度测试的模式感知环境信息,但这种这种方式不够完备,可能导致很多潜在的高价值场景被遗漏。这些遗漏很多都是受到车端模型性能限制导致的误判,因此它们通常也意味着是车端模型的缺点,也是更高效训练模型的方向。为此,毫末智行通过云端大模型,对比验证车端模型的判断结果,相当于建立了一种对照筛选机制。这种选型可以更高效的找到有用数据,之后再针对这些数据补充足够的样本,训练现有模型。顾维灝在现场介绍:「通过这种自动诊断,我们可以发现小目标漏检、目标被遮挡和截断。同样,自动诊断也包括收费站、异形车辆、雨天、黑夜的目标漏检问题。」毫末智行现在已经有了百万公里的真实数据,通过无监督聚类自动在里面找到更多相似数据,先以无监督学习方法将图像向量化,转化为特征向量,然后通过谱聚类将相似的图像聚类在一起。得到聚类结果以后,会找到大量与问题场景相同类别的相关数据作为正样本相似易混的其他类别数据作为负样本,并且在类别当中只挑选类中心和类边界附近的数据出来提升标注效率。聚类算法不但具备处理大的数据集的能力,而且对噪声不敏感,支持处理任意形状,能发现任意形状的簇,包括有间隙的嵌套的数据。另外在数据输入属性方面,处理结果还与数据输入顺序无关,算法可以独立于数据输入顺序进行计算,并有处理多属性数据的能力,也就是对数据维数不敏感。「通过这种方式,可以有效的与『异源数据』进行混用,提升最终模型的效果。」顾维灝做出总结。另外,这种全自动化的过程,还可以大幅节约人力,保证效率,有利于投入商用。更适用于计算机视觉的 Swin-Transformer毫末智行云端平台采用的 Swin-Transformer,复杂场景的感受、观察比传统 CNN 更好,同时也更能兼具训练速度与准召率的平衡。Transformer 原本用于自然语言处理领域,优势在于利用自注意力机制捕获全局上下文信息,从而对目标建立起远距离的依赖,提取出更强有力的特征。在数据量充足的情况下,Transformer 可以稳定提升准召率,而 CNN 却由于难以获得足够大的感受野,面对大的数据集存在长尾问题。现阶段,Transformer 在分类(ViT),检测(DETR)和分割(SETR),三大图像方面的应用都取得了不错的效果。同时,它也可以有效利用海量数据进行无监督的预训练。但是,Transformer 应用于计算机视觉领域要面临两大难题:固定的 token 尺度无法适应大范围变化的目标尺寸;自注意力机制会带来非常庞大的计算。毫末智行所采用的 Swin-Transformer 是一种改良架构,通过小图像片元和逐层进行邻域合并的方式构建层级特征表达,将自注意力限制在一定范围内,大幅度削减了计算量,同时也使得非局域窗口间的交互成为可能。此外,毫末智行还在数据并行做出了更多思考。但在如今的大模型时代,巨量的模型参数给模型训练带来很大的难度,稍微改动一下网络结构、参数配置、或者是更换数据,迭代一次得到结果的周期是要近百个小时。但这种调整经常发生,严重影响了创新速度。因此,不管是 CNN 还是 Swin-Transformer,优化提速都非常重要。毫末智行为了提升训练速度,除了常见的数据并行之外,还做了更精细的模型并行方法。针对 Swin-Transformer,毫末智行采用了数据和模型同时并行的混合方案: 将模型横向拆分,将不同层对应的 block 组,拆分到不同显卡的显存中,腾出空间存放更大的 batch size 对应的向量组。此外,毫末智行还优化了模型前向计算。当后向传播过程中,中间结果的显存被占⽤,包括 Optimizer States, Gradients Parameters 等,通常可以减少 20%-30% 的整体显存占用量。顾维灝表示:「基于 Swin-Transformer 的优化效果,整体可以提速 50%-80%。」在获得更快迭代的模型后,如何保证模型判断的准确度,也是很重要的一点。「毫末智行开发了语义场景的自动化转化工具和参数泛化工具,可以将 CSS 中场景库的描述文本自动转化为仿真测试场景,并且在合适的范围内离散采样得到巨量的仿真测试用例。同时通过在云端并行,每天可以自动生成一万多个仿真测试用例。」顾维灝对这项技术做出了详细介绍。可以简单打个比方,如果要做一个无保护左转的仿真验证,系统可以自动调整道路宽度、遮挡等环境信息,以及交通参与者类型、数量和位置,衍化出众多不同的无保护左转测试环境。据毫末智行介绍,仿真验证的重点是交互过程,这方面可以做到 100% 还原,但场景自动转化还需要看 CSS 库中是否有对应材质。此外,硬件性能也是决定模型判断结果准确度的因素之一。毫末智行明年中期将与长城 SOP 800 万像素的产品,可以看清 150-200 米左右椎桶,而且是清晰到纹理细节。目前,市面上主流的还是 100 万像素摄像头。毫末智行在活动上还展出了自动驾驶计算平台 ICU 3.0,芯片部分是高通 8540+9000 组合,单卡算力达到 360TOPS,未来最多可以扩展到 4 卡,算力可达到 1440TOPS。该平台已经开始上车测试,顾维灝表示:「Int8 的算力有效率超过 50%,单卡 144M 的高速缓存可以大幅加快 AI 计算速度,也可以同时支撑多个高分辨率的视频流进行实时感知推断,端到端的时延已经低于 30ms。」另外,毫末智行在高通芯片上也做了很多小模型,主干网是经过优化后的 Resnet50。基于这个主干,毫末智行做了一层多特征融合层,这样后续的车道线和障碍物识别等任务就可以基于共同的特征要素进行,提高了识别效率,降低多次特征计算所产生的负担。在感知输出方面,毫末智行仍采用先判断后融合的松耦合方式,但其要求单张图片也探测到深度信息,有助于提升整体的感知能力。据顾维灝透露:毫末智行部分车端摄像头,也用到了 Transformer。无论是松耦合还是紧耦合,提升单传感器的感知能力,都是正确方向。顾维灝表示:「所有的一切都要以安全为基础,安全是 1,其它是 0。」这种安全是非常系统性的考虑,比如将协同场景安全、功能安全、预期功能安全放在最高层面。不仅通过研发体系优化,保证安全设计,还通过仿真验证、调低接管标准、设计安全冗余等维度,保证全流程的安全性。同时,顾维灝还透露了他们选择高通芯片也有安全方面的考虑:「打动我们的还有芯片结构,除了 AI 计算的部分,还有车规级的安全设计。」搭载该芯片的自动驾驶计算平台 ICU3.0 已具备三层安全结构:第一层是高算力 SOC 芯片上的主功能逻辑以及卫兵系统,会监控 SOC 上的软件错误和 ODD 失效;
第二层是高可靠性芯片上的芯片级监控系统,负责监控 SOC 芯片硬件失效;
第三层是具有独立传感器的预备系统,可以在主系统失效的情况下紧急生效,保证系统的 Fail Operational。
顾维灏曾提出,自动驾驶产品为王、规模制胜。他表示,规模是所有自动驾驶制胜的必然基础,算法再强也不能取代数据的不够。3 年时间,毫末智行辅助驾驶系统已达到百万装车量,积累百万真实数据。打好基础,毫末智行视角转向了数据智能。快速奔跑背后的深思考与慢功夫,让毫末智行正在完成从「感知智能」到「认知智能」的转变,实现自动驾驶的新布局。