前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >AMD:人工智能时代:存储挑战与解决方案

AMD:人工智能时代:存储挑战与解决方案

作者头像
数据存储前沿技术
发布2025-02-11 20:01:41
发布2025-02-11 20:01:41
1130
举报

全文概览

人工智能(AI)的应用范围不断扩大,从简单的数据处理到复杂的模型训练和推理,都对计算和存储系统提出了前所未有的挑战。尤其是在大规模AI应用中,数据的体量和复杂性急剧增加,对存储系统的要求也变得更为苛刻。本文将深入探讨AI计算时代存储的核心问题与要求,特别是针对新兴的应用场景,如向量数据库(Vector DB)和检索增强生成(RAG)等。我们将揭示这些应用对性能、容量和吞吐量的独特需求,并探讨如何通过创新技术解决这些挑战。通过阅读本文,读者将了解当前和未来AI存储领域的关键问题,以及如何构建高效、统一的存储架构,以应对不断增长的数据需求和复杂计算任务。

主要内容:

  1. 引言 计算与存储之间的性能差距显著,尤其是在AI应用中。 存储需求涵盖容量与成本、可用性、可靠性、IOPS、吞吐量和安全性等。
  2. 背景介绍 AI数据具有5V特性(体积大、速度快、价值高、多样性和真实性)。 AI需求变得更加多样化,涵盖文本、图像、视频等多种形式的数据。 现有的单存储系统无法满足日益增长的模型和数据需求。 随着数据体量的增加,计算系统的内存总是不够用。
  3. 数据移动在AI生产中的挑战 构建更大、更广泛的分布式系统,基于Scale-up或Scale-out架构。 计算流量集中在东西向流量上,涉及并行性、集体优化、批处理、数据类型和量化等技术。 数据移动的复杂性,大量数据需要在不同节点、服务器、机架和数据中心之间移动。 存储可能成为瓶颈,导致GPU等关键计算资源需要等待数据。 存储的重要性被忽视,但其在AI中扮演关键角色。
  4. AI数据管道 数据摄入、预处理、训练、验证、推理和归档的生命周期。 数据摄入和预处理的高读写吞吐量需求。 训练过程中的高内存需求和检查点机制。 推理场景对延迟的敏感性,需要低延迟的存储子系统。
  5. AI训练的完整IO工作流 模型加载、训练数据加载、前向传播、反向传播、优化器执行、检查点保存和持久化。 4D并行性(TP=8,CP=1,PP=16,DP=128)的详细解释。 检查点机制的重要性及其对基础设施的影响。
  6. RAGs工作流与优化方向 RAG技术通过增强生成模型的上下文信息,提高生成的准确性和相关性。 多模态数据和元数据的存储需求。 数据摄取、嵌入模型加载、索引和检索过程中的IO特征。
  7. 多租户场景的复杂IO行为 多租户环境下的并发IO请求和性能隔离。 高元数据需求和文件操作的挑战。
  8. 思考与展望 统一存储系统的需求,以适应不同阶段的AI管道需求。 高效、统一且能够隔离性能的存储架构的重要性。 未来AI存储系统的优化路径,包括GPU优化的基础设施、领域特定的硬件与软件协同设计和AI存储拓扑考虑。

阅读收获

  1. 了解AI计算的核心挑战:通过阅读本文,读者可以全面了解当前和新兴AI应用中的计算核心挑战,包括数据的5V特性、多模态需求、系统和存储挑战以及内存与数据需求。
  2. 掌握AI存储的关键要求:读者将了解AI存储系统在容量、性能、可靠性、IOPS、吞吐量和安全性等方面的具体要求,特别是在数据摄入、预处理、训练、验证、推理和归档等不同阶段的需求。
  3. 认识创新技术的应用:读者将了解到CXL、计算型存储、内存解耦和内存池化、ZNS等创新技术如何解决AI存储问题,提高数据传输效率和存储性能。
  4. 理解多租户环境下的复杂IO行为:通过本文,读者可以理解多租户环境下的并发IO请求和性能隔离的重要性,以及高元数据需求和文件操作的挑战。

问题意识:AI 与 数据

