查看原文
其他

关于训练深度学习模型问答

常华Andy Andy730 2024-03-16
Source: Erin Farr, Training Deep Learning Models Q&A, May 18, 2023

深度学习(DL)在所有行业中的预期影响不可低估。事实上,分析师预测深度学习将占据大部分云工作负载,并且在未来几年内,深度学习模型的训练将占据大部分服务器应用程序。这是SNIA云存储技术倡议(CSTI)在我们的网络研讨会“在云中训练深度学习模型”中讨论的话题。如果你错过了现场活动,可以在SNIA教育库中按需观看,并下载演示幻灯片(https://www.snia.org/educational-library/training-deep-learning-models-cloud-2023)。

观众向我们的专家演讲者 Milind Pandit(来自Habana Labs Intel)和 Seetharami Seelam(来自IBM)提出了一些有趣的问题。以下是他们的回答:

问:你认为大多数人工智能会在哪里运行,尤其是训练过程中?它将在公有云中运行还是在本地运行,还是两者兼有?

答:[Milind]:可能是一种混合模式。使用公有云有一些优势,特别是因为它是按需付费的。因此,在尝试新模型、新创新、新的人工智能应用以及扩展部署时,使用公有云是非常有意义的。但是仍然存在许多数据隐私方面的问题。关于数据需要在物理上的位置和地理位置方面,有越来越多的法规。因此,许多组织决定建立自己的数据中心,一旦他们的大规模训练或推断顺利进行,他们通常会发现将公有云部署迁移到数据中心更具成本效益,并能够控制成本和数据管理的其他方面。

答:[Seelam]:我同意 Milind 的观点。我们看到了一种双重方法的模式。有一些小公司由于没有足够的资金、专业知识或团队来购买基于GPU的服务器并部署它们,所以它们越来越多地采用公有云。我们还看到一些较大的公司也采用了这种方法。请记住,这些GPU服务器通常非常耗电,因此您需要正确的平面图、电源、冷却等设施。因此,公有云确实帮助您轻松获取,并只支付您消耗的费用。我们还看到一些组织受到限制,禁止将某些数据移出企业。在这些情况下,我们看到客户在本地部署GPU系统。我认为不会只选择其中之一。它将是两者的结合,但通过采用更通用的平台技术,将有助于统一他们在公有云和本地部署中的使用模型。

问:GDR是什么?你提到了与RoCE一起使用它。

答:[Seelam]:GDR代表 GPUDirect RDMA。一个节点上的GPU可以通过多种方式与另一个节点上的GPU进行通信。至少有三种不同的方式可以实现这一点:

  • GPU可以使用TCP,其中GPU数据被复制回CPU,CPU再协调与另一个节点上的CPU和GPU之间的通信。显然,这在整个TCP协议中增加了很多延迟。

  • 另一种方法是通过RoCEv2或RDMA实现,其中CPU、FPGA和/或GPU通过行业标准的RDMA通道进行通信。因此,您可以在没有传统网络软件层的额外延迟的情况下发送和接收数据。

  • 第三种方法是GDR,其中一个节点上的GPU可以直接与另一个节点上的GPU通信。这是通过网络接口完成的,基本上是GPU彼此之间的通信,绕过了传统的网络软件层。

问:当你谈到RoCE时,你是指RoCEv2吗?

答:[Seelam]:是的,我只谈论RoCEv2。谢谢你的澄清。

问:你能否评论一下DL训练的存储需求,并考虑使用分布式云存储服务进行深度学习训练?如果是这样,面临哪些挑战和问题?

答:[Milind]:存储需求是巨大的,并且基于您正在进行的训练类型(数据并行与模型并行)。通过不同的优化,您将需要在许多情况下将数据的部分放在本地。当数据物理上远程并且访问它存在较大的延迟时,通常无法进行高效的训练。为了使训练有效进行,需要一种缓存基础设施。Seelam可能对用于训练数据的分布式扩展方法有其他想法。

答:[Seelam]:是的,我完全同意。不幸的是,没有一种万能的方法来解决大规模训练中的数据问题。我们采用三重方法。主要推荐用户将数据放在对象存储中,并将其作为所有数据的源头。许多训练作业,特别是处理文本数据的训练作业,大小通常不会很大,因为这些都是字符,所以我们直接使用对象存储作为读取数据和输入GPU进行训练的源头。因此,这是一种训练模型的方法,但仅适用于相对较小的数据集。一旦首次访问数据,它们会被缓存在本地,因为您对其进行了很好的分片,所以您不必多次返回数据源。还有其他数据集,其数据量更大。因此,如果您处理图片、视频或类似的训练领域,我们采用了双重方法。在一种情况下,我们实际上有一种分布式缓存机制,用户在文件系统中拥有数据的副本,并且该副本成为AI训练的源头。在另一种情况下,我们在系统中部署了足够的本地存储,并要求用户将数据复制到该本地存储中,以将其用作本地缓存。因此,随着AI训练的进行,一旦数据被访问,它实际上被缓存在本地驱动器上,并且随后的数据迭代从该缓存中获取。这个缓存比本地内存要大得多,它有大约12TB的本地缓存存储和1.5TB的数据。因此,我们可以从本地存储中获得每个节点达到10TB范围内的数据集。如果超过这个范围,我们就会使用这个分布式缓存。如果数据集足够小,我们就直接使用对象存储。因此,根据使用情况和您要训练的模型,至少有三种不同的方式。

问:在完全分片的数据并行模型中,与分布式数据并行(DDP)相比,有三个通信调用。这是否意味着它需要大约三倍的带宽?

答:[Seelam]:不一定是三倍,但您将比DDP更多地使用网络。在DDP或分布式数据并行模型中,前向传播过程中根本不使用网络。而在完全分片的数据并行(FSDP)模型中,前向传播和反向传播过程都使用网络。因此,您将更多地使用网络,但同时由于模型的某些部分不在系统内部,您需要从其他邻居那里获取模型,这意味着您将使用更多的带宽。我无法给出具体的3倍数字,但它肯定比DDP更多。

---------------[以下为PPT摘录]---------------

https://www.snia.org/sites/default/files/CSI/Training-Deep-Learning-Model-in-the-Cloud.pdf

企业组织将越来越依赖深度学习工作负载,2021年至2026年的预测表明:
  • 数据中心加速器市场年复合增长率为36.7%
  • 深度学习推动增长
  • 到2026年,1/3的服务器将用于DL训练或推断
  • DL将占据大多数云工作负载
  • 到2026年,训练应用将成为服务器应用的主要部分

结论:
  • AI工作负载的计算需求每10个月翻一倍
  • AI的采用将加速并影响许多行业
  • 灵活且具有成本效益的规模化基础设施对于利用这项新技术至关重要
  • 用户需要一个统一的云原生平台来进行训练和推断
  • 诸如Kubernetes、PyTorch、Ray、SynapseAI SDK等技术使AI开发人员能够快速利用AI技术在他们的应用场景中。
继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存