阿里云王太平:面向AGI时代的数据存储、管理与应用

“Transformer事实上改变的问题是什么?先编码再解码,它会有一个中间状态,这个中间状态是什么?我们认为是理解,就是在理解这个世界。所以我们看到了对AGI的期待。”近日,阿里云高级技术专家王太平,在2024数据基础设施技术峰会-“分布式存储技术与应用论坛”分享了对AGI时代的数据存储技术的深刻洞察,以及阿里云的落地实践,受到听众的强烈反响。

海量模型推理催生云原生缓存系统的演进,阿里云AIGC高性能推理存储OSS加速器2.0在提升数据仓库、AI推理数据读取效率方面实施了创新技术方案,通过并行文件存储CPFS加速AI创新,极致性能释放AI算力。通过阿里云存储的创新实践,构建了一站式智能搜索PaaS服务,为企业开发人员提供基础结构、API和搜索工具,按需使用,开箱即用。

以下为演讲实录:

AGI时代很快会来临,现在的AI跟以前的AI有什么区别呢?

其实就是在智慧能力上。以前我们很多时候都是想着怎么用方法去解决,或者说我们用什么工具去解决一个问题,现在并不是在用一个工具来解决问题。不管之前最早的数学建模,再到后来的深度学习的网络DNN,再到后面卷积神经网络做图像的,再到其他的,比如说语言模型的循环神经网络,他们其实本质上是在找一种方法。

大模型的本质问题它解决了什么,解决了规模,并不是以前的传统人工智能架构不好。

第一,在超大超长的文本上一个特征的抽取问题,以前是用循环神经网络那就会有依赖,依赖的话就意味着你无法把规模做大。

第二,规模做大之后会出现什么东西,我们都很难去理解。存储的人经常会讲,我做一个存储系统,当达到了一定规模之后,它的可靠性,它的性能,它的稳定性以及它的QoS会有很多的挑战,在1万个并发、100万并发、1亿个并发的时候,你面临的规模是不一样的。这些是上一个时代,互联网时代阿里云成功的经验,阿里云很早地具备了上亿级客户应用这种大型架构的实践,所以它解决了大家用传统的,比如说你用IOE你解不了的问题。

同样的道理,缩放原理其实就是大模型的第一性原理,它是OpenAI总结出来的,它认为一个模型的智能化水平跟你模型提供的数据量以及模型的运算量,还有模型的参数规模,这三者进行一个匹配之后,你的模型的lost将会越来越小,lost就是我检验这个模型的一个损失,拿一组的验证问答,我看它跟结果之间的差异到底足不够足够大。他坚信这个原则,GPT1和GPT2刚出来的时候,他其实跟谷歌的bard差异是很大的,两者之间我可以称之为,bard是第一梯队,而GPT是第二梯队,甚至于我们都知道的引发这一次大语言模型的关键的论文是谷歌发明的,包括我们后来看到的谷歌其实在AI这个领域,它其实有了所有的技术经验。但是他缺乏这个问题就是,他没有把模型去做大,他没有去做到最终。

单字接龙就解决了你想象到的所有的中间功能,而且还消亡了很多的AI中间状态。所以不管我们相不相信,至少这是在当前对我们理论上最有指导的理论,那就是我们要相信缩放原理,业界其实也是这么干的。

大家可以看到现在的国内当中,GP4大概就是个万亿模型的一个参数,但事实上最近大家一直在炒作的,至少在当前2024年的今天,大模型的参数是以万亿为门槛的;千亿为门槛的那些东西,就是跟我们传统的那些,像咱们现在看到的百亿和千亿这些开源的模型,它很多时候是为了繁荣生态做的,真真正正的实际的大模型能力可能在万亿级别才能解决这个问题。

其实文生图和文生视频本身模型的架构或者说它的参数量是远低于自然语言模型的,而语言是最复杂的东西。当语言被突破以后,其他东西一次在一个确定性的赛道上有足够的资金投入,它就会爆发出结果。

所以你看到Sora它仅仅是个demo版本或者说一个内测版本,它的原始数据量大概是100G,包括前面说的1TB级的数据,其实很多人会讲TB有什么大的值得存储厂商讨论吗?大家要清楚我们讲的是训练语料和数据集,而数据集在清洗之前的话一般是100倍以上的一个规模。我们可以预见的将来就是2024年肯定会有,国内的大模型厂商,它的原始素材采集量会在100PB以上,这是一个必然的结果,而且是确定性的。

在海量的数据集上,我们存储该怎么来应对?

大家开始论证机器AI创造数据来做训练语料的可能性以及它是否可行,至少有一些理论认为是可行的,所以我认为未来的存储架构将会发生极大转变。

