自动驾驶数据上云及云上数据管理实践

行佑
  • 收获赞:4
  • 擅长领域:这个同学很专业,但是有点神秘哟~

本文从自动驾驶现状及客户的需求着手,提出合理的解决方案以解决用户的痛点。

当前智能驾驶发展现状

自动驾驶

自动驾驶解决方案公司、造车新势力开始进入自动驾驶业务的落地试运营阶段。这些企业主要分为两类,一类是技术外溢型,主要是科技巨头和创新型科技公司,代表企业有百度、华为、文远知行、元戎启行、小马等。在汽车产业智能化、网联化、电动化的趋势下,原本的技术储备和研发实力,支撑它们顺势而为切入汽车产业,从事自动驾驶研究,属于技术路线的自然延伸。它们主要向主机厂、Tier1企业等提供自动驾驶解决方案,在汽车百年未有之变局中获得机遇。另一类是业务外溢型,主要是车企和互联网公司,代表公司有小鹏、蔚来、滴滴、美团、京东等。它们基于原本主营业务,比如造车、共享出行、配送等业务场景,在无人驾驶的未来趋势下,或基于产品迭代,或基于竞争,或基于降本增效的考虑,走上自动驾驶的研发道路。

从运营场景上,主要分为以下5个主要场景:Robotaxi(无人出租)、Robotruck(无人卡车)、智能驾驶Tier 1(一级供应商)、无人配送和Robobus(无人公交),也有港口、矿山、机场、园区等封闭场景的无人驾驶。

智能驾驶从拼数据、拼测试里程的上半场转移到实际规模化商业运营的下半场。成本,智能驾驶在复杂场景下的决策控制效果成为胜负的关键因素。智能驾驶在复杂场景下的决策和控制很大程度依赖核心的自动驾驶算法,而自动驾驶算法软件如何足够有效,就需要软件获取足够大足够多的场景样本,重复不停地在实际或模拟环境仿真和重新学习。从云存储角度去看,围绕海量样本数据稳定采集、数据便捷管理、高效率的数据训练对于客户来说就变得非常重要。

客户在数据存储场景下的需求

目前,阿里云存储服务的自动驾驶客户普遍使用了OSS+CPFS组合存储方案。OSS作为采集数据持久化存储,CPFS作为学习训练、仿真等场景下的高性能存储。部分日采较大的自动驾驶客户选择使用闪电立方MINI帮助其快速上云。在跟进客户的全链路产品使用过程中,围绕稳定性及效率我们发现存在如下问题:

(1)闪电立方mini,RIAD盘多次重组问题

A公司,专注于干线物流卡车的自动驾驶解决方案公司,客户采购阿里云存储的闪电立方MINI作为nas挂载在卡车车机的工控机上实现采集数据(视频、图片)的写入存储。在产品技术服务初期,我们接到客户车辆工程师反馈闪电立方出现磁盘raid组重建的状况(需要额外耗时数小时),影响到了他们日常采集的工作任务。经过排查发现导致该问题的因主要在客户司机端的操作和本身介质层面引起:

  • 采集车驾驶员在存储设备运行情况下非规范关机,出现多次强制断电。

  • 本地OFFICE车间工程师将不同组raid盘混插。

  • 同组RAID硬盘在日常采集过程种出现坏盘情况。

(2)处理和迁移任务串行,等待时间长

OSS做为自动驾驶数据采集数据存储的第一站,在对数据迁移至CPFS存储进行训练之前,需要在此之上对数据进行清洗和分发标注等相关业务。当前场景下客户需要等到文件批处理完成之后(往往数小时)再开始数据迁移,需求有更高效的流式迁移服务来提升整体训练业务的效率。

(3)OSS-CPFS数据复制慢

为了方便数据在OSS和CPFS之间迁移,客户一般采用OSSFS的方式,在CPFS和OSS之间通过统一的文件语义进行数据复制管理。但由于OSSFS吞吐依赖挂载所在机器的磁盘性能,数据迁移工程变得低效,影响了客户后续的训练业务。

解决方案实践

(1)解决在客户生产过程中出现的raid盘重组问题,需要从客户侧的操作规范以及存储产品方案上的升级入手。

客户侧:围绕A客户实际业务场景,我们增加了车载场景下的驾驶员使用操作规范手册。

同时,由于考虑其他未知风险情况下卡车熄火导致的闪电立方无法被供电,异常关机。我们推荐客户额外在车机上加装UPS提供掉电保护。 UPS产品方案侧:通过和车载驾驶员的沟通,了解到在车载场景下,卡车在往返高速与本地office过程中会有诸多颠簸路段,在此过程闪电立方MINI中运转的机械硬盘磁头就有可能撞到磁盘上,从而产生坏道导致坏盘不可读。定位到该情况的影响后,我们将该场景下的闪电立方统一置换为SSD,保证该车路场景下不会出现震动导致的坏盘(产品交付客户更新之后,目前暂未发生坏盘情况的发生)。

(2)为了有效解决数据在OSS和CPFS之间流动所出现的等待和传输慢的问题,CPFS的数据流动功能上线,帮助客户更好的解决上述第二、三问题,架构方案如图所示:元数据自动同步:如上图所示,在原始数据上云后,经过数据脱敏等处理流程,处理后的数据被重新写到OSS对象存储的新目录中。通过在cpfs配置与OSS对应bucket的同步和目录关系,其meta元数据信息会自动同步到cpfs对应目录下,使得客户训练侧计算集群能很及时的发现新处理好的文件。

文件同步:客户训练侧计算集群发现文件后,可启动文件的手工预读(API-StartDataFlow,https://help.aliyun.com/document_detail/336905.html),将文件数据迁移至CPFS。为提升迁移过程中的效率,CPFS通过自动化并行任务充分利用数据流动网络带宽,客户可通过API-ModifyDataFlow(详细参考:https://help.aliyun.com/document_detail/336906.html)控制600MB/1.2GB/1.5GB 三挡迁移带宽来满足数据在OSS-CPFS中传输速度的需求。

总结和思考

自动驾驶算法软件的成熟离不开数据,在当前智能网联、智能驾驶市场火热的背景下,客户对于数据存储和管理的稳定性、极致性能需求也永无止境。存储产品在这个领域是否能做到更加极致?比如仅对客户提供唯一的存储池,既提供持久化存储又提供高性能计算场景。亦或在车载mini存储场景下,我们的闪电立方可提供直接上云的能力(目前已在规划测试中),减少硬盘数据的多次流转。期待自动驾驶的发展,也期待我们的云存储产品随着智能驾驶业务的发展始终保持领先。