毫末智行是一家致力于自动驾驶,提供智能物流解决方案的人工智能技术公司。数据智能是毫末智行的核心能力,乘用车自动驾驶系统及解决方案、低速无人车生态系统及解决方案、自动驾驶相关产品研发与定制服务三大垂类产品为数据智能服务,同时,数据智能也反哺三大垂类产品。
传统机器学习训练性能瓶颈
随着机器学习在自动驾驶业务场景中得到广泛使用,机器学习平台扮演了非常核心的角色。该平台采用了存储与计算分离的架构,使得计算资源得以与存储资源解耦, 从而实现了灵活的资源配比以及便捷的存储扩展,并且降低了存储资金和运维成本。
然而,这种架构也带来了一些挑战,其中比较关键的问题体现在数据访问性能和稳定性方面:
在现实应用中,通过对于毫末机器学习平台的监控分析,我们发现 IO 性能问题会导致 GPU 等昂贵计算资源不能被充分利用。机器学习自身训练的特点导致了数据文件访问较分散,元数据压力较大。如果能够精细化地缓存元数据和文件数据,那么一方面可以提高缓存效率和磁盘利用率,另一方面也可以解决文件查找操作带来的元数据损耗。
开源让智能驾驶加速拥抱云原生 AI
为了能更好地满足大规模机器学习模型训练的高效性需求,模型训练过程中需要对数据访问取得更好的数据本地化效果。因此,我们希望达到以下目标:
为了达到上述目标,我们迫切希望找到 Kubernetes 上具有分布式缓存加速能力的系统平台。我们发现 CNCF Sandbox 项目 Fluid 正好可以满足我们的诉求。于是,我们设计了基于 Fluid 的新架构方案,经过验证比较,我们选择 JindoRuntime 作为加速运行时。
技术方案
Fluid
Fluid 是一个运行在 Kubernetes 上可扩展的分布式数据编排和加速系统,它通过数据的编排和 使用数据的应用调度,解决云原生编排框架运行此类应用面临数据访问延时高、多数据源联合分析难、应用使用数据过程复杂等痛点。
JindoRuntime
JindoRuntime 是 Fluid 一种分布式缓存 Runtime 的实现,基于 JindoFS 分布式缓存加速引擎。JindoFS是阿里云开源大数据 - 数据湖存储团队自研大数据存储优化引擎,完全兼容 Hadoop 文件系统接口,给客户带来更加灵活、高效的计算存储方案。JindoRuntime 使用 JindoFS 的 Cache 模式进行远端文件的访问和缓存,支持 OSS、HDFS、标准 S3 协议等多种存储产品的访问和缓存加速。在 Fluid 上使用和部署 JindoRuntime 流程简单、兼容原生 K8s 环境、可以开箱即用。深度结合对象存储特性,使用 Navite 框架优化性能,并支持免密、checksum 校验等云上数据安全功能。
之所于选型基于 JindoRuntime 的 Fluid,主要是基于以下考虑:
落地实践
带来性能的显著提升
我们使用了不同的模型,推理和训练相同的数据,分别以使用 JindoRuntime 和不使用 JindoRuntime 的方式推理和训练,对比训练时长,发现性能带来了显示提升:
模型在云端推理 1 万帧图片的测试结果
另一稍大的模型在云端推理 1 万帧图片的测试结果
模型使用 4 卡在云端训练 1 万帧图片帧耗时测试结果
集成了 Fluid+JindoRuntime 后,显著提升了云端训练和推理的效率,尤其是一些小模型,在云端做训练和推理 JindoRuntime 可以有效解决 IO 瓶颈问题,训练速度最高可提升约 300% 。同时也大幅度提升云端 GPU 使用效率,加速了在云端数据驱动的迭代效率。
共建开源生态,让更多行业更“聪明”
毫末机器学习训练场景对于数据读取有较高的性能要求,且对于元数据和数据缓存的精细化控制要求较高, 通过 Fluid + JindoRuntime 的缓存能力可以灵活地缓存 OSS 训练文件进行元数据和数据,提供高效的元数据和数据访问性能。基于这种方案,我们可以实现精细化控制缓存的内容,提高生产资源利用率,不仅有效缓解了 OSS 带宽的压力,也大大提高了训练效率。
当前 Fluid + JindoRuntime 能够满足生产环境的基本需要,对 OSS 的加速效果也比较明显,提供的精细化缓存策略更加高效。我们期望能够把弹性的数据加速作为毫末机器学习平台的差异化竞争能力,提升整体训练任务速度和计算资源的利用率。在未来的工作中,我们也希望也帮助社区不断演进,帮助到更多的开发者。具体来说,后面在平台中计划增加的功能包括:
作者
李范:毫末智行服务端开发工程师,负责 AI 自动训练平台的研发与算法优化。
陈铁文:毫末智行服务端开发工程师,负责 AI 自动训练平台的上层研发。
关于毫末智行
经近 10 年的积累与全栈自研,以及 90% 以上的研发投入,毫末智行在乘用车、低速无人车、智能硬件三个方面不断积累相关数据,目前已孵化出小魔盒、小魔驼、小魔盘等 10 余款成熟产品。毫末智行的快速发展也体现着更高级别的智能驾驶将在更广泛的场景中发挥作用,自动驾驶的商业应用正在驶入快车道。
致谢
感谢阿里云 JindoFS 团队的辰山、扬礼和容器团队的车漾在整个方案设计和优化过程中的巨大帮助,对生产过程中的需求给予定制化的支持,对遇到的各种问题进行快速的帮助和解决。
相关链接
[1] Fluid: https://github.com/fluid-cloudnative/fluid
[2] JindoFS: https://github.com/aliyun/alibabacloud-jindodata
更多 Fluid 和 JindoFS 相关介绍请参考以上链接。