传统的我们的检索和数据访问模式与新的AI的访问模式如何进行交互和结合,这都是问题。所以我们还是从最基础的,大家最容易忽视的数据预处理这个场景来开始看。

其实数据预处理在大数据时代其实已经很多了,今天跟过去有什么区别,以前清洗量没那么大,现在清洗量可能到90%或者99%的数据都会被淘汰掉。

第二,以前我们是半结构化数据会居多,所以我们有一些传统的引擎去解,大家都知道大数据其实就是一个确定性的函数,而AI是一个概率分布的抽样,所以它俩是一个很大差异的,所以它处理数据的方式也非常的不一样。

我们在考虑到这两个场景之后,首先考虑第一个,如何采集足够多的世界知识来让你的AI更加的智能。

阿里云提供了OSS的传输加速,可以覆盖全球的所有主要区域,满足快速的数据采集功能。而且我们针对大型的数据采集,会有新的商业模式,因为这是一个全新的时代,我们不会部署在原有的商业模式上止步不前,我们希望跟大家一块探索更多的可能性。

第二,我们看到数据清洗,以前其实大部分都是用大数据的生态来做清洗,我们简单的一个数据湖存储就可以解决这个问题。但是现在你会发现多模态里边,比如说Sora预测的时候,它出帧的时候它出的是什么帧呢?它抽取的是一个特定场景的帪,它并不是一个跳变的东西,所以希望机器可以学习在一个长镜头下不同的物理世界的规律,以及如何平滑演变的物理规律,所以他会在出帪有很多的AI的操作,转码的、出帧的、找关键帧的,然后如何识别它是一个长镜头区域。

在谷歌文生图的时候,其实大概也是谷歌先提出来的,我们会发现历史在互联网上的语料,图片和文字之间的对比和关联是很差的,它缺乏足够丰富的信息。那怎么办呢?谷歌当时提供了一个自动生成的这样一个模型,就相当于我为了训练一个很强大的生成模型,我先要训练一个很强大的判定模型,所以先用图生文,再用图生文造就出来的书内容,再去训练一个更加强大的文生图。所以你会发现整个过程中它是很多个AI在处理这些过程,数据会进行很多轮的清洗。

这个清洗过程中会有大量的临时数据产生,它不仅对性能要求很高,同时他还需要非常随时的弹性的释放,传统的存储是满足不了的。但是如果你用全闪存的分布式存储是否值得,我相信不会有人会给一个数据清洗工程师配套一套高端的并行的渲染的文件系统。所以这个时候我们推出了我们的弹性临时盘,更便宜、按需、随时释放,同时跟你的上层的ECS和GPU服务器之间是解耦的,没有任何强关联。

其次就是训练,最关键的问题,CheckPoint的问题,很多人都在讲这个问题,这其实是我们存储人的悲哀。我们的块存储在多少年前都是已经实现了快照,大模型时代需要tenseflow 来做,我们为什么到了大模型时代,需要人家需要人家配套式来做,需要通过服务来做,而我们并没有把这一层给它替换掉。在座的是不是觉得很惭愧,我也觉得很惭愧?你看GPT4他大概用了25,000张卡去训练了大概三个月,他整个的GPU利用率只有30%多,原因并不是说它的存储不够,大家不要以为说GPT存储不行,虽然我也不知道他用的什么存储。它的原因主要是在于AI跟HPC有个很大的区别,就是HPC它是确定性的任务,一般情况下很少犯错误。而AI是一个炼丹的过程,随时都有可能错误,你都不知道错误从哪里来,所以大家都需要不断的把钱给CheckPoint,以前可能是一天一个CheckPoint,在HPC的时候,现在在AI的时候,英伟达在去年推荐的是4个小时,我前两天去跟头部的客户常常聊说如果进入万卡时代,我们要求是5分钟打一个,因为我等不起30分钟。

这么多年存储人梦寐以求的超大性能需求场景终于出现了,这个参数量会从千亿到万亿,一个CheckPoint大概20T左右,20T客户要求多少时间?5分钟写完,大概你就是200GB/s一个带宽。而上面讲了张量并行、数据并行,CheckPoint如果要加载起来的话不是加载一份,现在张量并行度默认就是8以上了,你至少得加8分,200G的带宽你再读带宽乘以8,你大概1.6T,所以大家看到一个TB级带宽吞吐的一个场景出现了。但是这个场景现在大家满足起来都很难,虽然有些人会宣传我是TB级的带宽,但是它是用多少台机器堆出来的,这个就是我们大家需要讨论的问题,我们如何去满足这个场景。

