GPU 在扩展 AI 方面有许多好处,从更快的模型训练到 GPU 加速的欺诈检测。在规划 AI 模型和部署应用程序时,必须考虑可扩展性挑战,尤其是性能和存储。
无论使用何种情况,人工智能解决方案都有四个共同点:
- 培训模式
- 推断应用程序
- 数据存储
- 加速计算
在这些元素中, 数据存储 通常是规划过程中最被忽视的元素。为什么?因为随着时间的推移,在创建和部署 AI 解决方案时并不总是考虑数据存储需求。 AI 部署的大多数需求都可以通过 POC 或测试环境快速确认。
然而,挑战在于 POC 倾向于解决单个时间点。培训或推断部署可能会持续数月或数年。由于许多公司迅速扩大了其人工智能项目的范围,基础设施也必须进行扩展,以适应不断增长的模型和数据集。
这篇博客解释了如何提前计划和扩展数据存储以进行训练和推理。
AI 的数据存储层次结构
首先,了解 AI 的数据存储层次结构,包括 GPU 内存、数据结构和存储设备(图 2 )。
通常,存储层次结构中的级别越高,存储性能就越快,尤其是延迟。在本讨论中,存储被定义为在电源打开或关闭时存储数据的任何东西,包括内存。
存储设备
硬盘驱动器和闪存驱动器是存储层次结构的基础。还有混合阵列,它们是每种阵列的组合。 HDD 可以前端有一个快速缓存层,而所有闪存阵列都可以使用存储类内存( SCM )来提高读取性能。
当大型数据集加载到 GPU 内存的时间很重要时,快速存储非常有用。当需要训练不再适合存储设备的模型时,很容易扩展存储容量。也可能是必须存储多个数据集,这是具有可扩展存储的另一个原因。
数据结构
在层次结构的中间,数据结构用于连接存储设备和 GPU 内存。
该层包括:
- PCIe 总线
- 网卡
- 动力总成
- 存储器和 GPU 存储器之间的数据路径中的任何其他卡。
为了保持简单,可以简单地将结构视为存储设备和 GPU 存储器之间的传递数据层。
GPU 存储器
存储层次结构的顶部是 GPU 内存(通常称为 vRAM )。由于 GPU 内存速度快且直接连接到 GPU ,因此当整个模型驻留在内存中时,训练数据集可以快速处理。 CPU 内存也位于层次结构的顶部,正好位于 GPU 内存的下方。
或者,模型数据可以多批次发送到 GPU 存储器。大 GPU 内存导致更少的批次和更快的训练时间。如果 GPU 穿过数据结构到达模型或数据集的任何部分的内部或外部存储,则将活动交换到磁盘会大大降低训练性能。
请记住,虽然存储设备和数据结构可以扩展,但 GPU 内存是固定的。这意味着 GPU 内存已配置为 GPU .内存大小无法升级以支持更大的训练模型和数据集。
如果制造商支持,例如通过 NVIDIA NVLink ,原始 GPU 可以使用添加的 GPU 的内存。然而,并非所有系统都能容纳第二个 GPU 和附加存储器的可能性。
最终,部署计划应包括内存远远超过当前需求的 GPU 。解决未来的内存短缺可能代价高昂。
扩展存储以进行推断时的注意事项
推理是 AI 解决方案的价值所在。因此,需要有效的存储。
要确保推理存储是可扩展的,请考虑以下因素:
- 放大和缩小
- 无缝升级
- 实时要求
放大和缩小
存储可扩展性不仅仅以容量来衡量。它也以性能来衡量。真正的横向扩展可确保当容量和性能需求增加时,存储系统可以根据需要提供更多的容量和性能。
让我们来看看一个实际的缩放示例。旧金山旅游区有几十辆三轮车。一个骑自行车的人或司机驾驶一辆载客量为 2 人、 4 人甚至 6 人的三轮车。
只有一名乘客,驾驶员可以快速踩踏板,更快地到达目的地,并更快地寻找新乘客。三轮车装载了更多的乘客,导致加速较慢,最高速度较低,一天的行程也较少。三轮车是一种放大机器。
您可以很容易地增加容量,但由于仅限于单个驱动程序的能力,性能没有相应的提高。通过一台比例缩小机,每增加一名乘客,一名额外的驾驶员为三轮车提供动力。当功率和容量线性增加时,性能永远不会成为瓶颈。
对于推断,容量和性能的真正扩展是关键。推理服务器可以随时间存储大量数据。存储读取和写入性能必须可扩展,以防止延迟推断结果。
但是,存储容量也必须随着语音、图像、客户档案和其他数据在推理应用程序执行时写入磁盘而扩展。还需要有效地存储再培训数据,以便反馈到模型中。
无缝升级
某些推理应用程序不能很好地容忍宕机。例如,关闭网店欺诈检测的最佳时机是什么?当您禁用网络商店推荐引擎以升级存储容量或存储性能时,丢失订单的成本是多少?
可能受到维护升级影响的推理应用程序列表非常广泛。示例包括:
- 用于客户服务的对话式 AI 应用程序。
- 全天候分析视频流,实现智能洞察。
- 关键的图像识别应用程序。
除非推理能够容忍维护窗口,否则扩展容量和性能将成为一项挑战。在进行特定的存储部署之前,最好先考虑存储升级和可用性方案。
实时要求
作为实时推理示例,考虑在线交易的欺诈检测。推理应用程序正在寻找揭示不可接受风险的异常行为和交易概况。当用户等待交易批准时,数百个决策必须在几秒钟内做出。低延迟存储和高性能数据结构连接是实时事务的关键,尤其是当必须从存储中快速检索风险参数时。
亚毫秒存储性能是某些实时应用程序的起点,这些应用程序得益于存储和 GPU 内存之间的高性能通道。 NVIDIA 利用 RDMA 协议加速从存储到 vRAM 的传输,其功能称为 NVIDIA GPUDirect 存储。这可以缩短实时所需的存储数据(如风险概况数据)的 GPU 检索时间。检索到的概况和风险数据点可以稍后重新分析以提高准确性。
NVIDIA GPUDirect 技术支持 GPU 内存和本地 NVMe 存储之间的 DMA direct datapath transactions ,或通过 NVMe oF 进行远程存储。
解决疏忽问题
在规划过程中通常有改进的空间。培训和推理中一些常见的与存储相关的疏忽包括可扩展性、性能、可用性和成本。
在训练和推理过程中,有一些方法可以避免这种情况。
培训:
- 始终使用远远超过当前要求的 GPU 内存进行部署。
- 始终考虑未来模型和数据集的大小,因为 GPU 内存不可扩展。
推论:
- 当性能和容量预计会随时间增长时,选择横向扩展存储。
- 选择支持无缝升级的存储,特别是对于几乎没有维护窗口的应用。
- 未来支持实时推理应用程序的存储升级可能是不可能的,也不现实。在初始 GPU 、存储和结构部署之前做出这些决定。
关键要点
应尽早以全面的方式解决扩展存储问题。这包括容量、性能、网络硬件和数据传输协议。最重要的是,确保充足的 GPU 资源,否则可能会抵消所有其他训练和推理努力。
在文章 Storage Performance Basics for Deep Learning 中,更好地了解工作负载复杂性如何影响存储性能。
此外,考虑使用 NVIDIA-Certified GPU 加速工作站和服务器,因为它们已通过各种企业存储和网络产品的认证。