全文概览
人工智能(AI)的应用范围不断扩大,从简单的数据处理到复杂的模型训练和推理,都对计算和存储系统提出了前所未有的挑战。尤其是在大规模AI应用中,数据的体量和复杂性急剧增加,对存储系统的要求也变得更为苛刻。本文将深入探讨AI计算时代存储的核心问题与要求,特别是针对新兴的应用场景,如向量数据库(Vector DB)和检索增强生成(RAG)等。我们将揭示这些应用对性能、容量和吞吐量的独特需求,并探讨如何通过创新技术解决这些挑战。通过阅读本文,读者将了解当前和未来AI存储领域的关键问题,以及如何构建高效、统一的存储架构,以应对不断增长的数据需求和复杂计算任务。
主要内容:
阅读收获
讨论了AI领域面临的问题,主要包括以下几点:
图表展示了随着参数数量的增加,内存需求呈指数级增长,进一步说明了AI计算对存储和内存的高要求(仅针对模型状态和激活的理论计算,仅用于说明;基于FP16精度AI训练的计算。)。
数据移动在分布式系统中的重要性及其挑战。主要观点包括:
Cite
为缓解数据中心节点间的数据移动和复制,存储领域有哪些创新技术?如何解决问题?
这张图片的核心内容是展示了人工智能(AI)中数据的生命周期。它详细描述了数据从摄入、预处理、训练、验证、推理到归档的各个阶段,并指出了每个阶段的主要任务和挑战。具体来说:
图片还提出了一个主要挑战:最大化GPU/计算资源的利用率,并减少由于存储导致的停滞。
关于数据摄取和预处理的第一阶段(Phase 1: Data Ingestion and Pre-processing)。主要内容包括:
Cite
合肥推进数据标注基地建设 自2024年5月获批全国首批数据标注基地以来,完成数据标注总规模594TB,数据标注总产值累计达5.16亿元[1]。
互联网厂商作为应用平台,天然收集大量用户的高质量数据,而国内政府大数据局在辖区行政治理、地理规划、经济建设、企业管理等方面,同样也需要高质量数据。
数据摄取和预处理过程中的一些关键问题及其解决方案。
原始数据转换为训练样本(张量)
训练任务的多样性和地理分布
数据的稀疏性和高缩减比例
预处理由训练节点(CPU)执行时的问题
在基础设施中拥有高度优化的DIP(数据摄取管道)是极其重要的,以便存储和检索训练数据。
在16K GPU上进行的Hyperscalar Llama 3 405B预训练中,模型FLOPs利用率约为41%。 (BF16;4D并行性 TP=8,CP=1,PP=16,DP=128)
左侧架构图是训练过程的IO数据流,揭示了数据从存储系统到计算节点(CPU、GPU)的处理过程,共计10个步骤,右图说明了这10个步骤的工作顺序。
具体步骤如下:
步骤 | 描述 |
---|---|
1+3 | CPU将训练模型和样本数据从存储加载到主机内存。 |
2 | CPU将训练模型加载到GPU内存 |
4 | CPU将批次的训练数据加载到GPU内存 |
5 | GPU执行前向传播以计算损失/误差 |
6+7 | GPU执行反向传播 |
8 | GPU/CPU执行优化器 |
9 | GPU提交参数、优化器、梯度等,根据并行性将其发送到CPU进行检查点保存 |
10 | CPU将检查点文件持久化到存储服务器 |
如何理解模型训练过程的前向传播和反向传播?
在深度学习中,**前向传播(Forward Propagation)和反向传播(Backpropagation)**是模型训练过程中的两个核心阶段。它们一起确保模型能够学习到数据的模式并进行优化。
前向传播是指从输入层到输出层的计算过程。其基本步骤是:
目的:前向传播的目的是通过当前模型的参数(权重)进行一次前向计算,从而获得预测结果。在训练开始时,模型的权重是随机初始化的,因此模型的预测通常会与实际目标有很大的差距。
反向传播是用于训练神经网络的核心算法。它的目的是通过计算误差并将其“反向”传播,更新模型的参数(权重)。反向传播的步骤包括:
其中是真实值,是模型的预测值,是样本的数量。
其中,是模型的权重,是学习率,是损失函数对权重的梯度。
目的:反向传播的目的是根据损失函数的梯度来更新权重,从而使模型的输出更接近真实标签。这个过程反复进行,直到模型的损失降到最小,意味着模型的预测能力得到了优化。
这两个过程反复交替进行,直到模型在给定的训练数据上达到最优性能。
AI 训练过程的核心特征:
如何理解4D并行及其参数含义?
4D并行性是指在深度学习训练中,模型的分布式计算被划分成四个维度,每个维度控制不同的并行操作。以下是这些参数的详细解释:
这些并行性设置是针对大规模深度学习模型训练而设计的。通过合理配置张量、列、流水线和数据的并行化,可以显著提高训练速度,并确保在多个GPU或计算单元上有效地分配计算任务。
关键要点:
检查点机制是AI训练过程中不可或缺的一部分。它通过定期保存模型的状态,防止在训练过程中发生意外故障时丢失进度。随着故障发生频率的增加,检查点保存的频率也需要相应提高。对于大规模训练任务,崩溃或故障可能导致巨大的时间和金钱损失,因此检查点的使用对于确保高效训练至关重要。
--
检查点机制在大规模AI训练中至关重要,特别是在训练大型模型时。它通过序列化和持久化保存模型状态,使得在训练过程中出现故障时可以恢复训练。然而,随着模型规模的增长,检查点的存储频率和大小也会呈指数增长,这导致了检查点过程变得越来越分布式和复杂
--
检查点 = 序列化 + 持久化
右图显示随着模型参数的不断增加,Checkpoint 文件的大小与参数规模呈线性增长趋势,千亿参数规模下,检查点文件大概有10TB 左右。
检查点中的内容
随着模型参数数量的增加,检查点的频率和大小将急剧增长,从而使得检查点过程变得更加分布式和复杂,尤其是在持久化和恢复阶段。
在大规模AI训练中,检查点操作对于模型的恢复和容错至关重要,但它也会影响训练效率。特别是当检查点操作未经过优化时,训练过程会被暂停,最慢的节点成为瓶颈,从而导致时间浪费和资源浪费。因此,优化检查点的处理过程,以减少训练暂停时间和存储操作的延迟,是提高大规模训练效率的关键。
--
过程描述:
在新兴的AI推理应用中,RAG技术通过增强生成模型的上下文信息,提高了生成的准确性和相关性。随着应用的复杂性增加,尤其是在多模态生成任务中,存储系统面临巨大的压力,尤其是在连续数据流、索引和实时推理方面。因此,未来的存储解决方案必须能够有效地处理大量的数据和元数据,以支持这些新兴技术。
--
图示有3个重要信息:RAGs 工作流、对存储系统的要求;增强检索过程中的IO 特征。
关键点1: RAGs 工作流。
关键点2:RAG 场景主要数据IO 对存储系统的挑战:
数据摄取(Data ingestion):
嵌入模型加载(Embedding model loads):
索引(Indexing):
关键点3:增强检索过程的IO特征
检索过程(Retrieval):
带宽需求:
数据传输与减小比例:
Note
SSD 厂商关注到 原生向量检索过程大带宽传输是相对低效的,因此提出在SSD侧构建具备计算能力(端侧检索)的增强方案,从而达到减少数据迁移、提高有效带宽的效果。
方案是如何实现的?详可参考:Micron:SSD替换主存,加速AI落地
Note
对于云服务商而言,眼下基本上都提出了自家的模型推理服务平台,面向B端提供 RAGs 和微调功能,这种场景下如何提高供给方GPU基础设施利用率,且保障多租户服务质量,是云服务商需要思考的,可以预想到的是:未来行业交流中,必定会集中交换平台利用率和服务质量的检测数据。
值得思考的问题是:租户级别的计算、存储、网络 服务质量(SLA)如何监控?并做到有效保障?
AI存储系统面临的挑战不仅是提供足够的容量和带宽,还需要解决性能隔离的问题,尤其是在多租户环境下。
在AI应用的不同阶段,存储系统必须能够动态响应大量的数据请求和快速的流量变化,因此需要一个高效、统一且能够隔离性能的存储架构。
Note
如何构建统一的存储系统?是过去一段时间互联网、终端厂商的基础设施部门都在思考的问题,如何在业务快速发展的今天,设计出灵活、快速迭代的基础设施平台是才是真正的系统架构设计!
如果对上面提到的互联网、厂商的统一存储平台感兴趣,推荐阅读:JuiceFS 文章合集[2]
为应对大规模AI计算任务的存储和计算需求,基础设施需要进行深度优化,尤其是在GPU与存储的交互上。同时,硬件和软件的协同设计必须针对特定应用场景进行调整,以便更好地应对数据量的剧增和复杂计算任务的挑战。最终,目标是保持GPU的高效利用,确保计算任务和数据传输顺畅无阻。
这其中具体的优化路径,包含以下:
Deep Dive
后注:材料原标题:Storage in the era of large scaele AI-computing,本文由笔者根据演示材料整理而成,Andy在24年11月曾发表过演讲翻译稿,建议阅读,了解演讲者原意,比较心得。