当然阿里也做了很多的优化。

首先RDMA网络,我们暂时在AI的Cloud或者meta,meta就是建了两张网,一张是24万张,用的Infiniband。另外一张他用的Rocky网络,然后他发布了说我这个Rocky网络的性能其实跟Infiniband另外一个是接近的。

过去几年,计算端和存储端的RDMA网络并没有完全打通在云上。原因很简单就是说,要满足云上各种VPC网络各种的需求,你就不能再摒弃TCP已有的一些东西。但是AI时代来得比较好的一点,就是说其实这东西我10年前我是特别希望这种场景出现的,场景又单一,操作系统全部都一致,硬件一个型号一个批次,对存储来说这是特别好的一个场景,我就只需要满足典型的特定的场景。

所以我们有时候做企业产品主要是做减法,你如果减的越多,你就做出来越高效,我就可以去定制属于我自己的CPFS Client(分布式读缓存),基于我们的大地分布式存储,我们把CPU Cache,本地 Cache,然后还包括各个节点之间,我们做分布式 Cache,然后这样的话整个的元数据开始和数据开始就做起来了。如果是读请求比较多的时候,post语音下来之后,尤其我又可以做到并行的访问,所以整个的带宽是可以做得很大。    

第二,我们把很多东西放在我们的智能的网卡里边来卸载了,这样的话就达到了一个很低时延的一个效果。当然这不是结束,这只是个开始。

其次就是推理。大模型的推理有两种情况,一种情况就是说大厂,比如说我们讲OpenAI,它的推理,首先他在推理之前我们会对模型进行一个量化,剪枝,让模型做的特别的小,让推理成本降低,因为训练是拿入场券的,推理是生死线,你如何在保证因为质量的情况下降低推理的成本,是你商业成功的一个基础,所以未来一定推理是一个最大的成本中心,远超训练。

而训练当前的基础是什么?因为咱卖了500亿美金的卡,整个IT消耗了1,000亿美金,未来的推理可能是训练的5倍以上,那只是当前的水平,因为一年在训练上开销是1,000亿,推理上可以看5,000亿左右的一个美金的市场,所以未来推理是一个万亿市场的可替代空间。所以在推理的时候,我们一般会把模型精巧之后变小。其次做推理很多时候是创业企业,他们需要的是不同的模型来满足不同的需求,动态的加载。比如说我们现在当前商业化比较成功的文生图,做PPT这些领域场景,他做的模型其实都比较小。但是每一个人加载的时候需求其实都不一样,所以每次都是一个动态的加载。那能不能把这些模型全部放在我们上面讲的CPFS全闪存储里面,完全可以,但是成本如何解决?

所以第二个在这种场景下,大部分大家都是按需来做,所以当大家用了小卡,做推理卡,是弹性的容器场景。所以这个时候,你会发现第一个问题就是并行的时候,你如何把你的模型加载起来,以Stable Diffusion为例,你做这个文生图的时候,不同的监控的一般2~10个G你加载起来之后,一个任务你生一张图现在效率挺高的,30秒到一分钟你生成了一张图,但是你要把10个G的文件加载到你的容器内存里边,你可能也需要1分钟,甚至以前还需要5分钟,结果你GPU总共花了6分钟,5分钟的GPU钱是花在了存储加载上。

所以针对这个场景,我们提供了一个比较简单的处理方式,我们提供了我们的osS加速器是一个server端的Cache,我把你最热的那部分模型给你Cache到我SSD层上,这一层对外它是一个统一的namespace,你不需要再去改变任何的架构,你直接访问就行了,不需要做任何操作。

其次针对加速器这种高性能的场景,我们很多时候发现好好的一个东西他没用好,给你机会你不中用,你把后台做好了,你前面的OSS、FS不行,这也是我们值得诟病的一个场景,就是为什么对象存储在原生场景下,用csn插件竟然不是一个原生的逻辑,所以我认为这可也是我们在座的可以去探讨和去探索的一个地方。

我们以前可能会有一些强制限制,现在我们是在线弹性,你用多少弹多少。另外,我们可以把TB的数据我们可以瞬间落实到百GB的一个量级,但是百GB可能有多个进程并发,多个请求并发。同时我们通过OSS和FS缓存机制,然后最重要的是强一致性,你不需要担心,刚才我们讲存储里边每个厂商都有一堆的存储产品,每个存储产品这边的数据流动实际上有一个非常麻烦的问题,很多时候数据流动过来了,权限没有流动过去;权限流动过去了,元数据参数信息没有流动过去,比如说对象存储的语义和文件存储的语义差异很大的。