讨论了AI领域面临的问题,主要包括以下几点:

  1. 5V特性AI数据具有体积大、速度快、价值高、多样性和真实性等特点。
  2. 多模态需求AI需求变得更加多样化,涵盖文本、图像、视频等各种形式的数据,且数据变得越来越稀疏。
  3. 系统和存储挑战现有的单存储系统无法满足日益增长的模型和数据(含元数据)需求。
  4. 内存与数据需求随着数据体量的不断增加,计算系统的内存总是不够用的。

图表展示了随着参数数量的增加,内存需求呈指数级增长,进一步说明了AI计算对存储和内存的高要求(仅针对模型状态和激活的理论计算,仅用于说明;基于FP16精度AI训练的计算。)。

数据移动在AI生产中面临的挑战

数据移动在分布式系统中的重要性及其挑战。主要观点包括:

  1. 构建更大、更广泛的分布式系统基于 Scale-up 或 Scale-out架构来设计,通常非常昂贵。
  2. 计算流量大部分集中在东西向流量(计算)上,涉及并行性、集体优化、批处理、数据类型和量化等技术。
  3. 数据移动的复杂性大量数据需要在不同节点、服务器、机架和数据中心之间移动。
  4. 存储瓶颈问题存储可能成为瓶颈,导致GPU等关键计算资源需要等待数据。
  5. 存储的重要性被忽视尽管存储在AI中扮演关键角色,但往往被忽视和最少被讨论

Cite

为缓解数据中心节点间的数据移动和复制,存储领域有哪些创新技术?如何解决问题?

  1. CXL(Compute Express Link)技术:CXL是一种开放标准,支持高速、低延迟的内存和存储互连。通过CXL,可以实现内存池化和共享,减少数据在不同节点间的复制和传输,提高数据传输效率。CXL技术支持多种类型的记忆体,包括易失性和非易失性,以及CPU和CXL设备内存一致性,支持交换、内存池化及共享,直接点对点通信。
  2. 计算型存储(Compute Storage):计算型存储将计算任务从CPU卸载到存储设备,如DPU(数据处理单元),在存储节点上进行数据加密、解压、重删、压缩和加密等操作,减少数据在CPU和存储之间的移动,提高整体性能。
  3. 内存解耦和内存池化:通过CXL技术,可以实现内存解耦,将内存资源从CPU服务器中分离出来,形成独立的内存池,多个主机可以共享内存资源,减少数据复制和传输。
  4. ZNS(Zoned Namespace):ZNS是一种为QLC介质优化的数据IO路径,通过为每个应用程序分配专属存储命名空间,数据块被组织成一定大小的zoned,改善SSD随机写过程放大效应,提高QLC介质的耐用性和性能。

AI 数据管道

这张图片的核心内容是展示了人工智能(AI)中数据的生命周期。它详细描述了数据从摄入、预处理、训练、验证、推理到归档的各个阶段,并指出了每个阶段的主要任务和挑战。具体来说:

  1. 数据摄入(Data Ingestion)通过批量插入(bulk-insert)从各种数据源/云/数据中心摄入大量对象。
  2. 预处理(Preprocessing)通过多种转换管道(ETL)准备用于训练的张量(tensors),包括注释、索引和搜索等密集型任务。
  3. 训练(Training)加载模型,批量数据并行训练,更新权重和参数,同时持久化检查点,重复训练周期(epoch)。
  4. 验证(Validation)验证模型参数和梯度,进行重放(replays)。
  5. 推理(Inference)加载训练好的模型参数,处理实时输出生成的推理查询(store)。
  6. 归档(Archive)管理数据的生命周期,长期保留训练数据和模型。

图片还提出了一个主要挑战:最大化GPU/计算资源的利用率,并减少由于存储导致的停滞。

Phase 1:数据摄取与预处理

数据摄取&预处理 IO 特征

