人工智能、机器学习、深度学习应用程序的密集需求对数据中心的性能、可靠性和可扩展性提出了挑战,尤其是在IT架构师模仿公共云的设计以简化向混合云和内部部署的过渡时。
Excelero公司首席技术官Sven Breuner和首席架构师Kirill Shoikhet为此分享了9个为人工智能、机器学习和深度学习准备数据中心的优秀实践。
数据点1:了解目标系统性能、投资回报率和可扩展性计划。
随着人工智能成为核心业务的重要组成部分,大多数组织都从最初的少量预算和少量培训数据集入手,并为无缝快速的系统增长准备基础设施。需要构建所选的硬件和软件基础设施,以实现灵活的横向扩展,以避免在每个新的增长阶段产生破坏性的变化。数据科学家与系统管理员之间的密切协作对于了解性能要求,并了解基础设施可能需要随着时间的发展而变得至关重要。
数据点2:现在或将来评估集群多个GPU系统。
在一台服务器中采用多个GPU可以在系统内部实现有效的数据共享和通信,并具有成本效益,参考设计假定将来可以集群使用,并且在单个服务器中最多支持16个GPU。多个GPU服务器需要准备好以很高的速率读取传入的数据,以使GPU高效运行,这意味着它需要一个超高速的网络连接,以及用于训练数据库的存储系统。但是在某个时候,单台服务器将不再足以在合理的时间内处理增长的训练数据库,因此在设计中构建共享存储基础设施将使随着人工智能、机器学习、深度学习使用的扩展,添加GPU服务器变得更容易。
数据点3:评估人工智能工作流程各个阶段的瓶颈。
数据中心基础设施需要能够同时处理人工智能工作流程的所有阶段。对于具有成本效益的数据中心来说,拥有一个可靠的资源调度和共享概念是至关重要的。因此,尽管数据科学家获得了需要摄取和准备的新数据,但其他人将训练他们的可用数据,而其他人则使用先前生成的模型进行训练用于生产。Kubernetes已成为解决这一问题的一种主要解决方案,使云计算技术易于在内部部署使用,并使混合部署变得可行。
数据点4:查看用于优化GPU利用率和性能的策略。
许多人工智能、机器学习、深度学习应用程序的计算密集型性质使基于GPU的服务器成为常见选择。但是,尽管GPU可以有效地从内存加载数据,但是训练数据集通常远远超过内存,并且涉及的大量文件变得更加难以摄取。在GPU服务器之间以及与存储基础设施之间,实现GPU数量与可用CPU功率、内存和网络带宽之间的优秀平衡至关重要。
数据点5:支持训练和推理阶段的需求。
在训练系统“看猫”的经典示例中,计算机执行一个数字游戏,需要查看大量不同颜色的猫。由于包含大量并行文件读取的访问的性质,NVMe闪存通过提供超低的访问延迟和每秒的大量读取操作很好地满足了这些要求。在推理阶段,挑战是相似的,因为对象识别通常是实时发生的——另一个使用案例中,NVMe闪存也提供了延迟优势。
数据点6:考虑并行文件系统和替代方案。
诸如IBM公司的SpectrumScale或BeeGFS之类的并行文件系统可以帮助有效地处理大量小文件的元数据,并通过在网络上每秒交付数万个小文件,从而使机器学习数据集的分析速度提高3到4倍。鉴于训练数据的只读性质,因此在将数据卷直接提供给GPU服务器并通过Kubernetes之类的框架以共享方式共享它们时,也可以完全避免使用并行文件系统。
数据点7:选择正确的网络主干。
人工智能、机器学习、深度学习通常是一种新的工作负载,将其重新安装到现有的网络基础设施中通常无法支持复杂计算和快速高效数据传输所需的低延迟、高带宽、高消息速率和智能卸载。基于RDMA的网络传输RoCE(融合以太网上的RDMA)和InfiniBand已成为满足这些新需求的标准。
数据点8:考虑四个存储系统的性价比杠杆。
(1)高读取吞吐量和低延迟,不限制混合部署,可以在云平台或内部部署资源上运行。
(2)数据保护。人工智能、机器学习、深度学习存储系统通常比数据中心中的其他系统要快得多,因此在发生故障后从备份中恢复可能会花费很长时间,并且会中断正在进行的操作。深度学习训练的只读性质使其非常适合于分布式擦除编码,在这种存储中,最高容错能力已经内置在主存储系统中,原始容量和可用容量之间的差异很小。
(3)容量弹性可适应任何大小或类型的驱动器,以便随着闪存介质的发展和闪存驱动器特性的扩展,数据中心可以在最重要的情况下很大限度地提高性价比。
(4)性能。由于人工智能数据集需要随着时间的推移而增长,以进一步提高模型的准确性,因此存储基础设施应实现接近线性的缩放系数,在这种情况下,每增加一次存储都会带来同等的增量性能。这使得组织可以从小规模开始,并根据业务需要而无中断地增长。
数据点9:设置基准和性能指标以帮助实现可扩展性。
例如,对于深度学习存储,一个重要指标可能是每个GPU每秒处理X个文件(通常为数千或数万个),其中每个文件的平均大小为Y(从几十个到数千个)kB 。预先建立适当的基准和性能指标有助于从一开始就确定架构方法和解决方案,并指导后续扩展。