这个时候我们的强一致性就不需要考虑那些问题,就是一个极高性能对象存储,但是它价格还是跟对象存储没太大差异,何乐而不为。

最后一个,其实我认为在现阶段其实是比较重要的,很多人忽视了这个场景,当前大模型可能是在一个炒作周期的顶峰,但是落地该怎么落地呢,文达的观点就是说你通过AI引擎建成加上GPT3.5,你可以达到GPT4.0的效果,如果过两天GPT5.0出来之后,你通过AI建成你可能达到更好的效果。

所以我们可以坚信就是我们做了很多东西,它一定是有价值的,当然也可能泼一盆凉水,OpenAI的奥特曼说你做这些都是无用功,大模型会把你所有的这些所谓的定制化全部给你干掉,因为我们会发现世界上的第一性原理就是说什么,不要针对特定场景去定制,我会把所有场景全部适配掉,大家可以自己根据自己的看法去判定,有些是阶段性策略,有些是长期的策略。

所以我们其实也一直在AI Landing这一块做了很多的努力,比如说阿里的通讯千问,其实我们有两套平台,千寻平台,百链平台,就是可以让不具备AI能力,不具备大模型训练能力的人,可以快速享受到这种技术突破所带来的价值。所以我们从整个的服务层、转化层、引擎层我们做了很多的优化。

下面我讲两个最简单的场景,第一个就是我一个典型的客户,他以前是做数据服务类的,以前你选很多东西你去找到你想要那个文件,或者以前经常还有人卖数据,卖几千条的结构化数据。他给我提了一个问题,他说大模型这么好,我想让客户随便问,我就把他想要的东西给到他,我想这就是个典型的速度增强的一个场景。

但是你会发现现在的速度增强,包括OpenAI他做的速度增强其实非常弱,弱到爆,其实就是一个对话机器人,跟企业的生产是有很大一段距离的。

生产里边最核心的是什么?数据库,如何让AI和数据库结合起来,和你已有的知识结合起来,所以大家都会探讨一个问题。如何把标量查询和向量查询在自然语言的环境下快速地集合,客户的特定狭窄场景,精准的给到一个速度增强,这是我们需要解决的问题。

一般的解决之道是什么呢?NLP2SQL这个时候你会发现每一个客户你都要训练,如果表太复杂的话,一般一个不太大的公司,它的表可能都会有几千个列,你需要训练投入量特别大,还需要有专业的人才。

第二个就是联合查询。你的标量查询和向量查询,向量查询解决的是非结构化数据的查询,标量查询解决的结构化数据的查询,它两者之间的关联怎么来解?很多时候是用不同的数据架构在中间做融合和穿插,那不是一个好的解决方案。我们一定要遵从一个如无必要勿增实体。

到这个阶段后,你会发现向量数据库会带来极大的数据量,当前大家可能感知不是很明显,未来可能就会很明显了。你从非结构化,向量化化,你想以前我们结构化和非结构化数据比例是和数据价值是个什么情况,现在它相当于给非结构化数据增大了极高的数据价值,数据价值决定了存储产业的价值,所以我们应该感谢这个时代,它给我们创造了很多数据价值,也创造了很多存储价值,那意味着你能卖出更多的价值。所以我们用我们的表格存储来做这样的一个底座。

它有几个好处,第一个就是说它是向量和标量在一个数据库里边,可以做联合查询,你就不需要那么复杂,用两个数据库做了数据之后再做交叉。很多人会做很多牵强的处理,比如说统一建索引,建完索引之后,然后再从向量查询里边抽出来索引和标量数的差异,再做一次,然后再做二次的连表,然后再把结果输出来,没有必要,我们以一个数据库来解决这一个问题。

第二,我们跟我们的百炼平台和千寻平台进行了对接,这样的话你可以一站式做数据的标准检索项目查询,你只要在一个层级上全部解决了,而且不需要做那些额外的处理。

还有一个问题就是,当前大家还没有碰到瓶颈,很多人用AI AGENT的还是在实验阶段,小打小闹,真真正正如果商用,如果去做成一个海量化的业务系统的话,它一定会面临一个问题,向量化的速度、存储成本和检索成本,这个时候我们现在提供的是一个service的架构,这是在大部分数据库里边很少提供的。Service的架构就是说你可以按需来做,你查的多你就消耗的查询资源多,你就多付点查询的费用,你存的数据多,你多付点存储的费用,同时我们还支持分级。

而最关键的问题其实就是开箱即用,不需要掌握那么多知识,普及是很重要的。

我相信AI时代,中国在这方面依然是领先的,所以这方面依然是我们存储很大的机会。