关于数据摄取和预处理的第一阶段(Phase 1: Data Ingestion and Pre-processing)。主要内容包括:

  1. 数据摄取(Data Ingestion)
    • 收集各种形式的数据(如文本、图像、视频等),并将其以不同格式高效地存储,以便后续的预处理。
    • 通过Kafka-like流或RocksDB上的流进行日志聚合。
    • ETL(提取、转换、加载)管道和特征(主要是稀疏的)经常更新。
    • 特点包括PB级容量、对象/文件协议、高并发W吞吐量、高队列深度和加密。
  2. 预处理(Pre-processing)
    • 持续地将原始数据转换为训练任务所需的预处理张量,以提高效率(低延迟、高吞吐量)。
    • 动态地以不同格式读取样本(特征)。
    • 将原始数据转换为训练样本。
    • 包括过滤、解密、重建和多种格式转换(多个ETL作业)。
    • 特点包括高读写吞吐量、顺序写入、高级压缩/解压缩、元数据量大和高队列深度。
  3. 功耗分析
    • 图片中还提到,在超大规模基础设施中,数据摄取和预处理消耗的功率比训练本身更多。
    • 提供了一个功耗分布的示例图表,显示了不同资源管理器(RM1、RM2、RM3)在摄取、预处理和训练方面的功耗百分比。

Cite

合肥推进数据标注基地建设 自2024年5月获批全国首批数据标注基地以来,完成数据标注总规模594TB,数据标注总产值累计达5.16亿元[1]。

互联网厂商作为应用平台,天然收集大量用户的高质量数据,而国内政府大数据局在辖区行政治理、地理规划、经济建设、企业管理等方面,同样也需要高质量数据。

数据摄取和预处理的问题

数据摄取和预处理过程中的一些关键问题及其解决方案。

原始数据转换为训练样本(张量)

  • 需要进行大量的过滤操作。

训练任务的多样性和地理分布

  • 训练任务种类繁多,并且分布在不同的地理位置。

数据的稀疏性和高缩减比例

  • 数据通常较为稀疏,操作涉及高比例的过滤。

预处理由训练节点(CPU)执行时的问题

  • 导致GPU停滞等待数据。
  • 存储服务器的高IOPS(每秒输入/输出操作数)。
  • 前端资源(CPU、内存)瓶颈。
  • 网络接口卡(NIC)高度超额订阅(按线速)。

在基础设施中拥有高度优化的DIP(数据摄取管道)是极其重要的,以便存储和检索训练数据。

Phase 2:AI 训练

AI 训练的完整IO工作流

在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)**是模型训练过程中的两个核心阶段。它们一起确保模型能够学习到数据的模式并进行优化。

1. 前向传播(Forward Propagation)

前向传播是指从输入层到输出层的计算过程。其基本步骤是:

  • 输入数据首先,将输入数据(例如图像或文本)传递到模型的输入层。
  • 加权求和每个神经元会接收来自前一层神经元的输入,并进行加权求和。加权的权重是模型在训练过程中不断调整的参数。
  • 激活函数加权求和后的结果会通过一个激活函数(如ReLU、Sigmoid、Tanh等),以便引入非线性特性。这使得神经网络可以学习到更加复杂的映射关系。
  • 输出经过每一层神经网络的处理,最终会得到模型的预测输出。

目的:前向传播的目的是通过当前模型的参数(权重)进行一次前向计算,从而获得预测结果。在训练开始时,模型的权重是随机初始化的,因此模型的预测通常会与实际目标有很大的差距。

2. 反向传播(Backpropagation)

反向传播是用于训练神经网络的核心算法。它的目的是通过计算误差并将其“反向”传播,更新模型的参数(权重)。反向传播的步骤包括:

  • 计算误差(Loss)首先,模型通过前向传播得到预测值,然后与真实值(标签)进行比较,计算出误差。常见的误差度量方式是损失函数(如均方误差MSE、交叉熵损失等)。

其中是真实值,是模型的预测值,是样本的数量。

  • 误差反向传播:接下来,误差从输出层反向传播到输入层。在每一层,反向传播计算每个权重对总误差的贡献,也就是计算每个权重的梯度。这个过程是通过链式法则(Chain Rule)进行的,用于计算每个参数对损失函数的偏导数。
  • 更新权重:根据计算出的梯度,利用优化算法(如梯度下降)来更新权重,以减小误差。梯度下降的更新规则通常是:

其中,是模型的权重,是学习率,是损失函数对权重的梯度。

目的:反向传播的目的是根据损失函数的梯度来更新权重,从而使模型的输出更接近真实标签。这个过程反复进行,直到模型的损失降到最小,意味着模型的预测能力得到了优化。

