许多组织使用配备有加速器的Compute集群,例如GPU和TPU,用于以分布式方式培训深入学习模型。培训是资源密集型的,消耗显着的计算,内存和网络资源。许多先前的作品探索如何减少培训资源占资源的占资源占用空间,而不会影响质量,但它们对瓶颈的子集(通常只有网络)限制了它们改善整体集群利用的能力。在这项工作中,我们利用深度学习工作负载的独特特征来提出结构化部分反向化(SPB),这是一种系统地控制分布式培训中个别工人的背包量的技术。这同时可以减少网络带宽,计算利用率和内存占用空间,同时保持模型质量。为了有效地利用SPB在集群层面的好处,我们介绍了一个SPB了解调度程序的jigsaw,它在深度学习培训(DLT)作业中进行迭代级别。我们发现拼图可以通过高达28 \%将大规模集群效率提高。
translated by 谷歌翻译
二阶优化方法,尤其是D-KFAC(分布式Kronecker近似曲率)算法,在加速GPU簇上加速了深神经网络(DNN)训练方面已获得了吸引力。但是,现有的D-KFAC算法需要计算和传达大量二阶信息,即Kronecker因素(KFS),在预处理梯度之前,导致大量计算和通信开销以及高存储器足迹。在本文中,我们提出了DP-KFAC,这是一种新颖的分布式预处理方案,该方案将不同DNN层的KF构造任务分配给不同的工人。 DP-KFAC不仅保留了现有D-KFAC算法的收敛性属性,而且还可以带来三个好处:减少计算开销在构造KFS中,没有KFS的通信和低内存足迹。在64-GPU群集上进行的广泛实验表明,DP-KFAC将开销的计算开销降低了1.55 x-1.65x,通信成本降低2.79x-3.15x,并且内存足迹在每秒二阶更新中降低1.14x-1.47 x与最先进的D-KFAC方法相比。
translated by 谷歌翻译
培训深神经网络(DNNS)在企业和云数据中心都广受欢迎。现有的DNN培训调度程序将GPU视为主要资源,并分配其他资源,例如CPU和内存与作业要求的GPU数量成正比。不幸的是,这些调度程序不考虑作业对CPU,内存和存储资源分配的敏感性的影响。在这项工作中,我们提出了Synergy,这是一种对共享GPU群集的资源敏感调度程序。通过乐观的分析,协同作用侵犯了DNN对不同资源的敏感性;某些工作可能会从GPU育儿分配中受益更多,而某些工作可能不会受到GPU育儿分配的影响。 Synergy使用新的近乎最佳的在线算法在共享的多租户集群上安排的一组作业进行了多余的工作量感知作业。我们的实验表明,与传统的GPU育儿计划相比,工作量感知的CPU和内存分配可以提高平均JCT高达3.4倍。
translated by 谷歌翻译
分布式数据并行训练已被广泛用于深神经网络(DNN)模型。尽管当前的深度学习(DL)框架对于图像分类模型(例如图像分类模型)的密集模型很好地扩展了,但我们发现这些DL框架对于具有高度稀疏嵌入表的稀疏模型(NLP)模型(NLP)模型(NLP)模型具有相对较低的可扩展性。大多数现有作品忽略了模型参数的稀疏性,因此遭受了重要但不必要的沟通开销。在本文中,我们提出了Ablace,这是一个有效的沟通框架,以加快稀疏模型分布式培训的通信。 Embrace引入了稀疏感知的混合通信,将AlltoAll和模型并行置于数据并行训练中,以减少高度稀疏参数的交流开销。为了有效地重叠稀疏的通信与后向前和前向计算,采用进一步设计的2D通信调度方法,该方法优化了模型计算过程,放松嵌入式的依赖性,并计划以优先级的排队来安排每个嵌入行的稀疏通信。我们已经基于Pytorch和Horovod实施了Embrace的原型,并通过四个代表性的NLP模型进行了全面的评估。实验结果表明,与最先进的分布式训练基线相比,Embrace的速度高达2.41倍。
translated by 谷歌翻译
我们旨在通过引入全面的分布式深度学习(DDL)探索器来解决此问题,该研究人员可以确定DDL在公共云上运行时遭受的各种执行“失速”。我们已经通过扩展先前的工作来估算两种类型的通信失速 - 互连和网络摊位来实现剖面。我们使用Profiler培训流行的DNN模型来表征各种AWS GPU实例,并列出了用户做出明智决定的优势和缺点。我们观察到,较昂贵的GPU实例可能不是所有DNN型号的性能最多,并且AWS可能会在次优的硬件互连资源分配次优。具体而言,与单个实例的培训相比,机内互连可以引入高达90%的DNN培训时间和网络连接的实例的通信开销,而与网络连接的实例可能会遭受高达5倍的速度。此外,我们对DNN宏观特征的影响进行建模,例如层的数量和通信摊位上的梯度数量。最后,我们为用户提出了一个基于衡量的建议模型,以降低DDL的公共云货币成本。
translated by 谷歌翻译
培训尺寸培训大型深度学习模型非常具有挑战性。本文提出了一种新型管道并行方案,该方案结合了双向管道,以有效地训练大规模模型。嵌合体是一种同步方法,因此不会损失精度,比异步方法更加融合。与最新的同步管道方法相比,嵌合体将气泡的数量降低至50%;受益于双向管道的复杂调度,嵌合体具有更平衡的激活记忆消耗。评估是在基于变压器的语言模型上进行的。对于在PIZ Daint超级计算机的2,048个GPU节点上运行的GPT-2模型,Chimera通过最先进的同步和异步管道方法将培训吞吐量提高了1.16x-2.34x。
translated by 谷歌翻译
BYTESCHEDULER分区和重新排列张测变速器,以提高分布式深神经网络(DNN)训练的通信效率。超参数的配置(即分区大小和信用尺寸)对于分区和重新排列的有效性至关重要。目前,Bytescheduler采用贝叶斯优化(BO)预先找到超级参数的最佳配置。然而,在实践中,各种运行时因子(例如,工人节点状态和网络条件)随着时间的推移而变化,使得静态确定的一拍配置结果次优为现实世界的DNN培训。为了解决这个问题,我们介绍了一个实时配置方法(称为autobyte),它自动并及时搜索最佳的超参数,因为培训系统动态地改变。 Autobyte将Bytescheduler框架与Meta网络扩展,将系统的运行时统计信息作为其输入,并在特定配置下的加速器输出预测。各种DNN模型的评估结果表明,Autobyte可以动态调整具有低资源使用率的超参数,并且比ByTescheduler中最好的静态配置提供高达33.2 \%的性能。
translated by 谷歌翻译
深度学习领域目睹了对极端计算和内存密集型神经网络的显着转变。这些较新的较大模型使研究人员能够推进各种领域的最先进的工具。这种现象刺激了在更多的硬件加速器上产生了针对神经网络的分布式训练的算法。在本文中,我们讨论并比较了当前的最先进的框架,以实现大规模的分布式深度学习。首先,我们调查分布式学习中的当前实践,并确定所使用的不同类型的并行性。然后,我们提出了对大型图像和语言培训任务的性能进行了经验结果。此外,我们解决了他们的统计效率和内存消耗行为。根据我们的结果,我们讨论了阻碍性能的每个框架的算法和实现部分。
translated by 谷歌翻译
深度学习在广泛的AI应用方面取得了有希望的结果。较大的数据集和模型一致地产生更好的性能。但是,我们一般花费更长的培训时间,以更多的计算和沟通。在本调查中,我们的目标是在模型精度和模型效率方面提供关于大规模深度学习优化的清晰草图。我们调查最常用于优化的算法,详细阐述了大批量培训中出现的泛化差距的可辩论主题,并审查了解决通信开销并减少内存足迹的SOTA策略。
translated by 谷歌翻译
嵌入式模型是高维数据的有效学习范例。但是,嵌入模型的一个开放问题是它们的表示(潜在因子)通常会导致大参数空间。我们观察到,现有的分布式训练框架面临嵌入模型的可伸缩性问题,因为从服务器的共享嵌入参数更新和检索共享嵌入参数通常占主导地位培训周期。在本文中,我们提出了一种新的系统框架,可显着提高巨大嵌入模型培训的可扩展性。我们拥抱嵌入的嵌入式作为绩效机会的倾斜流行分布,并利用它来解决具有嵌入缓存的通信瓶颈。为确保缓存跨越一致性,我们将新的一致性模型纳入HET设计,该模型提供了在每嵌入的基础上提供细粒度的一致性保证。与以前的工作相比,只允许读取操作的僵化,HET也利用了写入操作的血液性。六种代表性任务的评估表明,在最先进的基线上,HET达到高达88%的嵌入通信减少和高达20.68倍的性能加速。
translated by 谷歌翻译
Deep learning based recommendation models (DLRM) are widely used in several business critical applications. Training such recommendation models efficiently is challenging primarily because they consist of billions of embedding-based parameters which are often stored remotely leading to significant overheads from embedding access. By profiling existing DLRM training, we observe that only 8.5% of the iteration time is spent in forward/backward pass while the remaining time is spent on embedding and model synchronization. Our key insight in this paper is that access to embeddings have a specific structure and pattern which can be used to accelerate training. We observe that embedding accesses are heavily skewed, with almost 1% of embeddings represent more than 92% of total accesses. Further, we observe that during training we can lookahead at future batches to determine exactly which embeddings will be needed at what iteration in the future. Based on these insight, we propose Bagpipe, a system for training deep recommendation models that uses caching and prefetching to overlap remote embedding accesses with the computation. We designed an Oracle Cacher, a new system component which uses our lookahead algorithm to generate optimal cache update decisions and provide strong consistency guarantees. Our experiments using three datasets and two models shows that our approach provides a speed up of up to 6.2x compared to state of the art baselines, while providing the same convergence and reproducibility guarantees as synchronous training.
translated by 谷歌翻译
TensorFlow is a machine learning system that operates at large scale and in heterogeneous environments. Tensor-Flow uses dataflow graphs to represent computation, shared state, and the operations that mutate that state. It maps the nodes of a dataflow graph across many machines in a cluster, and within a machine across multiple computational devices, including multicore CPUs, generalpurpose GPUs, and custom-designed ASICs known as Tensor Processing Units (TPUs). This architecture gives flexibility to the application developer: whereas in previous "parameter server" designs the management of shared state is built into the system, TensorFlow enables developers to experiment with novel optimizations and training algorithms. TensorFlow supports a variety of applications, with a focus on training and inference on deep neural networks. Several Google services use TensorFlow in production, we have released it as an open-source project, and it has become widely used for machine learning research. In this paper, we describe the TensorFlow dataflow model and demonstrate the compelling performance that Tensor-Flow achieves for several real-world applications.
translated by 谷歌翻译
由于新兴的深度神经网络(DNN)模型的规模继续增大,使用大型GPU集群培训DNN是实现可接受培训时间的基本要求。在本文中,我们考虑了集群大小的未来增加的情况将导致全局批量大小用于培训模型以达到基本限制:超出某个点,更大的全球批量尺寸会导致样品效率降低,总体上升准确性的时间。因此,为了实现培训性能的进一步改进,我们必须考虑“强大的缩放”策略,该策略保持全局批量大小常量,并将较小的批次分配给每个GPU。不幸的是,这使得能够有效地使用群集资源。我们呈现DeepPool,通过两个关键思想解决这种效率挑战的系统。首先,突发并行性将大量GPU分配给突发中的前景作业,以利用整个层的并行性的不均匀性。其次,GPU多路复用优先考虑前台培训工作的吞吐量,而背景培训作业包装以回收未充分利用的GPU资源,从而提高集群范围利用率。这两个想法在一起使DeepPool能够在群集刻度大的单一任务中通过标准数据并行度进行2.2 - 2.4倍的完整性。
translated by 谷歌翻译
近年来,目睹了分布式数据并行培训的越来越多的系统列表。现有系统很大程度上适合两个范例,即参数服务器和MPI样式的集体操作。在算法方面,研究人员提出了广泛的技术,以通过系统弛豫降低通信:量化,分散和通信延迟。然而,大多数情况下,如果不是全部,现有系统仅依赖于标准的同步和异步随机梯度(SG)的优化,因此不能利用机器学习社区最近发展的所有可能的优化。鉴于该系统和理论的当前景观之间的新出现差距,我们构建了一个MPI式通信库,提供了一种基元的集合,这既灵活又模块化,以支持分布式的最先进的系统松弛技术训练。 BAGUA提供了这种设计,拥有巨大的实现和扩展各种最先进的分布式学习算法的能力。在具有多达16台机器(128个GPU)的生产群集中,BAGUA可以在端到端培训时间内优于Pytorch-DDP,Horovod和ByTeps,在各种任务范围内的重大边缘(最多2次)。此外,我们进行严格的权衡探索,表明不同的算法和系统放松在不同的网络条件下实现了最佳性能。
translated by 谷歌翻译
模型大小的范围不断增加,并且持续改进性能使大型模型时代的到来的到来。在本报告中,我们通过潜入培训目标和培训方法来探讨大型模型培训如何运作。具体而言,培训目标描述了如何利用Web规模数据来开发基于自我监督的学习以及基于分布式培训的培训方法,开发出极强的大型模型,描述了如何使大型模型培训成为现实。我们将现有的培训方法总结为三个主要类别:训练并行性,节省记忆技术和模型稀疏设计。训练并行性可以根据发生的并行性维度分类为数据,管道和张量并行性。节省记忆的技术是正交的,并且与训练并行性互补。和模型稀疏设计以恒定的计算成本进一步扩大模型大小。在https://github.com/qhliu26/bm-training提供了不断更新的大型模型培训清单。
translated by 谷歌翻译
现代深度学习模型通常在分布式机器集合中并行培训,以减少训练时间。在这种情况下,机器之间模型更新的通信变成了一个重要的性能瓶颈,并且已经提出了各种有损的压缩技术来减轻此问题。在这项工作中,我们介绍了一种新的,简单但理论上和实践上有效的压缩技术:自然压缩(NC)。我们的技术分别应用于要进行压缩的更新向量的所有条目,并通过随机舍入到两个的(负或正)两种功能,可以通过忽略Mantissa来以“自然”方式计算。我们表明,与没有压缩相比,NC将压缩向量的第二刻增加不超过微小因子$ \ frac {9} {8} $,这意味着NC对流行训练算法的收敛速度的影响,例如分布式SGD,可以忽略不计。但是,NC启用的通信节省是可观的,导致$ 3 $ - $ 4 \ times $ $改善整体理论运行时间。对于需要更具侵略性压缩的应用,我们将NC推广到自然抖动,我们证明这比常见的随机抖动技术要好得多。我们的压缩操作员可以自行使用,也可以与现有操作员结合使用,从而产生更具侵略性的结合效果,并在理论和实践中提供新的最先进。
translated by 谷歌翻译
基于深度学习的模型占主导地位的生产推荐系统的当前景观。此外,近年来目睹了模型规模的指数增长 - 从谷歌的2016年模型,最新的Facebook的型号有10亿个参数,具有12万亿参数。型号容量的每次跳跃都有显着的质量增强,这使我们相信100万亿参数的时代即将来临。然而,即使在工业规模数据中心内,这些模型的培训也在挑战。这种困难是从训练计算的惊人的异质性继承 - 模型的嵌入层可以包括总模型尺寸的99.99%,这是极其内存密集的;虽然其余的神经网络越来越多地计算密集型。为支持培训此类巨大模式,迫切需要有效的分布式培训系统。在本文中,我们通过仔细共同设计优化算法和分布式系统架构来解决这一挑战。具体而言,为了确保培训效率和训练精度,我们设计一种新型混合训练算法,其中嵌入层和密集的神经网络由不同的同步机制处理;然后,我们构建一个名为Persia的系统(短暂的并行推荐培训系统,其中包含混合加速),以支持这种混合培训算法。理论上的示范和实证研究均达到100万亿参数,以证明了波斯的系统设计和实施。我们将Pensia公开使用(在https://github.com/persiamml/persia),以便任何人都能够以100万亿参数的规模轻松培训推荐模型。
translated by 谷歌翻译
在过去的十年中,深度神经网络(DNNS)的规模成倍增长,只剩下那些具有大量基于数据中心的资源的人具有开发和培训此类模型的能力。对于可能只有有限的资源(例如,单个多GPU服务器)的研究人员的长尾巴的主要挑战之一是GPU内存能力与模型大小相比。问题是如此严重,以至于训练大规模DNN模型的内存需求通常可以超过单个服务器上所有可用GPU的总容量;这个问题只会随着不断增长的模型大小的趋势而变得更糟。当前依赖于虚拟化GPU内存的解决方案(通过向CPU内存交换/从CPU内存)会产生过多的交换开销。在本文中,我们提出了一个新的培训框架,和谐和倡导者,重新思考了DNN框架如何安排计算并移动数据以在单个商品服务器上有效地推动培训大规模模型的边界。在各种大型DNN模型中,Harmony能够将交换负载最多减少两个数量级,并在具有虚拟化内存的高度优化基线上获得高达7.6倍的训练吞吐量加速。
translated by 谷歌翻译
最先进的机器学习模型在大规模分布式集群上常规培训。粗略地,当一些计算设备表现出异常(拜占庭)行为并将任意结果返回到参数服务器(PS)时,这种系统可能会受到损害。此行为可能归因于多种原因,包括系统故障和策划攻击。现有工作表明强大的聚合和/或计算冗余,以减轻扭曲渐变的效果。然而,当对手知道任务任务时,大多数这些方案都无效,并且可以明智地选择攻击的工人来诱导最大损害。我们所提出的方法ASPIS使用基于子集的分配为工作节点分配梯度计算,该分配允许对工作节点的行为进行多个一致性检查。通过中央节点检查计算出的梯度和后处理(在适当构造的图中的Clique-Conceping)允许有效的检测和随后从训练过程中排除对手。在弱势和强劲的攻击下,我们证明了拜占庭的复原力和检测保证,并广泛评估了各种大规模培训场景的系统。我们的实验的主要指标是测试准确性,与CIFAR-10数据集上的许多最先进的方法相比,我们表现出约30%的显着提高。相应减少损坏梯度的分数范围为16%至99%。
translated by 谷歌翻译
基础模型正在成为主要的深度学习技术。由于模型参数和训练数据集的大规模,预处理基础模型始终耗时。除了计算密集型外,培训过程还非常密集和沟通密集。这些功能使得需要应用3D并行性,该平行性整合数据并行性,管道模型并行性和张量模型并行性,以实现高训练效率。为了实现这一目标,开发了一些自定义软件框架,例如Megatron-LM和DeepSpeed。但是,当前的3D平行框架仍然符合两个问题:i)它们对模型开发人员不透明,这些开发人员需要手动修改模型以并行化培训。 ii)它们对计算,GPU存储器和网络带宽的利用不足。我们提出了Merak,这是一个自动化的3D并行性深度学习培训框架,并具有高度资源利用。 Merak会自动使用自动模型分区仪部署,该分区仪在模型的代理表示上使用图形sharding算法。 Merak还提出了非侵入性的API,用于通过最小的代码修改来扩展基础模型培训。此外,我们在Merak设计了高性能的3D平行运行时引擎。它使用多种技术来利用可用的培训资源,包括移动的关键路径管道时间表,该计划带来了更高的计算利用率,阶段感知的重新计算,可利用空闲工作者的记忆以及子额定张量的模型并行性,这些模型并联与通信和计算重叠。 64 GPU的实验显示,Merak可以加快在最新的3D平行性框架上,具有1.5、2.5、8.3和20亿的模型框架,最高可达1.42x,1.39x,1.43x和1.61 x分别。
translated by 谷歌翻译