设计工具
应用

AI 和机器学习需要高性能存储系列篇(二)

美光科技 | 2019 年 3 月

人工智能和机器学习需要高性能存储系列篇(二):训练

在我就人工智能和机器学习撰写的系列篇的上一篇博客中,我向大家介绍了什么是 AI 和 ML,并简要概述了数据是如何转换以及用于帮助 AI 系统创建“智能”回应的。在那篇博客中,我们阐述了需要从多个不同来源摄入大量数据,之后还需要将它们转换为可用的格式,用于 AI 流程的下一个环节:训练。

这就是我们今天的第二篇要讲的内容。提醒一下,下图是一个典型的 AI 工作流,主要包括四个环节:摄入、转换、训练和执行。在上一篇博客中,我们介绍了摄入和转换流程,在准备用于 AI 训练流程的数据时,这两个环节通常是一起进行的。

AI 训练 1

训练环节通常是整个流程中极其耗费资源的一个阶段,不过我们会在后面的博客文章中看到,推理耗费的资源甚至更多。这个时候就需要非常强大的硬件提供支持,一般是具有大量高速内存的图形处理单元 (GPU)。训练阶段会通过一系列重复的步骤,对摄入的数据执行多个旨在以高概率确定期望回应/结果的数学函数。之后,这些结果会经过准确度评估。如果准确度不能高到可以接受的程度(这通常意味着 95% 以上的准确度),则修改数学函数,然后通过将更新应用于同一数据集再次尝试。

AI 训练 3

一个典型的 AI 应用例子就是简单的图像识别。在图像识别领域,最著名的模型和测试数据集是 ImageNet,它使用的函数集是 ResNet。这里我们不作深入探讨,但 ImageNet 训练数据集有 120 万张图像,需要大约 145GB 的数据存储空间。ResNet 的不同版本有着不同的复杂度,但一般使用的是 ResNet-50(另外还有 ResNet-101 和 ResNet-152)。其中的数字代表被称为“神经元”的不同数学函数中有多少“层”神经网络得到了使用(也代表 AI 模型的复杂度)。

那么,这一切与我们讨论美光极为关注的存储和内存有什么关系呢? 这是因为,训练流程跟其之前的摄入/转换流程一样,都是一个耗时又复杂的过程。但与摄入/转换流程不同的是,训练流程依赖高性能计算来执行数据函数

我们经过测试发现,解决方案中可用的快速存储和内存数量会直接影响完成给定训练运行所需的时间。如果能越快完成每次训练运行(称为一个 epoch,即周期),我们能执行的周期就越多,我们的 AI 系统就越准确,训练时间也相对更短。虽然 HDD 也可以用来存储训练数据,但旋转介质的速度实在太慢,这会导致 GPU 无法快速获取数据,及时完成训练周期。与 HDD 相比,SSD 的速度通常会高出几个数量级(就 IOPS 和延迟而言)。出于这个原因,使用 SSD 将数据更快地馈入训练系统从而更快完成工作似乎很合乎逻辑。

另外,如果我们能增加馈入每个周期的数据大小(我们称之为“批量”),将能更快运行每个周期来获得相同的结果。因此,在系统中安装的内存越多,效果就越好。不过,虽然我们可以在服务器中安装 2TB 甚至更大容量的 DRAM,然后等待奇迹的出现,但这样做的成本非常高昂。大多数组织都在不断平衡成本和效率。根据我们的测试,我们认为,速度较快且价格更加经济实惠的存储 (SSD) 可带来更好的结果。相比 DRAM,SSD 的每字节成本更低。

美光的 AI 工程师 Wes Vaske 通过一些测试证实了这一点。他的博客以及最近与 Forrester 的网络研讨会深入探讨了测试的细节,总的来说,他的一些测试结果证实了高速或低速存储和内存对 AI 训练流程的影响。Wes 的测试和图表清楚表明,使用高速存储对整体性能的影响堪比直接增加内存带来的影响。这从图中两个“低内存”对应的值以及“高速磁盘/低内存”柱体(第三个柱体)与“低速磁盘/高内存”柱体(第二个柱体)的对比中可以窥见一斑。在这个例子中,购买高速存储、增加内存或同时执行二者都会对整体性能产生巨大影响。实现这两种资源的适当平衡将取决于您要执行的数据集和模型。

AI 训练 2

以往的测试表明,AI 训练直接受到计算资源的影响,比如添加 GPU。但这次测试证明,内存和存储资源也会对 AI 性能产生直接影响,即使使用相同的 CPU/GPU 组合也不例外。美光凭借自身独特的优势,可以帮助您在 AI 领域斩获成功。虽然我们无法面面俱到,考虑到特定 AI 建模需求的所有变量,但我们使用 ResNet-50 开展的测试很好地说明了存储和内存对 AI 工作负载的重要性。您可以阅读 Wes 博客中的细节,详细了解相关信息。

访问 Micron.com/AI

Linkedin 上关注我们,获取最新资讯。