虽然人工智能(AI)多年来一直在推动研究和开发(R&D)方面的创新,但该技术现在已经准备好为一些行业投入生产。事实上,根据Gartner的说法,“四年前,人工智能的实施是罕见的,只有10%的调查对象表示他们的企业已经部署了人工智能或将在短期内这样做。对于2019年,这个数字已经跃升至37%—四年内增长了270%”。现在整个行业都在围绕人工智能展开,尤其是被归类为深度学习(DL)的AI技术。比如说:
随着人工智能从研发进入生产培训和推理环境,数据集可以增长到几十或几百PB,预计人工智能计算资源将向上扩展和扩展。随着人工智能模型越来越大,越来越复杂,人工智能服务器不仅将在服务器内使用更多的GPU,而且与高性能计算(HPC)一样,分布式处理在集群扩展的服务器环境中发生。
使用本地存储将不再是一个选项,因为数据量将超过本地存储能力。也许有可能在集群周围复制和更新数据,但这将是非常难以管理和非常复杂的维护。与HPC一样,必须使用共享文件系统来避免数据争夺;并行文件系统允许多个服务器同时访问同一个文件,因此一个服务器不必等待另一个服务器释放文件来访问它。生产型人工智能所涉及的DL训练过程捋需要一个高性能、可扩展的共享存储解决方案,以处理生产规模的数据集并最大化计算资源。
人工智能开发很复杂,需要正确的技术和方法才能成功。HPE为这两者提供了一个单一来源。通过与世界级的合作伙伴紧密合作,HPE在提供技术的同时,还提供诸如HPE深度学习手册和咨询服务等资源指导。我们的合作伙伴NVIDIA在GPU方面的进步引领了整个行业,使数据科学家能够利用PB级范围内的训练数据集建立日益复杂的模型,使人们更加关注创建平衡解决方案所需的底层基础设施。同样,Mellanox提供高效、高性能的网络,不仅连接计算集群内的服务器,还连接集群与存储。WekalO Matrix为DL训练和推理提供了高性能的存储吞吐量,也为集群计算提供了必要的共享文件系统。
本文探讨了存储I/O对DL工作流程中的训练和推理的影响。本文分享的结果显示,WekalO如何让目前流行的神经网络模型充分利用GPU资源,而不使存储资源饱和。一般来说,在模型验证和推理过程中,需要提高存储性能以避免O瓶颈,从而减少模型开发的整体时间。
早前的一份联合白皮书《加快价值实现时间和AI洞察力》涵盖了DL数据流的复杂性。
图1:深度学习数据流,单服务器视角
数据必须被摄取、清理和预处理,以作为数据集的一部分来训练DL模型。为了确保训练后的模型符合性能、准确性和质量标准,它必须在模型验证阶段用推理法进行验证。这可能需要多次迭代以满足生产要求。这个数据流模型基本上提供了一个单一的服务器视角的数据流,简化后提供了一个基本的理解过程,如下图1b所示。
图1b:简单的数据流
在分布式的集群计算环境中,数据流模型仍然是准确的,但数据的实际流动变得更加复杂。不同的服务器可能需要在同一时间访问同一个数据集,而实际的数据流可能在多个服务器之间混合。我们的基准拓扑结构采取了下一个步骤,将一个数据源显示给四个服务器,如图1c所示。
图1C:深度学习数据流,单一数据集,多服务器视角
利用四个HPE Apollo 6500系统上的外部存储系统,完成了一套基准测试。测试的目的是检查Matrx文件系统在训练场景中对各种配置的GPU和Apllo 6500系统的可扩展性,以及更新以前的工作,以评估单个Apollo 6500系统的推理性能。测试是针对深度学习工作负载的训练部分以及推理验证进行的。基准测试在1个、2个、4个和8个NVIDIA V100 GPU上进行,以了解随着工作负载的扩展,存储性能会受到怎样的影响。
合成基准也被运行以衡量系统的最佳性能。由于合成数据是随机生成的,以消除非GPU瓶颈,它经常被DL社区用作性能的上限,因为它不依赖于数据预处理或获取。下面的结果显示,随着GPU数量的增加,性能有了很好的线性扩展。线性扩展表明,可预测的性能和最大效率从GPU投资中获得。
表1:训练基准测试基数大小
图3:合成训练基准结果表明性能的线性扩展
图4:真实数据结果数据显示出与合成训练数据结果类似的线性扩展
在现实世界中,由于各种因素,包括CPU和GPU之间的数据移动,各种模型和框架的限制,以及数据预处理,性能通常不会线性扩展。尤其是数据预处理,可能非常繁重,往往成为多个支持GPU的服务器上的训练瓶颈。WekalO Matix为GPU服务器提供了一个共享的POSIX文件系统,以减少在多个节点之间复制数据的性能开销,提供利用所有GPU资源的性能,而不会使IO能力紧张。
HPE选择了以标准TFRecord格式存储的流行的ImageNet数据集,以实现可重复的结果。我们用不同的批处理量进行了大量的测试,但在表1中列出的结果中,只有在五个测试模型中产生最高性能的批处理量才被包括在内。使用混合精度取得了以下结果。
用于扩展测试的方法利用Horovod和数据并行性,将训练分布在一个GPU集群中。每个GPU都保持着一份完整的代码和神经网络模型的参数,数据被分割成不同的部分,并在每一步中分包给每个GPU。然后每个GPU计算该步骤的局部损失和梯度。这些信息在集群中的所有GPU之间交换,产生总损失和梯度,然后用于计算模型参数的更新。
训练数据清楚地表明,HPE Apollo 6500系统配备了不同数量的NVIDIA SXM2 16 GB Tesla V100 GPU,通过增加系统和在单个系统中使用更多的GPU,可以实现良好的扩展。测试结果显示,使用一台配备8个GPU的服务器所提供的性能与使用两台各配备4个GPU的服务器或四台各配备2个GPU的服务器相当。
尽管从每个客户的角度来看,存储带宽的要求仍然相对较低,但有证据表明,特别是对于计算密集度较低的模型,带宽要求是线性扩展的。这意味着,如果没有像WekaIO Matrix这样的高性能文件系统,甚至比我们的四节点配置更大的部署也会变得性能受限。
值得注意的是,利用WekaIO Matrix的配置很容易使用。由于取消了对数据定位的依赖,使用这种共享文件系统架构在测试环境中添加新的Apollo 6500系统非常容易。不需要额外的数据复制来准备额外的客户端,这有助于为这样一个快速增长的使用案例创建一个敏捷和灵活的架构。随着计算需求的增加, WekaIO矩阵和Mellanox网络提供了出色的性能和易扩展性。
推理是一个通常在训练好的模型被部署到生产中后在边缘发生的过程。因此,它不需要与用于训练神经网络的存储基础设施进行通信。然而,推理也被用来验证训练期间的模型,使神经网络的调整更加明智,以提高性能或准确性。在后一种用例中,存储和计算设备对DL应用的整体性能有较大影响。出于这个原因,验证用例使用HPE深度学习说明书进行了测试,以了解IO对整个模型训练时间的影响。一个修改过的ImageNet数据集被用于推理测试,其中图像以未压缩的30O0x300的24位RGB格式存储在每个包含20,000张图像的文件中,并且使用大批量大小来最大化吞吐量。
这里产生的推理测试是HPE以前执行的测试的后续,目的是验证WekaIO Matrix新版本的性能。
HPE针对更新的Matrix软件测试了五种不同的DL模型。使用了10个预热批次,然后是400个批次,其结果被平均为图5中的数据。测试框架能够指定从存储中预取数据的线程数量,以及测试框架努力维护的推理队列深度。这些测试指定了13个预取线程和32个混合精度的推理队列深度。
HPE正在利用WekaIO Matrix的更新,支持为Matrix客户端软件指定更多的资源使用,这使得特定的客户端能够向Matrix文件系统驱动更多的IO性能。这使整个基础设施在相同的硬件范围内实现了更高的资源利用率。
由于推理是由数据处理和移动驱动的,因此在这一轮测试中没有使用合成基准,因为预计真实数据基准更能说明真实世界的结果。值得注意的是,这些推理测试是面向大规模模型验证的吞吐量,因此利用了大批量的测试来最大化吞吐量。随着不断的测试和调整,这里显示的基准应该在未来继续显示出改进。
表2:推理基准批次大小
图5:按CPU计算的单节点推理吞吐量和带宽结果
推理基准显示,WekaIO Matrix继续提高其能力,最大限度地提高底层基础设施的可用性能。这直接转化为用户从其数据中获得洞察力的能力,方法是加速模型验证,允许在以前使用的相同时间段内验证更多的数据,或者在使用Apollo 6500作为生产模型的部署目标时提高响应时间
我们的WekaIO矩阵与HPE ProLiant DL360 Gen10服务器的配置现在可以接近最大化单个InfiniBand网络连接,从单个客户端提供超过8GB/s的带宽。作为参考,一个HPE 100 Gb EDR InfiniBand网络适配器可以提供超过12GB/s的带宽。
我们的基准测试显示,在扩大规模的情况下–每台服务器增加更多的GPU,以及扩大规模的情况下–增加服务器以提供额外的GPU,训练和推理的性能都接近于线性扩展。在这两个方向上的扩展能力为选择如何分配服务器以解决工作负载提供了灵活性。拥有较少GPU的服务器可以根据需要进行集群,以便在所需的时间内处理较大的工作,或达到所需的性能水平。服务器容量可以为预期的工作负载量身定做,这有助于提高投资回报率,优化资源利用,并减少洞察力的时间。
这个测试架构的扩展能力证明了并行文件系统的这一要求。并行文件系统允许数据同时被多个服务器共享,因此一个服务器永远不必等待另一个服务器释放数据,从而消除了服务器之间对数据的争夺。此外,WekaIO Matrix还针对闪存和Al中的混合文件类型和大小进行了优化,为GPU集群提供了吞吐性能。
本文分享的分布式训练结果显示了各种配置,其中HPE Apollo 6500 Gen10系统集群可以在集群内各种GPU数量和分布中实现预期的性能扩展.在许多情况下,对于一个给定的GPU数量(集群内GPU分布之间的差异),性能相当一致。这表明,无论整体的分布方法如何,对于GPU数量的缩放都是非常一致的。
对于推理,本文展示了来自WekaIO Matrix文件系统的进一步增强,以加速工作负载并提高洞察力的时间。在HPE Apollo 6500 Gen10系统内,WekaIO Matrix、Mellanox 100 Gbps InfiniBand互连和NVIDIA GPU的组合为生产型Al工作负载提供了一个强大的平台。
随着GPU数量的增加,WekaIO Matrix提供的性能水平达到甚至超过了本地文件系统。当训练数据集的容量增加,集群的规模超过单个GPU客户端时,这提供了一个优势。考虑到每一个训练周期都需要有一个验证周期,WekaIO的优势被放大了许多倍,并且可以大大减少创建一个生产就绪的DL模型的总体时间。
一个不应该被忽视的方面是对高速网络结构的要求。我们的结果显示,一个10Gb的以太网网络可能会被16个GPU所饱和。一个低速网络将不允许有效地使用一个大型服务器集群。根据我们的结果,高速网络是一项面向未来的投资,届时可能会有数百台GPU服务器。
考虑一下本文讨论的基准测试结果如何转化为可能的生产用例是很有用的。测试中使用的所有模型都是卷积神经网络(CNN),它主要用于图像内的特征检测。
WekaIO的可扩展存储可以处理PB级的存储数量,同时保持本文所介绍的高性能特征,而不需要在任何客户服务器上进行本地数据复制。HPE Apollo 6500 Gen10系统在增加用于模型训练的客户机和在现有客户机上增加GPU时都能实现扩展。
CNN(如ResNet50)可用于汽车行业,进行语义分割或物体检测,以使自动驾驶车辆能够安全行驶。在CNN训练阶段,大量的图像可用于微调整体语义分割或物体检测模型,该模型可能由多个阶段的神经网络组成。为了改善这些神经网络的训练,将需要更多的数据量–无论是来自更高的分辨率还是更高的数量–以及对基础模型进行更多的排列组合。我们的性能结果表明,HPE Apollo 6500 Gen10系统可以线性扩展,对不同的神经网络模型进行更多的并行运行,或者更快地运行相同数量的模型,减少洞察力的时间。
另一个将受益于灵活的服务器集群能力的工作负载是医学成像工作流程。通常情况下,较小的数据集被用来实现预定义的指标,然后较大的数据集被用来进行生产就绪的模型训练。鉴于本文的结果,在小数据集的情况下,集群可以被配置为在开发阶段快速测试许多不同的模型,然后被配置为聚集计算资源,以尽量减少较大的生产数据集的吞吐时间。
关于虹科云科技
虹科云科技,主要分享云计算、数据库、商业智能、数据可视化、高性能计算等相关知识、产品信息、应用案例及行业信息,为学习者传输前沿知识、为技术工程师解答专业问题、为企业找到最适合的云解决方案!