亚马逊研究员提出了一个用于训练的深度学习编译器,包括三个主要功能-无同步优化器、编译器缓存和多线程执行

亚马逊研究员引领深度学习编译器:无同步优化器、编译器缓存和多线程执行

机器学习中最大的挑战之一始终是高效训练和使用神经网络。随着Transformer模型架构的引入,我们迎来了一个转折点,为梯度下降的并行化和分布策略提供了新的机会,使得训练规模更大、更复杂的模型成为可能。然而,这些模型尺寸的指数级增加也带来了与内存限制和GPU可用性相关的一系列问题。一个重要的问题是,很多模型现在的大小超过了单个GPU可用的RAM。预训练的语言和视觉模型之间的尺寸巨大差异也带来了另一个挑战。编译的概念是一种可能有效的解决方案,可以平衡计算效率和模型大小的需求。

最近的研究中,一个研究团队引入了一种专门用于神经网络训练的深度学习编译器。通过多线程执行、编译器缓存和无同步优化器三个核心组件,他们的工作在常见的语言和视觉问题上相比传统方法(如本地实现和PyTorch的XLA框架)展现出了显著的加速效果。

这个深度学习编译器使用了无同步优化器的实现。优化器在神经网络训练中起着至关重要的作用,它们修改模型参数以最小化损失函数。传统优化器中常见的同步屏障会导致分布式训练的性能瓶颈。而无同步优化器则旨在减少或消除同步需求,实现更有效的并行性和更好的计算资源利用。在同步带来训练速度和资源效率受到负面影响时,这一功能特别有帮助。

该深度学习编译器的另一个重要特性是编译器缓存。通过在缓存过程中存储和复用某些神经网络或计算图组件的预编译表示,可以避免在每次训练模型时从头开始重建整个网络的低效性。编译器缓存通过保存和复用先前构建的组件,有效地节省计算资源,利用先前编译尝试的优势,从而大大缩短训练时间。

第三个核心组件是多线程执行。神经网络训练经常涉及大量可以并行化的操作。利用多线程可以在多核处理器上并发完成这些操作,从而显著加速训练过程。编译器可以通过针对多线程执行优化训练过程,更有效地利用硬件资源,从而加速深度学习模型的训练。

通过与本地实现和PyTorch深度学习框架中的XLA框架进行对比,该团队展示了他们的深度学习编译器的实际意义。他们利用这些对比来解决计算机视觉和自然语言处理中的常见问题。与这些基准方法相比,结果表明他们的编译器能够实现显著的加速和资源效率提升,突显了深度学习编译器在提高神经网络训练对实际应用的有效性和实用性方面的重要性和潜力。

总之,这项工作是深度学习领域的一个重大进展,有潜力加速和优化训练过程。研究中的试验和发现展示了他们对PyTorch XLA编译器的改进的有效性。这些改进对于加快跨多个领域和配置的神经网络模型训练非常有帮助。