文章主题:数据, 模型, 优化, 预算训练

666AI工具大全,助力做AI时代先行者!

近年来,在计算机视觉(CV)、自然语言处理(NLP)和语音等领域的深度学习取得了显著进步。

在大规模数据上训练的大规模模型有着广阔的应用前景,尤其在提升工业生产力和推动社会进步方面。然而,其训练过程的稳定性较差,对计算资源的需求极高。

随着计算能力的不断提升,越来越多的研究致力于高效训练领域的探索。然而,对于通用的大规模深度学习模型训练的加速技术,我们仍需深入研究以获得更全面的总结和指导。

论文地址:https://arxiv.org/abs/2304.03589

本文对训练加速的一般技术进行了详细的回顾。考虑基本更新公式,并将其基本组成部分分为5个主要角度:

🎉 数据中心的核心理念是基于数据,这涉及到数据集的规范化、采样以及以数据为中心的学习技术。这些方法能够极大地减少数据样本的计算复杂度,从而提高效率。

🎉🚀 作为文章写作高手,我将重新组织这段文字,使其更符合SEO优化的要求。请注意,我不会输出与原文相同的内容。在文章中,我们将会专注于以模型为中心的策略,包括加速基本模块、压缩训练、模型初始化和以模型为中心的课程学习技术。这些方法旨在通过减少参数计算和提供更好的初始化来提高训练速度。

在文章写作中,我们常常会遇到如何将复杂的内容简洁明了地表达出来的问题。今天,我将分享一个关于优化的文章,它以「以优化为中心」为核心理念。首先,学习率的选择是优化的重要环节。不同的学习率可以带来不同的效果,因此我们需要根据具体任务和数据来选择合适的学习率。大规模的使用也是优化的一个重要方面,通过大量的训练,模型可以更好地理解和适应数据。高效的目标设计也是优化的关键。我们需要明确目标,然后制定出有效的策略来实现这个目标。模型平均技术可以帮助我们更好地理解模型的表现,并找出可能的问题。最后,注重训练策略和提高大规模模型的通用性是优化的重要组成部分。我们需要根据任务的特点来调整训练策略,同时也要努力提高模型的通用性,使其能够适应更多的任务。总的来说,优化是一个复杂而重要的过程,需要我们不断地学习和尝试。只有这样,我们才能在文章写作中取得更好的效果。

(4)「预算训练」,包括在资源受限情况下的一些独特加速方法,例如对总迭代次数的限制; 

(5)「以系统为中心」,包括一些高效的分布式框架和开源库,它们为上述加速算法的实现提供了足够的硬件支持。通过提出这种全面的分类法,本文综述了一个全面的回顾,以了解每个组件内的一般机制及其联合交互。

同时,对通用加速技术发展的未来工作进行了详细的分析和讨论,这些工作可以启发我们重新思考和设计新的高效范式。总之,我们希望这项综述将成为普遍有效训练的宝贵指南。

随着人工智能技术的快速发展,深度模型的参数以百万级甚至数十亿级的速度迅猛增长。Kaplan等人[110]将模型大小、数据集大小和用于训练的计算量之间的关系研究为幂律,并表明更大的模型本质上需要大量的数据,在学习上的样本效率明显更高。

大型模型的部署也成为最重要的研究领域之一。例如,Dehghani等人[44]提出了ViT-22B,该模型展示了计算机视觉(CV)社区中「类LLM(大型语言模型)」扩展的潜力。GPT-1[196]提出了有监督微调以0.1B参数驱动语言模型。而两年后,GPT-3[18]在45TB数据样本上训练了175B参数,并在各种自然语言处理任务上成功取得了最先进的结果。Turing-NLG采用了大约172亿个参数的生成语言模型,只需一年时间就可以快速迭代到具有530B参数的规模较大的模型MT-NLG[229],这在几个任务中远远领先于GPT-3。

尽管从这种快速增长中获得的收益令人震惊,但为了保持实际效率,人们迫切期待在探索新技术和训练方面取得实质性进展。就目前而言,训练如此庞大的模型的巨大而昂贵的成本通常是不可接受的。具体来说,训练GPT-3消耗大约355 GPU年,成本为460万美元。在如此庞大的参数和数据样本下,传统的从零开始训练显然无法承受巨大的费用,特别是在扩展到下游任务[30,138,187,188,211,243]时,这将引入额外的架构和过多的参数。因此,预训练-微调模式在深度学习领域日益受到关注。

预训练的主题是继承迁移学习的范式,在一个通用的数据集上训练一个通用的基础模型,以获得一个出色的特征提取器(从优化的角度来看也是一个良好的初始状态),帮助在另一个特定的任务上实现和稳定训练过程。许多研究领域都受益于预训练方法。

