算力赋能AIGC专题训练营:文件存储NAS产品介绍与典型应用场景
课程地址:https://developer.aliyun.com/trainingcamp/5c9aaef8f02e49dbb0a8dc961ac71248
文件存储NAS产品介绍与典型应用场景
内容介绍
一、自我介绍
二、阿里云aigc场景的三个环节
三、AI训练和推理对于存储的需求
四、极速型NAS指标
五、最后总结
一、自我介绍
欢迎大家来参加算力赋能AIGC专题训练营,我是来自阿里云文件存储的研发同学,徐泰明,今天由我为大家带来的这个课程是文件存储nas产品的介绍和典型应用场景,是在AI和AIGC场景的专题的一个讲解。
二、阿里云 aigc 场景的三个环节
其实阿里云AI与机器学习平台,整个平台内容是非常丰富的。大家非常熟悉的是说,在今天AI的领域里,在数据相关的这过程中,我们可以看到最主要的三个环节。
第一个环节是数据收集,数据收集阿里云主要推出的这种方式是希望用户能够把海量的数据通过公网的方式或者专线的方式,或者其他由OSS提供的一些上云方案,能够传输到阿里云的OSS。因为目前整个OSS在全国的站点部署和分布非常广泛的。大家可以在就近的一个领域、可用区域去上传自己的数据。通过这种数据的上传之后,可以进到整个阿里云的数据处理的集群里面,对数据进行包括清洗,包括脱敏,这些都是可以在整个数据处理的集群里面去完成的工作。做好这些相关的一些数据处理之后,其实整个AI训练,也包括AIGC,这个训练过程就会进入到模型训练场景。
目前来讲,在模型训练这一块,其实在提供这个服务层面中,也提供了多种模型训练的入口。比如包括这种交互式的建模的系统,从派的这种DSW的控制台,可以非常简单的去创建一个训练的集群。训练集群创建过程中,大家可以选择像ECS这种弹性的公共云的计算资源,也可以选择像灵骏计算这种专属的、更加高性能的GPU的算力,可以去选择它作为我们今天承载主要算力的一个平台。
除了算力之外,肯定还需要一个地方能够去匹配它GPU对于存储,对于IO的高性能的需求。所以今天在很多场景里面,可以看到阿里云推荐的是nas,尤其是极速型nas对于这种中小的规模的训练的数据集,包括check point。这些场景推荐的是极速型nas的方案,去做高性能的存储提供的一种方案之一。
第二种是在整个计算平台里边,其实我们专门打造的计算的CPFS。也就是经常谈到的CBFS的计算法。通过它结合智算以及零浚高性能的网络,可以归为今天AI的训练,尤其是今年最火热的AIGC,去提供非常强大的分到端训练的平台。这个数据从今天在OSS平台里面收集了大量的数据,这样就可以通过在阿里云平台提供的数据流动的能力,将OSS数据去非常丝滑的传递到极速型nas里边,传输到计算CPSS里边。这样整个数据从温冷数据到极热数据来了一次无缝数据流动的衔接。
在模型训练这个场景里边,往往是今天在整个AIGC AI机器学习平台里边花费的时间最长的,因为你需要去反复的不停的去优化自己的模型,优化自己的参数。所以通常来讲配备的无论是算力来讲,还是存储,也包括网络,都是最高的性能配置。当我们训练这个过程时,它会结合着下一步进行模型的推理,阿里云其实也提供了一个非常灵活的,用户体验也非常好的,我个人认为用户体验非常好的模型的在线服务平台,派的EAS这种服务。这个服务平台它可以在线一键式的去选择将我们在模型训练场景做完的训练的导出这种结果很快速就部署在整个阿里云的平台上面。可以基于裸机部署,可以基于ECS部署,可以基于容器化的弹性实力去部署。这种方式让我们基本上就解放了,在这一块整个环境的搭建、模拟,这个过程其实是极大的释放了一些这方面时间的投入。所以是可以通过这种pad ES的服务去快速的达到这种模型的搭建、推理的能力的一个架构创建。
在这个存储层面,我们也推出了属于高性能领域的存储,包括公共云的nas,大家比较熟悉的容量型的nas,性能型的nas都非常适合于在这个模型推理场景去使用。另外是公共云CPFS,也提供了100兆的基线,200兆的基线,当然未来也会推出更高的性能的基线。这两种方式都是可以非常好的去支撑ES的模型的在线服务对于存储,尤其对IO的性能的需求。
刚才也讲了,下面很重要一点,就是怎么把数据通过从数据湖里面能够拉取到模型推理这个场景。其实也是一样的,因为我们在OSS里边,不管是传入还是传出,在模型推理阶段,那部分业务也会去把它生成的这种结果,比如今年比较流行的文字生成图片的方式。生成图片其实有些业务它是需要去持久化存储的,这时候同样可以通过nas或者CPFS把它高速写入,之后定期的把它流动到OSS里面,做持续化的存储。
这样整个AI和机器学习的平台在数据收集模型训练和模型推理整个环节里边就达到了比较自然的流动结合。
三、AI 训练和推理对于存储的需求
今天看到整个AI训练和推理的,其实对存储还是有很大的需求的,它需求特点也比较明显,因为今天大家可能会看到,在GPU的服务器,尤其是大家很多时候在线下会拿到一台裸机,比如像A100、A800、H800的机型就很多机器里边它配置的这种本地盘,很多这种比如单机单卡,单机多卡,或者一些训练的规模并不是特别大的集群里面,其实有时候会去采用能不能使用这种本地盘的方式去存储训练数据,这个中间过程产生的一些point,甚至于在推理阶段产生一些持续化数据,这个数据通常想去找到一个方式去存储。今天再去看到这个本地盘的时候,发现它有几个比较显著的一些问题,比如第一个大的问题是本地盘的容量其实是有上限的,主流的AVMESSD,如果大家选择的是这种TLC介质,它可能主流的上限就是在7.68T,那一台服务器里边配置的容量其实本身就是有上限的,尤其是当我们的规模越来越大的时候,因为我们今天看到很多训练模型,它的数据已经达到了这种PD的级别,尤其这个结合check pot之后,它的容量会急剧的增长。
第二点发现基于这种本地盘的存储方案,它跨节点的数据的一致性是比较难以维护的。因为需要一些存储的数据集的时候,需要在每个GPU服务器里,要么就是拷贝全量的数据集,要么是把这个任务按照服务器或者更具体一点按照卡去做。切分之后把一部分数据拷到对应的GPU服务器上,这时候想象一下,怎么能够去保证每一台服务器或者每一张卡看到数据都是最新的数据,都是一致性能够得到保证的数据。就这一点,我们很多的用户或者接触到很多的客户在线下的时候,很多时候可能通过一个简单的脚本去做同步,或者通过人肉的方式去做大量的副本,这个其实对于一致性也好,同样对于本地盘的容量也是一个很大的影响,因为你需要去拷贝一个又一个的副本。
第三个问题也很显然就是数据的可靠性,当然今天可能有些客户或者用户他愿意在GPU的服务器本地做read,比如做了个read0,那这个时候其实可以看到,我的maybe性能也许提升了,数据可靠性在本地盘或者单台机器之内得到了提升。
但是其实GPU服务器它本身的单机故障,也会造成今天在这种单机存储的数据,它会带来很大的可靠性的隐患。当然也有一个很重要的因素,这地方我没有单独把它列出来,就是讲今天如果大量的数据和存储,尤其是大家尝试去做基于本地盘的分布式的数据化存储的话,它会导致你的存储的进程和你的训练任务进程其实是相互干扰的,它会去抢夺CPU,抢夺内存,抢夺网络的资源和网卡的进程。其实这些都会发生一些抢占,我们已经遇到了一个又一个这种案例。它在这种资源抢占过程中,任何一方的故障都会触发另一方的任务的失败,其实这个地方是有点得不偿失的。所以越来越多发现其实需要或者推荐大家能够去在这种场景里面选择共享存储的方式,去构建基于内存的本地的缓存加速,基于更高介质的闪存介质去构建一个共享的闪存缓存池,这样其实对于整个GPU的训练来讲,是非常有帮助的。
除了GPU的物理机,包括今年公共云的弹性的ECS计算实例,包括容器化的一些实例。这些实例它的需求其实都是类似的。希望找到一种共享存储的方式能够去保障刚才谈到的各种缺点带来的一些影响,同时反过来,其实今天看到在云上的资源ECS也好,尤其是容器它的弹性的速度是非常夸张的,经常可能是从零可能迅速弹性扩展到3000个实例、1万个实例。这些东西都是非常正常的一种,或者说非常普遍的一种操作。那怎么在这种操作之中能够去秒级,甚至毫秒级的去挂载自己的存储,找到对应的数据,启动你的训练。而不是在另外去等数据拷贝到我的容器里面,拷贝到ECS里面,拷贝到GPU服务器里面才能去开始训练。这个过程本身就是对这种相对比较昂贵的GPU资源的浪费,所以今天看到AI这种场景,对存储,尤其是共享存储,也提出了很多需求。
比如第一,它起飞低上限要求很高,要求这种极致弹性,这种所谓的起飞低弹性上限高机制弹性,它并不仅仅是容量,今天可能很多训练的场景里就需要几个GB、十几个GB的原始的数据集就够了,但是不排除很多虚拟场景里面,它的数据集是非常庞大的。可能尤其的check point,它加起来可能达到了PD级的规模,通过这种低匹配,慢慢的弹性上升到很高的容量,这是我们的一个最本质的一个需求,最基本的一个需求。
第二就是性能,当我的GPU卡的数量比较少的时候,可能觉得IO的训练的性能要求并不是特别高。当我们达到了100张卡,一千张卡,一万张卡的时候,整个对于IO的性能要求是非常高的,因为随着GPU的算力逐渐提升,从V100到A100、A800,再到HH800,整个过程它对于IO的要求是越来越高的。第二点就是刚才讲了很多关于全局的数据共享这个地方。
第三个是关于这个数据的可靠性,既然训练这个数据,尤其是check point, 是希望他能去救命的,我希望他有一天有一个时间段,但已经做了几个小时的训练,能够快速的去回溯到上一个节点,去重新开始我的训练,去优化训练的模型。所以说对于数据的可靠性本身,AIGC或者这种训练的场景,是有比较高的需求的。
四、极速型 NAS 指标
参数 |
指标 |
带宽 |
随文件系统容量规格增长而增长,带宽上限为 1200MB/S。具体如下 [100GiB,500GiB):150MB/s 1500GiB2TiB) : 300MB/s [2Ti84Ti8): 600MB/s [4TiB8TiB):900MB/s [8Ti8256TiB):1200MB/s |
IOPs |
随文件系统存储容量增长而增长。10 大小为 4KB 时,具体如下 读:min5000 +50 容量(GiB)200000) 写:min(2500 +25容量(GiB)100000) |
平均单路4k读写延迟 |
0.3ms |
容量 |
100GiB-256Ti8 |
扩容步长 |
1GiB |
今天给大家带来的一个主要的产品,就是这个G40nas。
G40nas其实在阿里云,尤其对于一些小文件,对于低延时有很大的要求,有很高的RPS要求。
这种场景是非常适合大家可以去入门或者去把玩,去使用这种产品。比如这个是针对这种典型场景,是非常有价值一个产品,所以推荐给大家,首先它的起飞是非常低的,100GIB在这种场景里面其实几乎可以满足绝大多数甚至于小薇模型的训练需求,再小我觉得也很少见到,尽管100个GBP起步,几乎可以满足绝大多数的小微的训练数据的需求。另外就是它的这个容量上限是比较大的,动辄就到了来到了256个TB,对于这种小文件的场景,大家可以随便计算一下,比如你搞几十亿个文件,其实小文件是4K、20K,100K,差不多这个规模也是够了,另外它有很大的一个特点,就是它的扩容步长比较小,而且这个比较弹性,你可以1个GB、1个GB的完全叠加,那这样对于大家整个性价比的积累比较显著,另外一点,就是在计算云nas里面,对于小文件,非常好的一个点是延迟。它延迟非常低,0.3毫秒,如果再加上一些更大的加速内存的,或者一个能力的话,很多观测是达到了0.1毫秒甚至于更低的延迟能力。LPS的也可以做到2万的RPS带宽的。目前来讲,大家在公共云上听到这个课程的时候,可能它已经不再是1.2G、1200兆大B每秒的吞吐。因为我们即将发布一个更高性能的技术型nas,去满足今天AIGC在这种场景下,对于极速型nas的产品需求。所以今天看到的,当你再去学到极速型nas的时候,再去看点开,也许就已经有间隙了。
五、最后总结
最后给大家再反复的总结一下,就是在整个阿里云的AI和机器学习平台,大家可以看到在这种场景下,在推荐极速型nas使用的场景里面,可以看到从数据的收集到OSS,到数据流动,进入到极速型nas,再到上面去通过DSW也好、DLC也好,去构建基于ECS或者临近计算的算力平台加极速型nas的存储平台。
其实可以把从数据收集到模型训练,再到模型的推理,完全的帮大家完整的构建出来。