第二就是在服务的过程中你会服务,当你把所有的今天你能看到的、国民级APP全部做了AI化改造之后,你就面临一个很典型的问题,如何收费和计费的问题,你如何把这个客户在AI上产生的这些消耗进行一个多租户的管理,如果是1亿的用户,我怎么样给他管理。我们其实在这个场景下,我们做了自带的消息模型,帮大家去存储这些东西,但那些都不重要。

最重要问题是两点,第一我们支持1亿个虚拟表,这样的话你可以对任何一个用户做单独的额度和配额的管理,还有计费计量的控制。

第二,我们刚才讲了serless的产品,所以开发周期你可以从一个月,甚至几个月缩短到几天。今天我其实很零碎的把AI从数据准备、模型训练和推理、AI如何落地讲了一下,也介绍了一些阿里的产品,比如说我们的数据库产品,同时支持传统的文件语义和HDFS语义。在数据处理的时候,我们还推出了我们新的产品特性临时盘,在多模态大模型的数据清治理情况下,可以大幅的降低你的存储使用成本,然后而且非常高效。

在训练的过程中,我们提供了我们的并行文件系统CPFS,它可以同时兼顾AI FACTOTY和AI COUND两个场景,然后在AI推理上我们推出了加速器,可以让你在对象存储上来做AI的推理,同时获取到像并行文件全闪存系统一样的接近它的性能。同时我们在AI AGENT诊断上提供了速度增强,一些增强能力,以及大模型推理上的一些东西。

当然我相信,就像我刚开始说的,今天我讲的只是这个时代的一个快照,我们其实有很多的领域值得去发掘。第一个领域,我们所有架构是否会发生改变?假如说到1:1的层级的话,我们的训练是否还是一个树形结构的元数据,我们还是传统的大数据之前的那种方式,我要把所有的训练机全部 shuffle一遍,我们以前是为了防止梯度下降的时候下降的不够随机,不是一个最优解。但当你到了全量的数据的时候,是否还需要?这个时候可能 key value storage serverless才是未来,所以我们一定坚信我们会做大做强我们的对象存储的产品能力,来等待那个时代。

第二,大家都看到了Cache的重要性,你单靠一个server端的存储是解决不了的,存储永远是整个数据中心中最慢的部件,不管你怎么优化,它都是最慢的。现在英伟达提出的观点是什么?CPU和PCle太慢,而不是存储太慢。

大模型最大的痛点是什么?是内存墙的问题,是显存的内存不够的问题。所以要解决这个问题的话Cache是很重要的,现在的Cache是覆盖到哪了,少部分覆盖的是server端的开始,比如说在传统存储上做加速,比如说我用全闪存做加速。第二种是我做元数据加速等。

下个时代我们需要考虑的是GPU的ROM和CPU ROM之间的CASH,比如说CheckPoint,1TB的数据是不是先 offload到CPU的ROM,GPU的ROM空出来之后我就可以继续训练了,再一步到持续化存储,其实现在很多大型的模型已经这么做了,包括阿里派平台上的 easy checkpoint,他已经在做这些相关的

第二是 GPU的数据调动,大家都知道GPS,GPU directory storage可以直接从GPU去加载,但是整个过程的控制指令还是CPU。英伟达GIDS是想从GPU虚拟出来了的一个队列来做数据的加载,它解决两部分问题,第一个问题就是说更精细化加载,以前GDS你是大块大块的加载,而GIDS你可以按需的去加载,这个时候你可以在一些小l的场景下效果可能达到一个很大。而这不仅仅是他当前的一个想法,他在这次的GTC上他做大型的DATASETACCCERLARE,他就把GPU的ROM和cpu ROM,还有本地的NVME,它做成一个统一的CASH慢慢做。‍‍‍

他当前是在哪个神经网络上在图神经网络上去做这个处理,因为图神经网络现在对于数据加载它的量很大,我们的常规的AI训练它是有批次的,有顺序的可以做预加载,当前的痛点并不强。但是我相信下一个时代一定是会有这样的需求的,所以假设英伟达把这一套全部在CUDA里边实现完成了之后,我们是如何去适配它,如何在这个场景下找到你独特的存储差异化,这是我们要考虑的一些问题。

还有我们是否能跳跃这个东西,我们往上看AI的训练和推理都基于拍照纸,而且现在拍照只是主流,它的DATASET其实就是一个内码,我们的存储是不是可以在这一层上搞一个确定性的市场,一个确定性的场景,确定性的技术需求,而且不需要你发散,不需要你做兼容性,我觉得这也是我们值得考虑,这些都是我们值得去思索的。