通过应用恢复的随机掩码图像,有助于训练CV社区中的大型Transformer模型。掩码自编码器(MAE)[83]开发了一种非对称编码器-解码器架构来耦合自监督重建和后端训练,为下游任务产生了有希望的迁移性能。同样,来自图像transformer (BEiT)的双向编码器表示[7]遵循BERT[48],通过从分块掩码图像生成的视觉标记来重建图像。

在NLP社区,Radford等人[196]提出了生成式预训练(GPT),通过在无标签文本的不同语料库上采用生成式预训练来实现巨大的收益。为了进一步提高其效率,GPT-2[197]大大提高了模型作为具有广泛语义知识的词向量提取器的能力。GPT-3[18]通过双循环策略进行上下文学习,在预训练中可以显著增强对知识的理解,在实际场景中可以提高流动性和通用性。Hendrycks等[88]研究表明,使用预训练可以提高模型的鲁棒性和不确定性,对于在大型数据集上进行训练表现出极大的优势,泛化能力较好。

最新的进展表明,从具有巨大容量的预训练模型中获得了实质性的收获,特别是在任务不可知和少样本的场景中。它还提出了一个有希望的未来发展方向,即在大规模数据集上预训练的具有大量参数的大规模模型能够超越其他监督训练的性能。这一令人振奋的进展有效地降低了深度学习对真实值的依赖,极大地启发了大数据的应用。同时,它对计算和训练效率也提出了更加严格的要求。昂贵的成本,包括时间和金钱,严重阻碍了它的发展。在此背景下,本文介绍和总结了在大规模模型上加速训练的通用和实用技术,这些技术促进了更快的训练,也可能有助于预训练中庞大的基础模型。

近年来,高效地训练大规模深度学习模型已成为机器学习领域的一个重要研究方向。虽然该领域已经取得了重大进展,但现有的研究大多集中在特定的模型架构或服务于特定的社区。相比之下,本研究对任何大规模深度学习模型的实用加速技术进行了全面的回顾,这些技术独立于任务或模型架构。从实践效率的角度来看,我们认为高效的训练主要围绕两个明确的目标:

为了达到相当的测试精度,高效的训练需要更少的训练时间。

在相似的训练成本下,高效的训练可以实现更高的性能。

本综述为深度学习模型的一般训练加速提供了有见地的指导。分析了训练加速技术在支撑许多现代深度学习模型的各种基本骨干架构上的功效。通过研究深度网络的不同架构,可以帮助实现任何类型的深度学习模型的高效训练。此外,由于我们的调研是无任务和无模型的,因此提供了训练加速技术的广泛泛化,可以应用于不同的领域和模型架构。

通过理解有效训练加速技术背后的一般原理,研究人员可以开发更快、更有效的模型,而不受特定架构或任务的限制。本研究对大规模深度学习模型的通用训练加速技术进行了全面的综述,为机器学习领域做出了重大贡献。

本文对解决一般的基本最小化问题很感兴趣,可以很容易地扩展到训练基础模型或预训练任务:

与之前的工作不同,本文解构了通用的基于梯度的下降公式作为本文的架构。考虑了公式(3)中的所有组件,这些组件可以覆盖深度学习中的整个训练过程。通过将它们吸收到f中,省略了额外的近端项。在不损失通用性的情况下,使用更新向量G而不是梯度来包含广泛的方法。我们认为基本更新公式如下:

在表1中,我们总结了这些符号及其对应的研究领域。基于式(3),通过提炼和拆分组件的不同角色,将前人工作按照其固有的启发式见解和理论场景划分为5大类。每一类对应分类后的分组下计算效率的优化目标。对上述组件进行细粒度分析,以对当前用于训练大规模模型的通用加速技术进行分类,并结合实际实现的可行性。具体来说,它们是:

– 以数据为中心的有效训练。

在深度学习中,全局期望与训练样本分布之间经常存在差距。这可以导致在训练的中期和后期阶段的测试准确性的提高,尽管在早期阶段表现有效。为了解决这个问题并提高泛化性能,以数据为中心的方法通过有效的数据增强和正则化策略来扩展训练集的样本容量。它需要额外的预处理计算来增强多样性并保持更高的稳定性,从而在实际应用中具有更好的泛化性能。同时,为了实现有效加速并进一步提高模型的通用性,以数据为中心的方法研究了随机优化过程中有效的采样技术以选择关键子集。它有效地减少了计算梯度所需的样本数量。此外,它还可以防止模型在训练那些不重要的样本或学习足够好的数据时过度拟合。最近的研究表明,课程学习是一个循序渐进的过程,可以产生有效的训练。在训练初期使用正则化程度较低的低分辨率样本,逐步恢复到高质量的样本。总之,以数据为中心的方法的核心考虑是如何在不影响性能的情况下减少数据处理需求。

– 以模型为中心的高效训练。