3. 总结
  • 前向传播是计算预测结果的过程。数据从输入层开始,经过各个隐藏层,最终输出预测值。
  • 反向传播是计算梯度并更新模型权重的过程。通过将预测误差反向传递并优化模型的参数,使得模型逐步变得更加准确。

这两个过程反复交替进行,直到模型在给定的训练数据上达到最优性能。

AI 训练过程的核心特征:

  1. 高内存需求模型状态、激活、训练数据和检查点都需要大量的内存。
  2. 高突发性流量主机NICs的线速率(400Gbps)表明流量具有高突发性和周期性。
  3. 双向流量包括东西向流量(集合流量)和南北向流量(负载和检查点)

如何理解4D并行及其参数含义?

4D并行性是指在深度学习训练中,模型的分布式计算被划分成四个维度,每个维度控制不同的并行操作。以下是这些参数的详细解释:

  1. TP (Tensor Parallelism, 张量并行性) = 8 张量并行性指的是将模型中的张量(例如矩阵乘法的权重)划分成多个部分,并将这些部分分配到多个处理单元上进行计算。在这个例子中,TP=8意味着模型的计算任务被分割成8个部分,每个部分由不同的计算单元并行处理。
  2. CP (Column Parallelism, 列并行性) = 1 列并行性是指将计算中的列划分给不同的处理单元。CP=1意味着没有进行列并行化,所有列都由一个处理单元负责计算。
  3. PP (Pipeline Parallelism, 流水线并行性) = 16 流水线并行性指的是将模型的计算过程分成多个阶段,每个阶段可以在不同的处理单元上并行执行。PP=16意味着将训练过程分成16个阶段,这样可以使得不同的计算阶段在不同的设备上并行进行,提升训练效率。
  4. DP (Data Parallelism, 数据并行性) = 128 数据并行性指的是将训练数据分成多个批次,并将这些批次分配给多个处理单元进行并行计算。DP=128意味着数据被分成128个批次,每个批次分别由不同的计算单元处理,从而提高计算效率。

这些并行性设置是针对大规模深度学习模型训练而设计的。通过合理配置张量、列、流水线和数据的并行化,可以显著提高训练速度,并确保在多个GPU或计算单元上有效地分配计算任务。


聚焦:模型加载过程的IO特征

  • 模型加载(TB级),每个周期加载一次。
  • 训练样本按批次加载到训练节点。
  • 对于1T(1000B)参数的模型,训练所需的数据大约为O(800TB)。 高读取吞吐量需求,大量小文件的随机读取(以元数据为主)。
  • 数据加载(准备)会导致高数据中心开销。
    • 由于短时加载过程对网络吞吐的高要求,主机资源和网络通常超额配置。
    • DLRM(深度学习推荐模型)数据具有高去重潜力。
    • 包含多种功能,主要是过滤操作、(去)压缩等。
  • GPU停滞,由于加载管道效率低下。

关键要点:

  • 该过程对读取延迟非常敏感,涵盖了不同的输入/输出大小(批次、迷你批次、重放等)。

AI 训练-检查点

检查点机制是AI训练过程中不可或缺的一部分。它通过定期保存模型的状态,防止在训练过程中发生意外故障时丢失进度。随着故障发生频率的增加,检查点保存的频率也需要相应提高。对于大规模训练任务,崩溃或故障可能导致巨大的时间和金钱损失,因此检查点的使用对于确保高效训练至关重要。

--

  • 训练通常持续数周甚至数月
  • 检查点是保存模型快照和关键信息的关键机制。
    • 没有检查点的情况如果训练过程中发生故障,进度将丢失,必须从头开始训练。
    • 有检查点的情况通过定期保存模型状态,可以在发生故障时回滚到最后一个保存的检查点,从而恢复训练,而无需重新开始。
  • 由于MTBF(平均故障间隔时间)不断降低,因此检查点保存的频率也需要增加。
  • 故障成本:在任何GPU上发生崩溃都可能非常昂贵,涉及时间、金钱、电力、资源等方面。
    • 例如,某个大规模数据中心的客户表示,若每小时保存一次检查点,在使用3000 GPU的训练过程中,回滚操作的成本为30万美元。

检测点:究竟是什么?

