#阿里云 #飞天发布时刻 正在直播!中企出海的「技术引擎」来了! 了解详情
写点什么

如何加速模型训练并消除云上的 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:0065

评论

发布
暂无评论

利用技术提升UI自动化测试的准确性

测吧(北京)科技有限公司

服务化UI页面结构树解析:优化UI自动化测试的实践探索

测吧(北京)科技有限公司

测试

Docker从入门到精通:ubuntu系统安装docker

霍格沃兹测试开发学社

Docker从入门到精通:Docker镜像相关命令学习

霍格沃兹测试开发学社

All in One:Prometheus 多实例数据统一管理最佳实践

阿里巴巴云原生

阿里云 云原生 Prometheus

科技人才的养成之路

天津汇柏科技有限公司

科技

华为云OBS助力物联网数据转发与存储

华为云开发者联盟

云计算 物联网 华为云 华为云开发者联盟 企业号2024年4月PK榜

商业开源MES+源码+送可拖拽式数据大屏

万界星空科技

开源 源码 制造业 mes 开源mes

Python黑科技揭秘:多窗口操作不再是难题,这些技巧让你轻松搞定

测吧(北京)科技有限公司

测试

【合合TextIn】智能文档处理系列—电子文档解析技术全格式解析

合合技术团队

OCR 格式转换 合合信息 文档转换 智能文档

平台工程在企业数字化转型中的战略价值

SEAL安全

DevOps 运维 IaC 平台工程

熬夜整理的2W字DDD学习笔记

Java随想录

Java 设计模式 DDD

自然语言处理技术原理

测吧(北京)科技有限公司

测试

深度解读《深度探索 C++ 对象模型》之C++对象的内存布局

爱分享

c++ 内存 代码分析 C++对象模型 C++编程规范

Docker从入门到精通:Docker pull命令学习

霍格沃兹测试开发学社

数据闭环的建立:确保模型发展的可持续性

测吧(北京)科技有限公司

测试

图像目标检测的PyTorch实现:探索深度学习在目标识别中的应用

测吧(北京)科技有限公司

测试

一种融合指代消解序列标注方法在中文人名识别上的应用(下)

京东科技开发者

使用Python生成二维码

京东科技开发者

利用taobao.item_search API接口,多样搜索类型满足你的购物需求

技术冰糖葫芦

api 货币化 API 测试 pinduoduo API

智能写手GPT出击!生成测试报告技巧大公开!

测试人

人工智能 软件测试 自动化测试 测试开发 ChatGPT

利用技术提升UI自动化测试的准确性

测吧(北京)科技有限公司

测试

如何在 Pytest 中添加日志记录

霍格沃兹测试开发学社

解析数据科学,探索ChatGPT背后的奥秘

百分点科技技术团队

人工智能 数据科学 百分点科技 ChatGPT

阿里云消息队列升级全新品牌 ApsaraMQ丨阿里云云原生 3 月产品月报

阿里巴巴云原生

阿里云 云原生

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