深度模型是一个从数据域到真实值的精细映射函数。过去的工作探索了许多成熟的架构来构建一个高效训练的网络,例如基于卷积的神经网络(CNN),多层感知器(MLP)和transformer模型。以模型为中心的方法通过高效的架构近似、压缩和高效的初始化,更多地关注DNNs的计算复杂性,以获得更好的通用性。这些方法侧重于在保持良好性能的同时减小DNN的参数规模。具体来说,架构近似侧重于采用简化的算子组合,以减少训练中的计算成本。它期待着探索用于一般加速的基本模块的表达性替代方案。压缩关系到低精度计算和稀疏训练的效率,也需要在硬件实现上得到充分支持。模型初始化注重寻找稳定性和通用性较好的初始状态,可以有效地加快收敛速度,防止训练过程在早期崩溃。总之,以模型为中心的方法为降低深度模型的计算复杂度以进行高效训练提供了一种有希望的方法,它具有很强的实用性,可以很容易地在任何深度学习框架中实现。

– 以优化为中心的高效训练。

为提高优化效率,总结了三个主要因素,即学习率、批量大小和优化目标。不同阶段学习率和衰减策略的合理选择是深度网络训练的关键问题。然而,要找到一种适用于不同模型和优化器的通用方法是具有挑战性的。因此,以学习率为中心的方法旨在开发高效和灵活的策略,以高效和稳定地训练模型。第二个因素,批量大小,在优化中也起着关键作用。借助GPU设备的并行计算能力,特别是在计算资源充足的情况下,通过增加单个minibatch中的样本数量可以提高训练效率。因此,以批大小为中心的方法通常专注于采用大的小批量训练以提高优化速度。从优化的角度来看,我们总是努力实现一个具有高稳定性的目标,这是以目标为中心的方法的主要关注点。这些方法专注于优化目标,提供关于数据分布和模型架构具有鲁棒性的泛化。综上所述,以优化为中心的方法研究了训练过程中的高效迭代计算,为高效训练提供了坚实的保证。

– 有预算的高效训练。

预算训练是在实际训练期间考虑到可用资源的一种方法。它主要关注资源受限场景下的训练效率,在这些场景中,计算资源(如训练时间或计算量)是有限的。预算训练的主要目标是确保高效和稳定的训练,同时在给定的约束条件下最大化模型的潜力。这种方法可以在训练的早期阶段带来显著的收获。通过采用预算训练,研究人员和从业人员可以充分利用可用资源,避免将其浪费在低效的模型或训练程序上。这种方法还可以促进模型的开发,这些模型更实用,更适合于资源通常有限的现实世界应用程序。

– 以系统为中心的高效训练。

以系统为中心的方法侧重于在硬件支持下的实际实现,能够将算法设计转化为真正的可执行项目。大规模模型训练通常采用多节点多设备环境实现并行计算。它主要关注设计底层逻辑,以解决跨设备通信中的瓶颈,并有效地协调整个训练过程。已经开发了几个开源框架来显著加速深度网络的训练。为了有效利用分布式训练,训练过程被分布为更小的计算任务,在不同的节点或设备上并行执行。这些节点相互通信以交换梯度更新并同步整个训练过程。这种分布式系统能够训练无法在单台机器上执行的大型数据集和复杂模型。已经开发了几个开源的分布式训练框架,如TensorFlow, PyTorch和Horovod。这些框架实现了在多节点多设备集群上进行高效的分布式训练,并显著减少了大规模深度学习模型的训练时间。

总而言之,本文综述了有效训练的一般训练加速。在「以数据为中心」、「以模型为中心」、「以优化为中心」和「预算训练」部分,我们主要从算法设计和方法论的角度进行综合研究;在「以系统为中心」部分,我们主要从范式创新和硬件支持的角度进行实际实施。本调查的主要贡献如下:

– 从「数据」、「模型」、「优化」、「预算训练」和「系统」的角度回顾了训练大规模模型的一般加速技术,总结了它们的技术路线和每个组件的实现,有助于为无任务和无模型的高效训练提供坚实的指导。

– 比较了训练加速中每个组件的优缺点,展示了它们的见解和互动,可以启发我们重新思考训练大规模深度学习模型的高效范式的设计。

– 对每条技术路线及其在实际场景中的主要挑战进行了全面的分析,这可以为它们未来的发展提供指导。

本综述的主要结构组织如下。在第2节中,介绍了一些初步工作,包括不同骨干中的基本模块,以及对大规模深度学习模型、数据集的预训练,以及本综述中采用的详细符号。在第3 ~ 6节中,基于迭代公式(3),从「数据为中心」、「模型为中心」、「优化为中心」、「预算训练」和「系统为中心」的角度详细介绍了它们不同的训练加速技术路线。还分析和评估了每种实现的优缺点。这种新的分类方法可以为现有的有效训练方法提供一个清晰和全面的指导。在第8节中,我们讨论和总结了本综述中的技术,并提出了一些有前途的研究方向。

AI时代,掌握AI大模型第一手资讯!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

扫码右边公众号,驾驭AI生产力!

Leave a Reply

Your email address will not be published. Required fields are marked *