对象存储OSS作为云上数据湖,被广泛应用在商业智能、数据决策、广告推荐等大数据分析的场景上。随着AI workload的不断增长,OSS数据湖也在随着workload的变化不断演进。
不管是客户还是各个数据方案的供应商,对于AI场景下的数据管理都有几乎一致的愿景,那就是从数据采集开始,到数据准备、模型训练、模型推理,再到最后的AI应用,都可以通过统一的数据湖存储来实现多来源数据的便捷接入,并且可以在数据湖中对所有数据统一的配置安全策略,进行统一的数据管理,比如数据的加密模式、数据生命周期、数据迁移和备份的策略等等。AI场景下涉及的多种多样的应用也可以便捷高效地访问数据湖中的数据,而不用复制多份。
1. AI工作负载给数据统一存储带来的挑战
在实践过程中,经常会发现丰满的理想败给了骨感的现实。AI是一个非常年轻、非常活跃的生态系统。整个生产链条中涉及了比较多的计算框架和生态软件,这些软件对数据的访问接口各式各样,访问的模式也各不相同。在原始的素材采集上,不管是通过爬虫爬取还是直接下载,都离不开最方便的HTTP互联网协议。海量的互联网数据也要求存储系统可以扩展到上百PB的空间,并能承载上千亿的文件。由于AI的数据需要进行全球的采集,这就要求存储系统能低成本地实现海量数据的跨域流动。
数据准备阶段,需要对原始数据进行深加工,以满足AI训练对数据质量的需求。数据准备阶段是整个AI链条中最为复杂的阶段,在这个阶段对数据进行清洗、打分,建立索引打标、向量化、随机化,有时还会对视频数据进行截帧,将图片进行剪裁、旋转、分辨率进行缩放等等复杂的处理。在这个阶段,当前比较主流的计算框架包括比较成熟的Spark框架或比较新的RE框架,不同的框架读写数据的接口又会不尽相同,需要存储系统能方便地对接不同的计算系统。
进入训练阶段,对存储的性能有了更加复杂的要求,大文件、小文件,高吞吐、低延迟的需求混杂在整个训练过程中。在整个的生产过程中同时存在,存储系统如何同时应对成为了难题。
最后数据采集、数据准备、模型训练、模型推理以及AI应用在同一个数据湖上进行业务混部,如何保证多系统混部下系统整体可以高效运行,也是对存储系统的巨大挑战。
2. 从数据湖到AI数据湖的发展
如何让之前已经在大数据分析场景下表现优秀的OSS数据湖服务应对更加复杂的AI工作负载呢?阿里云认为,OSS数据湖需要在原有优秀的基础能力上,在生态接入、数据安全性能和数据管理上,针对AI负载进行进一步的优化和演进。
2.1 开放生态
OSS数据湖为了实现一份数据可以被多种方式进行访问,在应用生态兼容上持续的进行了演化。对于使用成熟的Hadoop或者Spark框架的用户,阿里云OSS提供的OSS HDFS功能可以便捷地兼容企业原有的大数据计算平台。restful 接口写入OSS数据湖的数据,可以通过元数据转换获得与原生HDFS一样的高性能目录分层空间。在这个目录层的加持下,实现了对HDFS接口的全面兼容,保护了企业原有已经构建的大数据应用的投资。同时也实现了对Ranger权限的兼容,支持接入企业原有的Ranger鉴权体系。
对于训练和推理应用,由于推理和训练的应用多是从语音下的单机环境孵化出来的,并没有实现原生的对对象存储的支持。随着AI训练和推理逐渐走向并行化和上云,很多客户提出需求,希望云上的训练和推理应用可以高效地访问OSS数据湖中的数据。
针对使用最广泛的Pytorch训练框架,推出了OSS Connector for AI 和machine learning。通过在计算节点上安装OSS Connector,AI开发者可以通过Pytorch的data loader采用map style或者以terrible style的data set的方式高性能的读取OSS中的数据集。同时还提供了通过index file来构建数据集,无需依赖传统的 list方式。通过index file,可以在5秒内构建出千万文件的数据集。使用OSS Connector之后,对于2万张图片的数据集的加载速度相较传统使用对象存储fuse客户端的方式提高了4倍。stable diffusion作为文生图场景中非常流行的推理应用,非常依赖file lacked的方式来读取OSS对象存储中的数据。OSSFS作为阿里云OSS提供的file lack型的客户端,之前被一些传统的应用广泛使用。阿里云针对不同的推理模型、文件的加载模式对OSSFS进行了针对性的优化。针对CKPT模型文件的加载提供新的直通模式。直通模式在顺序读取大文件的情况下,不再对数据进行落盘,可以绕过磁盘的读写瓶颈。在直通模式下,5.6GB的模型文件的加载速度提升了3倍。
除了CKPD文件,safe Tensor模型格式由于更优的安全性和压缩比,在开源模型中被越来越广泛的使用。针对safe Tensor类型的模型文件,对OSSFS在随机读取下的表现进行了优化。我们在小幅乱序读取时,OSSFS仍然能有效地利用预读的数据,从而让safe Tensor模型加载性能提升了两倍。
OSS util作为被广泛使用的OSS数据湖的多平台命令行管理工具,也根据客户的需求进行了一次大型的版本升级。推出了 OSS util 2.0,在2.0版本中,提供了全新的命令组织形式,开发者可以使用新的多级命令,并针对不同场景预存多组配置,并在不同配置中自由切换。对于权限配置,新增了外部凭证和OIDC凭证的支持。为了避免访问凭证的泄露,在新版本中,开发者可以使用环境变量参数设置访问凭证。
在2.0中,针对命令行的输入输出也进行了优化。操作命令现在支持基于文件元信息进行对象过滤,不再需要额外的步骤,预先生成操作对象的列表。输出结果也同时支持JSON、yaml、XML格式,方便开发人员按照自己的习惯自由选择。在新的版本中,还提供了dry run的方式。在管理员执行一些高危或者比较长时间操作的命令前,可以使用dry run的方式模拟运行,降低误操作的代价。当前,已经可以在OSS的官方网站上下载到OSS util 2.0的Preview版本。
2.2 数据处理和训练、推理性能
在 AI 训练中,有一些数据在整个流程中不断被重复读取,比如一个训练任务的多个 epoch 会读取相同的数据。一些热的数据集会被多个 AI 开发者频繁读取。文生图,图生图的在线推理中存在着大量的会被频繁读取的中小模型。阿里云针对重复读取数据的场景推出了 OSS 加速器,在 OSS 数据湖之上,利用 NVME 介质构建出一个高性能数据缓存空间,为重复读取的数据提供低延迟和高吞吐的数据访问能力。 OSS 加速器作为云上的 service 服务,支持即开即用,并可以根据业务需求对空间进行弹性调整。采用新的存储介质, OSS 加速器可以提供个位数毫秒的读延迟,并且可以提供 100 GB 每秒的突发吞吐。 OSS 加速器是对象存储OSS 的内置功能,提供与 OSS 存储桶中数据的强一致性。避免第三方缓存方案引入的数据一致性的问题。使用 OSS 加速器,配合OSS connect和优化过的 OSSFS,在训练数据的拉取和模型加载的场景都可以获得很好的加速效果。从第二次的 i pork 开始,数据集的加载速度大幅提升了一倍以上,热模型文件的加载时长也出现了明显的下降。
OSS 数据湖上运行的业务多种多样,一个企业的日常业务平台上经常同时跑着数据采集、数据的预处理、 AI 训练等生产任务,同时在白天的时间段还有开发人员的日常的开发作业。大吞吐的批处理任务和要求低延迟响应的在线业务也需要从统一的数据湖中读取数据,这就要求用户的多数据桶可以共享 OSS 数据湖的超大吞吐能力。
多样的业务也可以基于自身的业务特性分时复用 OSS 提供的性能资源。在出现性能挤兑时可以保障高优先级的在线业务和 GPU 计算业务可以高效率的运行,比如在夜间我们可以加大离线任务的性能供给,在白天降低性能供给,再出现在线业务的 burst 需求的时候,我们还可以压制日常任务,保障在线服务的稳定性。
阿里云 OSS 针对数据湖上这种复杂的业务场景,推出了资源池 queues 的能力,用户可以将多个 OSS 统纳入统一的资源池,资源池内的多个桶可以共享资源池内的 OSS 吞吐以及 QPS 能力。用户可以根据自己的业务架构对访问数据的 Rams 账号或者针对单独的桶进行 queues 流控。阿里云 OSS 支持丰富的 queues 指标,包括 AP seed 读写吞吐、 cues QPS 和外网的读写吞吐,还有QPS。针对 queues 功能,也提供了流控事件,让管理员可以实时收到流控反馈,及时调整流控的配置,保障高优先级任务的稳定运行。
2.3 数据安全
数据湖中海量数据的安全合规一直是数据湖用户的基础诉求。面向数据湖中海量 AIGC 数据的数据安全,阿里云 OSS 推出的一站式内容安全检测能力,并且支持 AIGC 场景的合规检查,一次检查即可同时完成涉黄、涉政、涉恐、涉暴等多维度的检测,有效规避存储在 OSS 数据湖中的数据安全风险。
3. oss数据湖发展现状
OSS 数据湖通过不断的进化,成为 AI 场景下的非结构化数据的统一存储和管理平台。在 AI 生态上,阿里云 OSS 对推理应用常用的 file like 挂载工具 OSS FS进行性能升级,面向训练数据集的高性能拉取阿里云 OSS 提供了新的Connector,加速了 Pytorch 对对象存储的读取性能。
为方便开发者更好地管理OSS,推出了 OSS util 2.0 版本。在性能方面,面向复杂业务提供了资源池 QS 的能力,同时 OSS 加速器对重复读取的数据提供了高速缓存的能力。在内容安全领域,OSS 提供了 AIG seed 内容的安全审核,用户可以一站式的对 OSS 中的数据进行专业的安全扫描,规避数据的安全风险。最后在面向 AI 的数据处理和数据管理上,OSS 数据湖也将提供更多的一站式服务能力。
分享人:阿里云智能高级产品专家 景崇