检查点机制在大规模AI训练中至关重要,特别是在训练大型模型时。它通过序列化和持久化保存模型状态,使得在训练过程中出现故障时可以恢复训练。然而,随着模型规模的增长,检查点的存储频率和大小也会呈指数增长,这导致了检查点过程变得越来越分布式和复杂

--

检查点 = 序列化 + 持久化

  1. 序列化(Serialization)
    • 创建张量文件兼容的结构将数据结构转换为可以存储并在需要时恢复的格式。
    • 量化数据(Quantize data)对数据进行量化处理,以减少存储需求并加快处理速度。
    • 增强元数据为数据增加元数据,以便在恢复(加载)检查点时更容易重建模型状态。
  2. 持久化(Persistence)
    • 将张量序列化后的量化文件写入远程持久化存储将模型的检查点数据存储到可扩展和高可用的远程存储中。
    • 远程存储提供了可扩展性和高可用性。
    • 文件数量和大小还依赖于并行化的划分方式(parallelism shard)。
  3. 检查点过程
    • 创建文件写入序列检查点过程包括对文件的多次写入,以确保模型状态的持续保存。

右图显示随着模型参数的不断增加,Checkpoint 文件的大小与参数规模呈线性增长趋势,千亿参数规模下,检查点文件大概有10TB 左右。

检查点中的内容

  • 模型参数(如权重、偏置)
  • 优化器状态(如动量、方差、梯度)
  • 可能还包括元数据,如数据类型、文件大小、迭代器、GPU排名、并行化方式等

随着模型参数数量的增加,检查点的频率和大小将急剧增长,从而使得检查点过程变得更加分布式和复杂,尤其是在持久化和恢复阶段。


检查点写入过程的影响

在大规模AI训练中,检查点操作对于模型的恢复和容错至关重要,但它也会影响训练效率。特别是当检查点操作未经过优化时,训练过程会被暂停,最慢的节点成为瓶颈,从而导致时间浪费和资源浪费。因此,优化检查点的处理过程,以减少训练暂停时间和存储操作的延迟,是提高大规模训练效率的关键。

--

过程描述

  • 训练周期(Epoch):训练被分成多个周期,每个周期中包括多个迭代。
  • 迭代(Iteration):在每个训练周期内,进行若干次迭代,每次迭代包含多个计算步骤。
  • 检查点操作每个GPU在进行训练计算时,会在某些时刻执行检查点操作,这包括:
    • 将GPU的内存(HBM)数据存储到主内存(Host Memory)中。
    • 将数据刷新到持久存储(Persistent Storage)中,以确保模型的状态被保存。
  • 梯度汇总在训练过程中,所有GPU

检查点机制对基础设施的影响

  • 检查点在训练节点(/GPU)和存储子系统上的影响巨大
    • 随着模型规模、总检查点大小以及每个GPU的存储需求不断增长,检查点操作对基础设施的压力也在增加。
    • 对于超大规模的数据中心(hyperscalars),例如Llama 3的训练中,每个GPU需要1MB到4GB的内存存储空间,约30GB/GPU的需求。
  • 持久化和恢复变得更加困难,随着复杂的交互增多:
    • 数据并行性(DP)张量并行性(TP)3D并行性(TP、PP、DP),以及现在的4D并行性等技术,使得检查点的持久化和恢复更加复杂。
  • 存储系统的挑战
    • 管理存储带宽(BW)需要在数据中心内同时持久化多个大规模检查点(每个模型TB级)。
    • 高突发性和周期性负载例如,当网络接口卡(NIC)达到线速时,会使得存储系统受到极大压力,特别是在Llama 3的训练中。
    • 不可预测的延迟和多租户环境可能会导致SLA(服务级别协议)违约,进一步增加了存储操作的复杂性。
    • 存储NIC过度订阅为了避免存储和计算系统的瓶颈,存储网络接口卡(NICs)需要高效的速率限制调度器,以减少停滞和故障。
  • 目标
    • 存储生态系统(计算、网络和存储子系统)的目标是最大化GPU带宽利用率,并最小化加载和存储检查点所需的时间。

Phase 3:AI 推理

