AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

如何加速模型训练并消除云上的 I/O 瓶颈

  • 2023-10-11
    北京
  • 本文字数:2211 字

    阅读完需:约 7 分钟

如何加速模型训练并消除云上的 I/O 瓶颈

我是 JuiceFS 项目的合伙人苏锐。JuiceFS 是一个为云环境设计的分布式文件系统,广泛应用于 AI 模型训练和推理阶段的数据处理,积累了较多实际场景的经验。

一、AI 应用的存储挑战


自 2019 年起,深度学习推动了计算机视觉(CV)领域的快速发展,典型应用包括人脸识别和自动驾驶。随着 CV 数据集规模的持续增长,公开数据集最大仅约 500 GB、900 万张图片,而实际业务中的自动驾驶训练集可达到数千万张图片,总量在 50 亿至 150 亿张之间。


如此规模带来了两个显著挑战:

  1. 海量小文件管理困难;

  2. 模型数据、Checkpoint 等数据体量大幅上升,推动训练从单机向多机演进,单机存储已无法满足需求,分布式存储成为刚需。


在大语言模型的发展中,如 GPT-3 的原始数据为 45 TB,而多模态的 GPT-4 迅速增长至 1 PB。此外,训练过程中需要定期保存显存状态作为 checkpoint,应对系统故障恢复,这进一步加剧了存储压力。

二、存储选型分析


目前主流的云上存储产品分为三类:

1. 块存储(Block Storage)

块存储包括云盘(如 AWS 的 EBS)和本地 SSD、NVMe 裸盘。其优势在于低时延和 POSIX 兼容,适用于单机环境。然而,容量和吞吐受限于单盘上限,难以满足当前 AI 训练的高并发大数据需求。

2. 对象存储(Object Storage)

对象存储随着公有云发展而普及,如 S3、MinIO、Ceph RGW 等。其优势是弹性扩展和极低成本,适合归档和点查访问。但由于使用 HTTP API 接口,缺乏 POSIX 兼容,存在如无法追加写、重命名性能差等问题,不适合 AI 训练等复杂文件操作需求。


对象存储以 Key-Value 模型为基础,结构上为扁平命名空间(bucket),缺乏文件系统的层级结构。因此,在目录遍历、追加写、原子重命名等方面的性能远不如文件系统,差异可能达到百倍。

3. 文件存储(File Storage)

文件存储在公有云中如 EFS、NAS,开源产品如 CephFS、GlusterFS。具备多节点共享访问、POSIX 兼容性,适合科学计算、AI 训练、大数据分析等复杂读写需求。相比对象存储,提供更好的功能完备性,但在性能和弹性方面依然存在挑战。

三、文件系统的发展演进


第一代企业级文件系统如 EMC、NetApp、OceanStore 多为软硬件一体方案,存在扩展性限制,供应链周期长。


2005 年 Google 发布 GFS 论文,首次提出基于标准硬件构建分布式文件系统的理念。随后涌现出一批软件定义存储系统,如 HDFS、Ceph、GlusterFS、Lustre、BeeGFS 等。这些系统多为面向物理机房设计,不适配云环境弹性能力。

四、JuiceFS 的设计理念


JuiceFS 于 2017 年开始研发,目标是为云环境设计一个具备弹性、低成本、强一致性、POSIX 兼容的文件系统,同时继承对象存储的成本优势。


我们在架构上将元数据引擎与数据存储解耦,并采用插件式设计:

●       数据存储层默认使用云上的对象存储,已支持 40 多种服务;

●       元数据层支持 Redis、关系型数据库、分布式 KV,以及我们自研的高可用引擎;

●       客户端通过统一的 API 支持 POSIX、HDFS、S3,提升兼容性;

●       与 Kubernetes 集成支持 CSI Driver 和 Sidecar 两种模式。

五、AI 训练中的 I/O 瓶颈本质

硬件提供了性能的上限。例如单块 NVMe 盘提供 3 GB/s 吞吐量,软件只能在此上限内尽量聚合性能。

在传统分布式文件系统中,数据冗余和副本机制会导致热点盘吞吐被多个 Workload 竞争,进而限制整体 I/O 性能。为提升吞吐,只能扩展更多磁盘,造成容量和性能绑定。


例如,在某些金融或量化交易场景,数据集体积小但访问频率极高,迫使系统“为性能加盘”,而非“为容量加盘”。这在现有文件系统下是一大难题。


此外,磁盘扩容常需数据迁移,运维成本高,影响计算任务。传统方案中,用户常采用冷热分层,将冷数据放入对象存储,热数据再迁入高性能文件系统。这种方式增加数据搬迁和资源协调成本,不利于弹性资源管理。

六、JuiceFS 如何解耦容量与性能

我们通过在客户端引入透明 Cache 层,实现容量与性能的解耦:

●       数据永久保存在对象存储中;

●       热数据通过客户端 Cache 自动加载至本地 NVMe 或共享缓存池;

●       缓存按需扩缩,支持命中策略调整(如按业务、部门划分);

●       缓存节点可动态上线/下线,不影响数据一致性与可靠性;

