直播首秀 AI大模型的存储之道 原创
AIGC 在 2023 年爆火,各类大模型层出不穷,参数动辄达到千亿数量级。这些背后,数据的类型和形式也走向复杂多样。例如大模型会采用到我们真实物理世界中的文字、视觉、音频、3D、雷达、多谱等复杂多样的不同模态信号和数据,数据则又存在结构化、半结构化、非结构化等多种形式。
在大模型发展的初期:GPU很贵,相比之下存储的成本忽略不计,可以直接选性能最好最贵的存储方案。典型的高性能文件系统有GPFS、Lustre、Weka,以及其他高性能NAS 等。这些系统通常依赖全闪存(NVMe) 和高性能网络提供极致性能。
但是随着算力、数据与团队投入都增大的时候,又发现新的问题:在预训练阶段,会产生更多实验结果和中间数据,加上各种模型的checkpoint 和日志数据,预训练环节总数据量预计将达到10PB 到 100PB。正式训练环节,虽然企业可以将全部数据存储于高性能存储系统中,但是,高性能文件系统的性能都与容量是关联的。如果要达到训练所需的I/O 性能,需要扩大高性能文件系统容量。
大模型背景下,“存力”成为关键基础设施能力。2023年10月,工业和信息化部等6部门联合印发了《算力基础设施高质量发展行动计划》,明确提出到2025年存储总量超过 180EB 、先进存储容量占比达30% 以上的目标。先进存储是指应用全闪存阵列、SSD 等先进存储部件,采用存算分离、高密等先进技术,单位容量数据操作能力达到万 IOPS(每秒读写次数)以上的存储模块。
下图展示了根据算法性能需求和所用硬件条件选择最合适的存储技术的流程。在实际训练过程中,可能会混合采用多种不同的存储技术。例如,在GPU集群中,通过高带宽的NVLink互联的GPU组使用基于层内并行的分布式显存管理技术;通过带宽较低的PCIe互联的GPU组使用流水线并行的方式。
大模型场景对于存力有着高吞吐、高IOPS、高带宽、低延时的极致性能要求。尤其是大模型训练环节,其数据量大、参数规模大、训练周期长、投资规模大等特点是传统AI场景所不具备的,因此为传统AI场景而构建的基于开源技术或商业化产品的存力难以满足性能需求。那什么样的存储架构才是AI大模型时代的最佳选择呢?
首先,可以指定数据首次写入时的放置策略,例如在数据获取阶段,新获取的数据需要在短时间内处理的,可以直接放置到高性能层;而新获取的数据在短时间内无需处理的或用来长期归档的数据,则可以直接写入容量层;其次,可以设置丰富的数据分级流动策略,例如可以设置访问频度与时间相结合的流动策略,也可以设置容量水位触发的流动策略;再者,根据用户制定的分级策略,数据能够在高性能层和大容量层之间自动分级流动,数据分级迁移过程对业务应用完全透明;最后,对于已经分级到容量层的数据,用户可以通过命令或API对指定的数据集配置预热策略,以加速计划性任务的冷启动速度。
大模型训练中的检查点Checkpoint
GPU 故障数量随着 GPU 集群规模的增大而提高。GPU 的频繁故障一方面会导致训练得到的参数丢失;另一方由于大模型训练中各 GPU 间的数据存在依赖关系,单 GPU 的故障会扩散到整个 GPU 集群中,有 2 类主要的工作解决大模型训练故障的问题:参数检查点和冗余计算。
参数检查点技术以设定的频率,将训练得到的参数信息存储到持久化的存储介质中,以对 GPU 故障进行容错。在 GPU 故障后,参数检查点技术利用最新且完整的参数进行恢复。参数检查点技术需要大容量的持久化存储设备以保存检查点信息。并且在恢复阶段,参数检查点需要从持久化介质中读取之前版本的参数,这导致恢复开销高,利用冗余计算的方式,在多张 GPU 中重复计算相同版本的参数,以对模型训练数据容错。在这个过程中,存储要能在AI训练每个epoch的shuffle阶段,提供高效的亿级文件列表获取能力;要能支撑住在上亿训练集文件上,通过为每个文件频繁创建新的硬链接,以实现训练集的版本管理能力。
数据总量和数据质量决定了AI大模型的高度,数据准备效率和数据在全流程间的流转效率将成为影响AI大模型端到端生产成本的核心要素。选择一套可以满足AI大模型快速发展的存储系统,对于提升大模型生产效率、降低大模型TCO至关重要。
大模型训练场景的基础设施,618直播间讨论。
Q1:说起AI大模型,我们首先联想到的是GPU,算力,英伟达。有这些就够了吗?
A1:显然不是,英伟达股价一路上涨,确实会让人有个错觉,AI就是GPU,其实不是,网上有句戏言:挖金子的AI还在亏,卖铲子却赚翻了。如果把数据当成一个矿藏,GPU好比挖矿的铲子一样。大模型训练除了需要GPU算力,存力也是AI大模型的重要保障,主要基于以下几个因素。
1,先说参数。ChatGPT 3.5发布的时候1750亿参数,火星人埃隆马斯克发布的Grok-1是3140 亿参数,源文件200G,运行起来就得700G显存。未来大模型参数千亿级别奔向万亿参数;
2,再说数据集。大模型已从单模态走向多模态,将来还会走向全模态;用于训练的数据集从3TB,增长到多模态40TB,未来全模态将会达到PB级数据;
3,对算力需求的增长速度大幅超越单GPU卡算力的增长速度,大模型训练集群的规模会变得越来越大,这样才能保证大模型的涌现能力;模型训练checkpoint数据量也从十几GB增长到几百个GB,检查点保存和恢复进度与模型大小成正比,更高频度的CheckPoint给存储带来巨大写入带宽挑战。
Q2:你刚才说到一个词,涌现能力这个词怎么理解?
A2:涌现 字面理解,厚积薄发。什么是“涌现现象”?当一个复杂系统由很多微小个体构成,这些微小个体凑到一起,相互作用,当数量足够多时,在宏观层面上展现出现象,就可以称之为“涌现现象”。在日常生活中也有一些涌现,譬如雪花,雪花的构成是水分子,水分子很小,但是大量的水分子如果在外界温度条件变化的前提下,相互作用,在宏观层面就会形成一个很规律、很对称、很美丽的雪花。
在AI大模型训练过程中,人工智能模型有时,似乎会突然「理解」一个问题,尽管它们只是记住了训练数据。这个突然转变的过程,有个形象的说法叫顿悟,大模型突然从简单地复制训练数据,转变为发现可推广的解决方案。
AI大模型拥有更强的涌现能力,才会拥有更精准的语言理解和推理能力。当然,这里有一个重要的前提是,足够多数据集对大模型进行高效训练和存储调度。否则的话,就算是有爱因斯坦的大脑,不识字不读书,那也很难进行创造性的思考。
Q3:那也就说,不管你有多少GPU,但没有足够多的数据集训练和存储调度,也是无法顿悟?
A3:是的,顿悟是模型涌向能力的形象说法,该能力无处不在,只要摸清条件,做好AI全流程的数据存储和资源调度,大模型就会顿悟,只是早晚的事。
AI全流程包括数据获取、数据预处理、模型训练与评估、模型部署应用这四个阶段,每个阶段都涉及海量数据的存储与访问。大模型的存储系统应该是什么样子呢?
这套存储系统需要同时具备高性能层和大容量层,并对外呈现统一的命名空间,具备数据全生命周期管理的能力。同时,这套存储还得可以承载AI全流程业务,支持NAS、大数据、对象、并行客户端等多种访问传输协议。而且呢,这套存储还得具备数千节点的横向扩展能力,随着存储节点数的增加,系统带宽和元数据访问能力可实现线性增长。这些需求,传统的存储,无论是集中式还是分布式,都是无法有效满足大模型训练的特殊应用场景。
Q4:在大模型场景中,京东云海是否具备以上特点?
A4:京东云海是京东云的存储底座,利用完全自研的统一存储引擎,提供块文件 对象 并行 分布式 大数据等五种协议访问,所有需要高效处理的数据 均在高性能存储层完成,AI全流程各阶段协同时,不再需要频繁迁移数据。
京东云海可以大幅提升AI大数据训练数据准备效率,提高AI计算集群的GPU利用率,显著降低算力投资成本 和数据预处理成本,大大缩短AI大模型开发的周期。生产一个千亿级参数的大模型端到端TCO总体拥有成本可以降低10%以上。
Q5:如此说来,京东云海确实是一款大模型训练必备产品,怎么才能称得上好呢?
A5:京东云海一套系统、一套参数具备高性能动态混合负载的承载能力。这该怎么理解呢?
在数据导入阶段,大小文件同时写入;在数据预处理阶段,大小文件批量读取处理后生成海量小文件;在模型训练阶段,海量小文件批量随机读取;在生成CheckPoint时,要能满足大高带宽写入;在模型部署阶段,即使大并发读取同一个模型文件,随着部署设备数量的增加,集群聚合吞吐带宽仍然可以线性增长。譬如,千亿级大模型产生的模型文件有 400 GB 左右,向业务推送时,需要并发分发到前端数千个业务实例上。分发过程涉及 数百TB数据的读取,因此需要高并发大带宽读取分发能力。
再说到一款好的产品是怎么样的?必然是成本更低 性能更优和稳定可靠三项特征的集合,而京东云海,就是这三者合一的最佳之选。还有很关键的一点是,交付方式十分灵活,可以是通过纯软件授权,软硬件一体机和系统集成的方式交付。
截止目前除了互联网电商场景外,在一些大的算力中心,银行证券医疗等行业已有落地案例。
本文转载自公众号数字化助推器 作者:天涯咫尺TGH