推理场景的存储需求

  • 大多数推理部署基础设施对延迟非常敏感
    • 为了提供实时的输出,推理系统必须快速响应用户查询。
    • 需要快速且可靠地部署模型,通过高效加载训练好的模型来减少部署时间(time-to-deploy)。
  • 存储子系统需要提供严格的低延迟SLA(服务级别协议)保证,特别是在多租户环境下处理批量大型语言模型(LLM)时。
    • 推理工作负载通常以小规模的随机读IO为主。
    • 相同的数据需要被多个任务共享,要求性能隔离,以防止一个任务影响到其他任务的性能。
    • 需要扩展存储(Scale-out storage),用于不同GPU之间的数据共享,并保证高可用性和高性能。
  • 目标
    • 提供扩展、共享、高性能的存储,以低延迟、高带宽满足推理节点GPU的数据需求,从而最大化GPU的计算能力。

推理场景:RAGs 和 向量数据库

在新兴的AI推理应用中,RAG技术通过增强生成模型的上下文信息,提高了生成的准确性和相关性。随着应用的复杂性增加,尤其是在多模态生成任务中,存储系统面临巨大的压力,尤其是在连续数据流、索引和实时推理方面。因此,未来的存储解决方案必须能够有效地处理大量的数据和元数据,以支持这些新兴技术。

--

  • LLMs(大规模语言模型)在生成过程中的问题
    • 在生成过程中,LLMs容易出现“幻觉”(hallucinations)和不准确的信息。
    • 之前训练的模型基于时间戳和时变信息,当推理查询到达时,这些信息可能已经不再适用或不再相关。
    • 企业希望为基础模型提供特定领域的上下文信息,但同时又不希望将内部数据暴露给基础模型。
  • 因此,出现了RAG(检索增强生成)
    • RAG通过增强外部信息(或大规模语料库)和用户查询,来检索与基础LLM生成最相关的上下文信息。
    • 通过这种方式,RAG可以为生成最相关、最准确的回答提供上下文支持。
  • RAG应用有巨大的存储需求
    • GenAI任务正变得更加多模态,涉及图像、文本、视频等多种对象。
    • 连续的数据摄取(例如通过Kafka流),索引(如嵌入)、实时数据增强和推理(如检索/过滤)等,都需要巨大的存储支持。
  • 存储挑战
    • 存储需要处理大量的数据和元数据,以支持这些复杂的RAG应用。图像、视频等数据对象和相关的元数据会大幅增加存储需求。
  • 结论
    • 内存永远不足以满足数据和元数据的需求。为了处理如此庞大的多模态数据和生成任务,必须依赖高效的存储解决方案。

RAGs 工作流与优化方向

图示有3个重要信息:RAGs 工作流、对存储系统的要求;增强检索过程中的IO 特征。

关键点1: RAGs 工作流。

  • 初始加载嵌入模型到GPU(Initial Load Embedding Model into GPUs)
    • 在此步骤中,嵌入模型被加载到前端计算的GPU中,以便在后续步骤中进行数据处理和推理。
  • 使用LLM创建查询嵌入(Create query embedding using LLM)
    • 用户发出查询请求后,通过使用大规模语言模型(LLM)生成查询嵌入(qe)。该嵌入表示查询的上下文并可以用于后续检索。
  • 将查询嵌入传递给VectorDB(Pass query embedding to VectorDB)
    • 将生成的查询嵌入(qe)传递到VectorDB系统,进行向量检索(vector search),从中找出最相关的上下文(top-k)来增强LLM的生成能力。
  • 检索(Retrieval)
    • 在VectorDB中,基于查询嵌入进行检索,找到与查询最相关的上下文。检索操作依赖于存储系统高效的向量搜索算法。
  • 后检索处理(Post Retrieval)
    • 在检索到的top-k上下文的基础上,进一步进行处理。此步骤中,检索到的上下文可能会与用户的原始输入(提示)结合,形成完整的上下文,以便用于最终的生成过程。
  • Top-k上下文增强(Top-k contexts augmented with the user prompt)
    • 在此步骤中,检索到的top-k上下文会与用户的输入提示结合,输入同样的嵌入模型。这样,嵌入模型将处理组合后的数据,生成最终的推理结果。

关键点2:RAG 场景主要数据IO 对存储系统的挑战:

数据摄取(Data ingestion)

  • 操作通过流(logs via streams)进行数据摄取(实时更新)。
  • 需求需要顺序写入(sequential writes),要求高带宽(high BW),并且优选对象存储(Object storage)
  • 原因流数据通常需要快速写入,并且对象存储能够提供较高的带宽和扩展性,适合用于存储大量日志数据。

嵌入模型加载(Embedding model loads)

  • 操作加载嵌入模型(embedding model)。
  • 需求需要高读带宽(high read BW)和低延迟(low latency)**,以便快速部署。
  • 原因加载嵌入模型时,数据需要快速读取且尽量减少延迟,确保模型能够快速启动并为推理过程提供支持。

索引(Indexing)

  • 操作创建嵌入向量(clustering),用于索引。
  • 需求需要高读/写带宽(high read/write BW)
  • 原因创建嵌入向量时,需要高带宽来支持大量的读写操作,以便在索引过程中快速处理和存储数据。

关键点3:增强检索过程的IO特征

检索过程(Retrieval)

  • 操作检索过程包括过滤搜索,其目的是根据向量搜索相似度来找到最相关的top_k上下文
  • 数据传输
    • 需要将大量的文件(数据和索引)从存储传输到推理GPU服务器。
    • 这一过程通常需要传输大量数据,因此对网络带宽的要求非常高。

带宽需求

  • 存储到CPU带宽(Storage → CPU BW):要求高存储带宽。
    • 由于数据需要从存储系统传输到CPU,存储带宽至关重要,以保证数据能够快速有效地传输。
  • CPU到GPU带宽(CPU → GPU BW):传输的数据需要从CPU传输到GPU,进一步进行处理和推理。
  • GPU到GPU带宽(GPU → GPU BW):在多GPU设置中,数据还需要在GPU之间传输,尤其是在进行数据复制和减少的过程中。

数据传输与减小比例

  • 在这个过程中,数据传输量非常大,但有高减小比例。这意味着尽管传输了大量数据,但很多数据会在计算过程中被压缩或筛选掉,减少了最终需要处理的数据量。

Note

SSD 厂商关注到 原生向量检索过程大带宽传输是相对低效的,因此提出在SSD侧构建具备计算能力(端侧检索)的增强方案,从而达到减少数据迁移、提高有效带宽的效果。

方案是如何实现的?详可参考:Micron:SSD替换主存,加速AI落地


多租户场景的复杂IO行为

  • 多租户环境
    • 通常,GenAI部署是由多个租户共享和使用的。不同的租户可能会在相同的基础设施上同时运行各自的AI任务。
  • 混合的IO特征
    • 由于多个AI管道的不同阶段在并行执行,通常不会观察到单独阶段的IO特征。相反,会看到一个混合的IO配置,即多个阶段的IO活动交织在一起。
  • 多阶段并行执行
    • 多个AI管道的不同阶段(例如数据摄取、训练、推理等)会在同一时刻并行执行,因此系统需要能够处理并发的IO请求。
  • 性能隔离
    • 对每个客户端和每个阶段进行性能隔离是非常重要的。确保不同租户或不同阶段的AI任务不会互相影响,有助于提升每个任务的性能和响应速度。
  • 高元数据需求
    • 这些部署非常依赖元数据,因为系统中涉及大量的文件操作。随着多个租户和多个阶段的并行操作,系统会面临巨大的元数据处理压力,尤其是在进行文件读写和管理时。

Note

对于云服务商而言,眼下基本上都提出了自家的模型推理服务平台,面向B端提供 RAGs 和微调功能,这种场景下如何提高供给方GPU基础设施利用率,且保障多租户服务质量,是云服务商需要思考的,可以预想到的是:未来行业交流中,必定会集中交换平台利用率和服务质量的检测数据。

值得思考的问题是:租户级别的计算、存储、网络 服务质量(SLA)如何监控?并做到有效保障?


思考

AI存储系统面临的挑战不仅是提供足够的容量和带宽,还需要解决性能隔离的问题,尤其是在多租户环境下。

在AI应用的不同阶段,存储系统必须能够动态响应大量的数据请求和快速的流量变化,因此需要一个高效、统一且能够隔离性能的存储架构。

  • 统一存储系统将是必需的,它需要具备性能隔离,以适应不同阶段的AI管道需求(例如训练、推理、数据准备等)。
  • 这样的存储架构能够更好地支持大规模的基础设施,并保证每个阶段的需求得到满足,且不会互相干扰。