●       支持 Kubernetes CSI 和 Sidecar 模式部署,适配不同云原生环境。

七、实践案例

案例一:乾象投资

量化基金业务,数据量约 100 TB,但访问并发极高。他们使用 CNCF 项目 Fluid 管理 JuiceFS 缓存,实现自动扩缩容。通过对比测试,传统分布式存储在高并发下加载时间显著增加,而 JuiceFS 能保持稳定性能。


在实际环境中,任务成本从 90 元下降至 8 元,优化超过 10 倍,使用环境为阿里云的 Serverless K8s。

案例二:自动驾驶企业

管理超过 150 亿小文件(平均 100 KB),传统文件系统如 HDFS 和 CephFS 难以支撑。


在生产环境中,JuiceFS 提供 250 GB/s 吞吐与 30 万 QPS,数据持久层部署于一侧机房的对象存储,另一侧通过缓存与元数据镜像实现 1000 公里跨城高性能访问,满足异地模型训练需求。

八、总结

在 AI 训练场景下,数据集和模型规模快速增长,对存储提出了更高的吞吐、扩展性和弹性要求。


传统文件系统因性能与容量耦合限制,难以满足现代训练需求。JuiceFS 通过将对象存储与缓存机制结合,在提供强一致性和 POSIX 兼容的同时,实现了容量与性能的解耦。


此外,对于异地、多云、混合云环境,JuiceFS 支持自动数据镜像,帮助用户高效访问分布式数据资源。


感谢大家的聆听。

 

2023-10-11 17:00106

评论

发布
暂无评论

JPA + EclipseLink + 云平台 = 运行在云端的数据库应用

汪子熙

数据库 Cloud Cloud Native 11月日更

云上远程运维的最后那点担心,“云梯”帮你解决

华为云开发者联盟

运维 华为云Stack 远程运维 安全可信 云梯

基于软件分析的智能化开发新型服务与技术

华为云开发者联盟

程序员 开发 漏洞 软件分析 智能开发

TDSQL已助力20余家金融机构完成核心替换

腾讯云数据库

tdsql 国产数据库

外包学生管理系统的架构

胡颖

基于Hive Connector的openLooKeng Connector 创建复用机制剖析

LooK

大数据 hive 多数据源配置 计算引擎 openLooKeng

教你如何在Spark Scala/Java应用中调用Python脚本

华为云开发者联盟

Java Python spark JVM Spark Scala

Hazelcast在openLooKeng中的应用(Cache篇)

LooK

大数据 cache 计算引擎 openLooKeng

使用JPA + Eclipselink操作PostgreSQL数据库

汪子熙

eclipse 数据库 11月日更

【Java原理剖析系列】深度synchronized工作原理分析

码界西柚

java 11月日更

飞鹤乳业数智化转型之路

大咖说

云计算 数字化转型 数字化 企业上云

2020 年需要关注的 5 大 Android 开发技术(1),Android知识总结

android 程序员 移动开发

2020Android 开发年度总结:“这一年里我到底做了些啥,面试阿里的时候一定会问到的

android 程序员 移动开发

性能优化反思:不要在for循环中操作DB

CRMEB

浅析openLooKeng安全认证机制

LooK

大数据 ldap openLooKeng 安全认证

2020-Android-面试重难点(万字篇),android屏幕适配的五种方式

android 程序员 移动开发

新版本发布!openLooKeng v1.4.0上线

LooK

大数据 计算引擎 openLooKeng

实用推荐系统:寻找有用的用户行为

博文视点Broadview

恒源云(GPUSHARE)_U1S1,1年1度GPU云种草大会

恒源云

深度学习

助力邯钢工业4.0!TDengine在深度(平潭)节水减排项目中的应用

TDengine

数据库 tdengine 后端

用一套代码实现APP和小程序

Speedoooo

容器 移动开发 ios开发 APP开发 Andriod开发

超简单教程!自动部署openLooKeng

LooK

大数据 计算引擎 openLooKeng 安装部署

推荐!DevOps工具正越来越自动化

飞算JavaAI开发助手

双11在即,分享一些稳定性保障技术干货

老张

系统稳定性 大促 生产环境全链路压测

TDSQL | 深度解读HTAP系统的问题与主义之争

腾讯云数据库

tdsql 国产数据库

2020 国内互联网公司的Android工程师薪酬排名!看看你是什么水平

android 程序员 移动开发

超详细攻略!手把手教你如何在windows下搭建openLooKeng开发环境

LooK

大数据 计算引擎

TDSQL将发布免费版本,助力国产数据库生态完善

腾讯云数据库

数据库 tdsql

硬核干货!TDSQL全局一致性读技术详解|

腾讯云数据库

tdsql 国产数据库

2020 更新 - 腾讯 Android 面试 (已拿到月薪22K offer)

android 程序员 移动开发

极复杂编码,下载《原神》角色高清图、中日无损配音,爬虫 16 / 120 例

梦想橡皮擦

11月日更

如何加速模型训练并消除云上的 I/O 瓶颈_云原生_苏锐_InfoQ精选文章