MiniMax云上AI数据湖最佳实践
内容介绍:
一、关于MiniMax
二、MiniMax云上基础架构情况
三、MiniMax基于阿里云的AI数据湖实践
四、与阿里云存储持续共创AI数据湖边缘缓存方案
本节课的主题是MiniMax云上AI数据湖最佳实践,由主讲人阿里云弹性计算机技术专家高庆端分享。
一、关于MiniMax
MiniMax成立于2021年12月,是一家专注于通用人工智能领域的创业公司。公司自主研发了多种模态的模型,并对外提供面向企业的ToB服务以及面向消费者的C端产品。
二、MiniMax云上基础架构情况
1、基础设施承载的业务情况
目前,MiniMax在B端与C端产品上,每日生成的token数量高达约3万亿,同时,每日图片生成量也达到了约2000万张,并伴随着7万小时的语音数据产生。这一庞大的数据生成量对我们的基础设施构成了严峻的挑战。
2、诉求
MiniMax需要在稳定性、灵活性和可靠性方面对自身业务提出更高要求,以确保业务的快速发展得到有力支撑。因此,在这个场景下,我们期望能够将在线业务部署在更加成熟、稳定且灵活的基础设施之上。
(1)在线业务
对于一个创业公司而言,如果所有端到端的业务都自行完成,其回报率往往较低。因此,MiniMax选择将所有的在线业务,包括部分GPU算力,都基于云平台进行部署,并实现弹性的扩展与收缩。这一决策的核心逻辑在于,云平台本身所提供的弹性扩展能力、基础设施的积累以及高度的稳定性,是创业公司短期内难以自行实现的,同时,利用云平台还能获得更高的性价比。
(2)全球化业务扩展
①业务全球化
除了将业务服务部署在云端之外,Minimax还因其拥有海外的C端产品,而需要将业务进行全球化、多地域的部署。
②成本和灵活性
除了在国内的业务布局外,Minimax在美国、东南亚以及欧洲均设有自己的数据中心和区域,构成了一个混合云的场景。出于成本效益和灵活性的考量,我们选择了多云策略。
③基础设施复杂度高
我们采用Kubernetes作为统一的基础设施平台,以屏蔽不同云之间的技术差异以及云内部基础设施的复杂操作和控制逻辑。Minimax的基础设施团队能够为公司内部业务提供一个统一的接口,从而忽略不同云及其特有属性的差异。
此外,MiniMax通过专线和互联技术,实现了整个云上基础设施的互联互通,确保了在多个region之间实现网络互通和业务互访。
三、MinMax基于阿里云的AI数据湖实践
1、MiniMax数据处理:计算的挑战与实践
(1)数据的分布与挑战
对于MiniMax而言,首要挑战在于处理和管理海量数据。首要区别在于,当前的数据以多模态和无结构化为主,这与传统基于schema的结构化数据大相径庭。无论是长文本、图片、视频,还是声音,都呈现出与以往不同的形态。其次,随着模型参数量的不断增长,为了高效训练模型,MiniMax需要不断积累高质量的数据。
基于上述背景,我们可以明确MiniMax在整体数据分布方面所面临的两大核心挑战。第一,多种混合数据的处理对效率构成了制约。例如,在处理视频数据时,需要进行编码和解码,并可能涉及模型推理、生成和识别等复杂操作,这就要求我们混合使用GPU和CPU来处理这些逻辑。第二,在数据量庞大的情况下,数据处理效率受到资源利用率和工具链的制约。因此,如何克服工具链和技术栈的差异,成为MiniMax在这一场景下亟待解决的关键问题。
(2)解决方案
随着时间的推移与技术的进步,解决方案也在不断迭代。
①Spark
2022年,MiniMax决定采用Spark作为其数据处理计算引擎的基础。然而,在实际业务运行中,我们逐渐发现Spark存在一些局限性。一方面,当处理非结构化数据时,Spark的处理能力显得力不从心。另一方面,在某些特定场景下,需要进行大量的模型推理和GPU调用,而这并非Spark所擅长的领域。
②K8s job
因此,在应对非结构化数据的处理场景时,MiniMax选择了最为灵活的方式,即直接利用Kubernetes(K8s)的Job功能对通用计算任务进行抽象化处理。然而,在使用K8s Job时,我们依然沿用了原有的分布式处理逻辑。这意味着我们需要对业务进行分布式的分片改造和容灾设计,同时,还需要额外封装一些与具体业务无关的通用分布式处理逻辑。
③Ray
随着需求的持续演变,MiniMax不断探索更加灵活、更适合自身需求的解决方案。最终,MiniMax决定将整个数理处理技术栈全面迁移到Ray平台上。在Spark和K8s Job无法充分满足的方面,Ray展现出了强大的痛点解决能力。例如,在资源调度方面,一个任务可能需要在CPU和GPU上混合运行。在K8s的调度逻辑下,任务可能会在CPU和GPU上同时启动,但往往会导致在GPU运行时,CPU资源处于闲置状态。而Ray的调度粒度非常细,达到了函数级别,这极大地减少了资源开销(overhead)。此外,无论是在模型服务(model serving)还是在边界调用上,Ray与Python生态系统的结合更加紧密,其语义表达也更为灵活。
2、MiniMax数据处理:计算资源供给
在解决了工具链和技术架构的难题后,我们面临的核心逻辑在于能够调配多少资源,这直接决定了我们能够处理的数据体量。对此,我们可以从以下三个维度进行深入考量:
首先是集群维度。在GPU时代,整体的算力分布成为了一个特殊的限制因素。无论是在云端还是本地,都存在多个集群的GPU算力资源。因此,我们在多个集群之间建立了一个统一的算力入口。
其次是时间维度。不同的业务集群具有不同的业务特征。例如,在我们的C端产品上,节假日的流量较高,傍晚时段会出现流量峰值,而工作时间的流量则相对平稳。而在一些B端场景中,ToB客户主要关注生产力,其整体流量可能主要集中在工作时间。为了满足不同业务在高峰时段的资源需求,我们为集群资源预留了一定的冗余。然而,这种情况下,波峰与波谷之间的资源差异较大。因此,充分利用不同业务在不同时间周期内的闲置资源变得尤为重要。
最后是单机资源维度。对于如何高效利用空闲的CPU或GPU资源,有以下几个关键点需要注意:一是GPU服务器的规格配置通常较高,但在训练和推理场景中,我们无法充分利用其全部性能。例如,一台H800服务器通常配备2T内存,但在训练场景中,并不会使用到所有的内存资源,这些未利用的内存本质上就是闲置资源。二是要充分利用GPU上的不同计算单元和模块。在进行推理时,我们使用GPU上的计算单元,通过tensor call进行操作;而在进行视频编解码时,则使用Decoder和Encoder的编解码单元。这些计算单元和逻辑在芯片上是独立的,互不干扰。因此,如何在推理任务中混合部署视频编解码功能,是构建视频生成模型时需要解决的一个关键问题。
在这三个维度上,MiniMax尽可能地复用已有的资源,从而提高整体的数据处理能力。目前,MiniMax大约90%的数据处理链路都端到端地运行在业务之外的空闲资源上,而非新开资源。
3、MiniMax数据处理:存储的挑战与实践
(1)挑战
当非结构化数据成为不可或缺的一部分时,我们意识到存储成本已经仅次于GPU成本,成为第二大成本,且在整体研发费用中占据了相当高的比例。
(2)解决方案
我们采用对象存储与数据湖技术作为整体的存储基础,以满足多样化的计算需求。这一点在2024年进行多模态数据融合时体现得尤为明显。首先,不同模态的数据在处理方法和思路上存在一定的差异。然而,在尝试融合这些数据时,我们发现如果继续采用非结构化的思路来处理和管理这些数据,数据治理、数据存储以及技术栈之间将无法实现有效融合。
鉴于此,MiniMax在2024年初启动了数据多模态融合的工作。目前,MiniMax已经成功地将全公司的数据整合为一张宽表,并将不同模态的数据作为宽表中的字段和计划项。这样的处理方式在数据治理与复用、知识传递以及成本节约等方面都展现出了显著的优势,是一个理想的解决方案。
4、MiniMax以阿里云OSS为底座,构建AI数据湖
之所以选择对象存储作为底层存储方案,主要是基于以下考虑。从大数据处理和存储的角度来看,这一场景更注重成本效益和吞吐量,而对延迟的要求相对较低。在大多数情况下,通过降低成本和提升吞吐量就能有效解决存储问题。对于那些对延迟有极高要求的特殊场景,我们可以将其作为特例,采用其他方式进行优化。
因此,MiniMax的数据系统和AI系统均采用了对象存储作为底层支撑。对于那些不符合高吞吐量要求的场景,我们选择了其他解决方案。具体而言,一是在阿里云上利用CPFS来加速对延迟敏感的场景;二是与阿里云合作,共同探索和实施加速方案。
在对系统进行分层之后,MiniMax开始对数据实施更为精细化的治理策略。我们将数据划分为标准、低频和归档三类,通过分析数据的访问频率和价值体系,制定更为精细化的数据治理方案,从而有效降低整体存储成本。
5、MiniMax AI数据湖建设实践受益
在AI数据库的建设方面,MiniMax最为重视的是成本和吞吐量。得益于对象存储所提供的稳定性和可靠性,MiniMax自成立以来,在长达三年的时间里,从未遭遇过因存储问题而引发的线上故障。与此同时,MiniMax的整体性能和业务规模能够持续保持线性增长态势。
四、与阿里云存储持续共创AI数据湖边缘缓存方案
就当前的算力分布而言,由于地域、电力等因素的限制,它呈现出一种既集中又分散的状态。我们在单个地域内倾向于部署相对较大的集群,并在国内多个区域布置多个算力集群。然而,这带来了数据流动和传输的问题。以往,我们依赖专线和手动搭建、研发的传输系统来实现不同集群间的数据流动。但这种处理方式存在局限,集群的处理速度易受专线带宽的限制,且加速效果不够直观。此外,我们需要事先明确数据的传输目标,并手动管理其生命周期。
因此,MiniMax与阿里云的对象存储团队携手开发了一套系统,旨在解决上述问题。该系统的核心目标有两个:一是以阿里云的某个区域作为MiniMax存储的基础;二是在多集群、多地域间实现数据的分发,通过Access Point实现统一接入,从而在任何节点上都能实现缓存加速和透明接入。换言之,我们可以利用短距离的专线连接MiniMax和同城的阿里云机房,同时确保在任何节点上都能对同一个Access Point进行透明访问、透明加速和生命周期管理。