Note

如何构建统一的存储系统?是过去一段时间互联网、终端厂商的基础设施部门都在思考的问题,如何在业务快速发展的今天,设计出灵活、快速迭代的基础设施平台是才是真正的系统架构设计!

如果对上面提到的互联网、厂商的统一存储平台感兴趣,推荐阅读:JuiceFS 文章合集[2]


最终的思考

为应对大规模AI计算任务的存储和计算需求,基础设施需要进行深度优化,尤其是在GPU与存储的交互上。同时,硬件和软件的协同设计必须针对特定应用场景进行调整,以便更好地应对数据量的剧增和复杂计算任务的挑战。最终,目标是保持GPU的高效利用,确保计算任务和数据传输顺畅无阻。

这其中具体的优化路径,包含以下:

  • 完整的端到端重新设计(GPU优化的基础设施)
    • GPU节点间交互在大规模环境下进行GPU间和GPU内节点的交互,例如使用UALink(用于GPU节点间的高效连接)。
    • 高效的传输机制通过Ultra-Ethernet等机制,实现高效的数据传输。
    • 高度优化的GPU-存储交互通过直接RDMA(远程直接内存访问)服务,支持大规模的GPU和存储交互。
    • 加速器(GPU)与各种存储的直接接口GPU可以直接与所有类型的存储进行交互,提高存储和计算效率。
  • 领域特定且可编程的硬件与软件联合设计
    • 在整个计算、网络和存储栈中,采用领域特定和可编程的硬件-软件协同设计,确保在不同计算任务中最优的资源利用。
    • 计算无处不在通过CPU卸载、网络计算、近存储计算(如DPU、CPU)等手段,提升计算效率。
  • AI存储拓扑考虑
    • 存储前景流量与后台流量的平衡需要平衡存储系统中不同类型流量(如实时推理任务的前景流量与后台任务的流量),确保不会互相干扰。
    • 定义适合存储的传输方式在存储和计算之间定义适当的传输方式,特别是在NVMe-oF(通过以太网的非易失性存储)协议下,提升存储和计算之间的数据传输效率。

Deep Dive

  1. 如何构建统一的存储系统以适应不同阶段的AI管道需求?:在AI应用的不同阶段,存储系统需要能够动态响应大量的数据请求和快速的流量变化。如何设计一个高效、统一且能够隔离性能的存储架构,以满足这些需求?
  2. 在多租户环境中,如何有效监控和保障租户级别的计算、存储和网络服务质量(SLA)?:随着AI应用的复杂性增加,多租户环境下的并发IO请求和性能隔离变得尤为重要。如何通过监控和优化手段,确保每个租户或每个阶段的AI任务不会互相影响,从而提升每个任务的性能和响应速度?
  3. 未来AI存储系统的发展趋势是什么?:随着数据量的剧增和复杂计算任务的挑战,未来AI存储系统将如何发展?如何通过硬件和软件的协同设计,提升存储和计算之间的数据传输效率,确保GPU的高效利用和计算任务的顺畅进行?
  4. https://www.hefei.gov.cn/xxgk/szfgb/2024/dseh/gzdt/110845242.html ↩
  5. https://juicefs.com/docs/zh/community/articles ↩

后注:材料原标题:Storage in the era of large scaele AI-computing,本文由笔者根据演示材料整理而成,Andy在24年11月曾发表过演讲翻译稿,建议阅读,了解演讲者原意,比较心得。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王知鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题意识:AI 与 数据
  • 数据移动在AI生产中面临的挑战
  • AI 数据管道
  • Phase 1:数据摄取与预处理
    • 数据摄取&预处理 IO 特征
    • 数据摄取和预处理的问题
  • Phase 2:AI 训练
    • AI 训练的完整IO工作流
    • 聚焦:模型加载过程的IO特征
    • AI 训练-检查点
    • 检测点:究竟是什么?
    • 检查点写入过程的影响
    • 检查点机制对基础设施的影响
  • Phase 3:AI 推理
    • 推理场景的存储需求
    • 推理场景:RAGs 和 向量数据库
    • RAGs 工作流与优化方向
    • 多租户场景的复杂IO行为
    • 思考
    • 最终的思考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档