一、系统背景
目前,AI/ML技术及应用(包括LLM大模型,通用生成式AI等)得到了快速的发展及应用。AI系统对底层高速数据访问的需求也日益强力,目前业界存在多种解决方案,但都存在一些成本或性能方面的挑战,迫切需要一套面向AI的高性能数据服务平台。
1.1 AI/ML面临的数据挑战及问题:
1) GPU短缺:”目前 GPU 比毒品更难获得…” (Tesla 埃隆·马斯克);即使是大型云供应商,分配也需要12个月或更长时间
2) GPU利用率低:即使得到了GPU,GPU利用率也很低(可能由于数据访问问题); GPU花费时间等待数据加载/预热,而不是计算
3) AI基础设施昂贵:GPU资源及专用高性能存储等基础设施价格高昂,造成大规模AI/ML计算的成本问题
4) 海量数据处理/访问低效:通用人工智能通常需要海量的数据做支撑,这也要求企业有效地存储、管理及高性能访问大量数据
5) 模型训练/上线时间长:AI/ML数据访问/服务性能减缓了AI/ML模型训练及模型上线时间,影响企业快速构建部署模型的能力
1.2 AI/ML 需要的存储/缓存/数据访问系统
1) 高性能并行存储系统:GPFS/CPFS, Lustre等
优点:高性能,POSIX兼容性好 缺点:成本较高;扩展性较差
2) 分布式对象存储系统:AWS S3, OSS, MinIO等
优点:成本很低,扩展性好 缺点:性能一般;POSIX兼容性受限
3) 存储中间件/加速系统:JuiceFS, JindoFS等
优点:成本适中,性能较好 缺点:数据格式私有; 数据治理/运维成本高
4) 数据编排/缓存系统: AIDSP
优点:成本较低,性能较好,数据运维简单 缺点:POSXI兼容性受限
上图为辰星网科联合创始人 CTO 张青锋
1.3 AI/ML模型训练需要的存储/缓存/数据访问系统架构选型标准
1) 总体成本:使用较低成本构建面向AI计算任务的高性能数据访问平台 - 对象存储 + 缓存系统
2) 性能及协议支持:提供高性能数据访问接口,多数据访问协议兼容(POSIX, S3,HDFS等)
3) 数据格式及架构开放:支持透明数据格式(保持原始存储目录和文件格式不变); 无厂商/技术锁定
4) 数据治理/运维:降低数据治理/数据运维对训练流程/效率影响(最少数据迁移时间、简化Data Loader, Data Pipeline流程, 减少运维等)
二、系统架构及主要技术特点
AI高性能数据服务平台(简称AIDSP)针对大语言模型(LLM)、大规模自然语言处理(NLP)及计算机视觉(CV)等AI/ML计算提供高性能数据访问,覆盖AI计算从数据处理、特征工程、模型训练、模型部署等全流程生命周期,提供多源异构数据连接、高性能数据缓存服务、数据接口转换及数据目录管理等功能。
统一命名空间能力:跨集群、跨云,提供统一存储抽象
降低跨集群、跨数据中心的数据访问技术实现成本。
提供了全域数据流通、融合、管理的能力基础。
统一数据访问/编排能力:统一数据访问入口,屏蔽存储技术选型可能对上层计算、应用的影响
降低新计算/应用适配多种存储系统的成本;降低存储系统迁移、升级、变更时,上层计算/应用的改造成本。
整体提升对新的计算、存储技术的适配能力。
统一分布式缓存加速能力:提升数据访问IO性能、降低跨域网络开销
提升计算、应用的性能,提高计算资源的利用效率。
降低跨域网络开销成本,特别是一些带宽资源比较紧张、成本比较高的情形。
统一策略化数据管理能力:不影响上层数据计算、应用的情况下,实现数据的冷热分层存储提供一种新的数据冷热备份的技术方案。
三、系统技术架构及主要功能
AI高性能数据服务平台提供的主要核心功能包括如下:
1. 统一命名空间
存储和计算一般是整个AI数据架构中最大的两块。现在的存储选型非常多,在大数据里有传统的HDFS,而越来越多的云原生应用更多的是使用对象存储,比如AWS集群、MINIO集群,云上S3对象存储等等。原来这些对象存储之间接口会存在不一致,Hadoop是HDFS接口,而对象存储一般都是S3标准。原来跨不同的存储计算,需要做不同的接口适配,很多时候用户需要提供一个统一的虚拟存储层,提供统一的数据访问接口。
AIDSP可以做一个统一的存储网关,连接本地MINIO集群、HDFS集群、云上的S3的集群,在这些之上可以同时提供HDFS接口、S3接口,甚至提供Posix接口。针对上层的无论大数据Spark计算引擎,还是Pytorch机器学习的引擎,都可以提供统一的数据访问,相当于实现了一个虚拟的存储网关,不但实现了存储接口的适配,还可以提供缓存服务,使数据更靠近计算,提升计算性能。
AIDSP实现底层存储系统的集成和统一命名空间的功能,可以借鉴Linux文件系统的mount功能的实现原理。以下是AIDSP实现这一功能的基本思路:
挂载点的定义: 类似于Linux文件系统中的mount命令,AIDSP需要定义挂载点用于指定底层存储系统的路径。每个底层存储系统都有一个对应的挂载点,该挂载点表示在AIDSP中访问该底层存储系统的入口。
统一命名空间构建
在Linux中,mount命令将不同设备或文件系统挂载到统一的目录结构下,形成统一的命名空间。类似地,AIDSP将不同的底层存储系统挂载到统一的命名空间下,通过指定的挂载点将底层存储系统的路径映射到AIDSP的命名空间中。
路径映射和数据访问: 在AIDSP中,挂载点充当了路径映射的角色。当用户在AIDSP中访问特定路径时,AIDSP会根据路径映射关系将请求路由到相应的底层存储系统,从而实现对底层存储系统的数据访问。
编排逻辑和数据视图: 类似于Linux文件系统中的目录结构,AIDSP的命名空间和路径映射提供了一种组织和管理数据的方式。通过定义和配置数据编排逻辑,用户可以按照需要的逻辑对底层存储系统中的数据进行编排,形成统一的数据视图。
AIDSP通过数据编排能力实现了与底层存储系统的集成,实现了数据的读写操作。AIDSP的实现原理在于将各底层存储系统无缝集成到数据编排系统内,并通过数据编排系统作为中间层来处理数据的读写请求。在此过程中,AIDSP不会对底层存储系统的实际数据进行任何侵入性操作。
AIDSP通过连接器和适配器来实现与不同底层存储系统的通信。它提供了与Hadoop平台的hdfs2.*、hdfs3.*、S3协议的对象存储以及NFS文件系统的连接器,通过这些连接器将底层存储系统纳入到AIDSP的数据编排系统中。
通过数据编排系统,AIDSP可以在不影响其他非编排系统入口的数据读写的情况下,与底层存储系统进行交互。AIDSP将底层存储系统的数据读写请求转化为适当的操作指令,并通过连接器与相应的存储系统进行通信。这样,AIDSP实现了在数据编排系统内对底层存储系统进行数据读写操作的能力。
通过这种方式,AIDSP充分利用数据编排系统的灵活性和可扩展性,提供了统一且可控的数据读写接口,使用户能够通过AIDSP对底层存储系统进行操作,而不需要直接与底层存储系统进行交互。同时,AIDSP的实现原理确保了底层存储系统的数据不受影响,保持原有的数据完整性和安全性。
总而言之,AIDSP通过数据编排能力和与底层存储系统的集成,实现了统一的数据读写接口。它将底层存储系统纳入数据编排系统内部,通过数据编排系统实现对底层存储系统的数据读写操作,而不对实际数据进行侵入性操作,保持了底层存储系统的独立性和安全性。
2. 统一数据访问接口
AIDSP的统一命名空间功能提供了接口转换的能力,允许用户通过统一的访问接口访问底层存储系统上的数据。通过这个功能,用户可以使用原本底层存储系统不直接支持的接口来访问其中的数据。
具体而言,AIDSP充当了一个中间层,位于用户和底层存储系统之间。用户通过与AIDSP进行交互,使用AIDSP提供的统一接口来访问数据。当用户发起数据访问请求时,AIDSP将解析该请求并根据内部的映射关系,将请求转换为底层存储系统所支持的原始接口。
这种接口转换的过程是透明的,对用户来说是无感知的。用户可以使用统一接口来读取、写入、删除等操作数据,而无需关心底层存储系统具体支持的接口。AIDSP负责将用户请求转换为底层存储系统可以理解和处理的操作,从而实现数据的访问。
1)数据操作
AIDSP支持对底层存储系统中文件的创建、读取、写入、删除、移动等操作。以下是AIDSP实现这些操作的基本步骤:
统一接口层: AIDSP提供了统一的接口层,用户通过该接口层与AIDSP进行交互,执行文件操作。这个接口层隐藏了底层存储系统的细节,使用户能够以一致的方式对不同底层存储系统中的文件进行操作。
抽象文件层: AIDSP引入了抽象文件层,用于表示底层存储系统中的文件。这个抽象文件层提供了一组标准的文件操作接口,如创建文件、读取文件、写入文件、删除文件和移动文件等。这样,用户可以通过统一接口层调用抽象文件层的接口来执行文件操作。
底层存储系统适配器: AIDSP实现了底层存储系统适配器,用于与底层存储系统进行通信。每个底层存储系统都有相应的适配器,负责将抽象文件层的操作转换为底层存储系统所支持的具体操作。适配器根据底层存储系统的接口规范,将用户请求转换为相应的底层存储系统命令,执行文件操作。
文件操作调度和路由: 当用户通过统一接口层调用文件操作时,AIDSP的文件操作调度器接收并解析这些操作请求。根据操作类型和目标文件的位置,调度器将请求路由到适当的底层存储系统适配器进行处理。适配器执行实际的文件操作,并将结果返回给文件操作调度器。
通过以上步骤,AIDSP实现了对底层存储系统中文件的创建、读取、写入、删除、移动等操作。用户通过统一的接口层与AIDSP进行交互,而无需直接与底层存储系统打交道。
2)数据拉通
AIDSP实现了在不同的底层存储之间复制数据的功能,使得用户可以方便地在底层存储系统之间复制数据。以下是AIDSP实现数据复制功能的主要步骤:
数据读取: 用户通过AIDSP的统一接口发起数据复制请求,指定源数据所在的底层存储系统和路径,以及目标存储系统和路径。AIDSP的数据复制功能会首先从源底层存储系统中读取数据。
数据写入: 一旦数据被读取到AIDSP中,AIDSP会根据目标存储系统的配置,将数据写入目标底层存储系统的指定路径。这个过程中,AIDSP会调用目标存储系统的API或适配器来执行数据写入操作。
数据一致性: 在数据复制过程中,AIDSP确保数据的一致性。它会在复制过程中检测数据完整性,验证数据的正确性,并确保数据被完整地复制到目标存储系统中。AIDSP会使用校验和或其他验证机制来确保数据的一致性。
并行复制: AIDSP还支持并行数据复制,以提高复制的效率和性能。它可以同时复制多个数据块或文件,利用底层存储系统的并发能力和多线程处理来加快复制速度。
3. 高性能数据缓存服务
AIDSP提供高统一的分布式缓存加速能力。以利用内存、SSD以及HDD做分层的缓存加速,可以把大量的热数据放到数据服务平台中提供整体的缓存加速。AIDSP作为一个分布式缓存来管理AIDSP本地缓存,作为在用户应用程序和各种底层存储之间的快速数据层,极大地提高了I/O性能。
AIDSP缓存主要用于存储热的、瞬态数据,而不是长期持久化存储。
每个AIDSP worker节点要管理的存储数量和类型都是由用户配置决定。
即使数据当前不在AIDSP存储中,在UFS中的文件仍然对AIDSP client可见。当AIDSP client尝试读取只能从UFS获得的文件时,数据将会被复制到AIDSP缓存中。AIDSP缓存通过将数据存储在计算节点的内存等中来提高性能。此外,AIDSP存储中的数据可以被复制,以使“热”数据更容易并行地被I/O操作使用。
4. 策略化数据管理
AIDSP提供统一策略化数据管理能力,可以实现透明的冷热数据分层。用户可以定义一些数据策略,比如定义7天的数据是热数据,平台会自动把这些数据放到热存储中。当数据过了7天之后会自动搬到冷数据上。当访问的时候又会自动地把数据从冷数据调到热数据,实现基于策略的透明化的冷热数据分层。
将数据从一个存储系统移动到另一个存储系统以实现冷热分层,同时保持计算作业正确运行是许多AI业务用户面临的共同挑战,传统上,这是通过手动将数据复制到目的地来完成的,要求数据的每个用户更新他们的应用程序和查询以使用新的 URI,等待所有更新完成,然后最终删除原始副本。AIDSP可以通过使用联合 UFS 将多个存储系统安装到单个安装点,并提供基于策略的在多个UFS之间实现数据的迁移的能力,来实现更高效的冷热分层。
四、AI高性能数据服务平台的主要应用场景
场景一:AI模型训练场景应用
1) 业务挑战
a. GPU 利用率较低: 20%-30% 的GPU利用率
b. 随着模型训练任务数量的增加,数据迁移管道难以维护
c. 从主数据湖到AI/ML基础设施平台的大量冗余副本
2)价值收益
a. 与云对象存储相比,GPU 利用率从 20-30% 提高到 90% 以上
b. 降低数据工程成本75%
c. 仅维护活跃训练数据集
d. (少于总数据集的 3%)
场景二:车载智能计算模型训练场景应用
1) 业务挑战
a. 对象存储中的训练数据访问效率较低导致GPU 利用率低
b. 数据跨集群拷贝时间,成本高,导致整体模型的训练、部署周期长,成本高
c. 不同部门将相同的数据集下载到NAS,导致NAS中有大量的冗余数据,增加存储和运维成本
2)价值收益
a. 吞吐提升:相比NAS和直接访问S3存储,IO读取速度提5倍
b. 数据下载:模型训练数据预加载速度提升2倍到10倍
c. 训练耗时:模型训练时间18小时缩短到14小时(训练脚本瓶颈)
d. 简化运维:减少了大量跨集权数据工程运维和数据冗余
场景三:证券公司模型推理场景应用
1) 业务挑战
a. 项目建设需要对接多方技术团队(存储和计算接口不一致)
b. 计算侧需要快速访问对象存储上的大量小文件
c. 期望控制对象存储的使用成本
1) 价值收益
a. 从云平台到本地机房的数据拉取
b. 南向OSS协议访问对象存储;北向POSIX协议提供数据接口
c. K8s环境部署系统组件
d. 桥接不同厂商的存算平台,降低需求方和供应商的系统集成成本
e. 通过元数据缓存提升文件扫描速度10x以上; 通过热数据缓存避免重复拉取OSS数据
f. 打造智能云平台数据编础能力,为云用户提供异构存储集成、泛化计算接口对接能力
场景四:互联网平台模型训练&模型上线一体化场景应用
1) 业务挑战
a. HDFS 中的训练数据访问效率较低导致GPU 利用率低.
b. 跨数据中心/跨多云数据访问造成网络瓶颈及成本较高
c. 模型上线/部署成本高,时间长
2)价值收益
a. GPU 利用率从 45% 提高到 98%
b. 使用 AIDSP S3 API 将模型部署速度提高 5 倍
c. 通过更高效的数据访问层将硬件成本降低 50%
网友评论