2021机器智能研究方向
大型、过参数化模型的训练不断展现出改进的训练和泛化性能。事实上,在许多领域,较大的模型样本效率更高。这意味着应该将更多的计算预算用于更大的模型训练,而非更多的迭代训练(Kaplan et al., 2020[1]; Henighan et al., 2020[2])。
大规模的训练效率能够进一步提高任务性能,同时降低计算成本和功耗。
在2020年,我们在和效率有关的研究领域取得了许多进展,包括算术效率、存储有效训练以及分布式训练的有效实施。此外,我们还继续推进了关于概率建模的研究,并在计算机视觉和语言的有效深度架构的研究工作中取得了重大进展。
本文将探讨我们在接下来一年的研究方向。这些研究方向和训练效率有关。我们也会考虑并行训练的新机遇,包括在NeurIPS 2020上发布的我们有关随机基[3]的研究成果(Gressmann et al., 2020[4]),以及我们与加州大学伯克利分校(UC Berkeley)和Google Research进行的本地并行性的研究(Laskin, Metz et al., 2020[5])。
随机学习的优化
在深度训练过程中减少存储实施的寻址技术也将是一个重点。有效学习在很大程度上取决于新算法和用于随机优化的新标准化技术的发展,这些技术和方法可以实现训练的稳定性以及小批次训练的泛化。
针对深度学习和计算图网络的
新高效模型
通过设计针对不同应用的新处理功能和构建块来提高深度模型的训练性能和计算效率,对无监督或自我监督的预训练以及对下游任务的有监督微调至关重要。
在我们的研究中,我们将继续考虑诸如计算机视觉和自然语言理解之类的基础性应用,同时也把基于计算图网络的应用(包括基因组学和推荐系统)作为目标。
稀疏训练
稀疏训练可使得人工智能从业者减少大型过参数化模型的计算足迹和功耗,其目标是能够训练超出当前可行的更大模型。
在训练结束时对密集模型进行剪枝或在训练过程中逐渐增加稀疏度,使得研究人员可以减小用于推理的模型尺寸。但是,至少在整个训练持续时间的部分过程中,这些方法仍然受到全模型尺寸的计算和存储要求的限制。
通过基于初始化时的深层网络剪枝的方法可减少计算和存储需求,然后再对所得的剪枝后的子网络进行训练(Hayou et al., 2020[6])。但是,在训练过程中保持固定稀疏模式的静态稀疏训练,通常对应着较差的任务性能。
通过在训练期间定期更改稀疏模式来探索大型模型的高维参数空间,动态稀疏训练可以提高任务性能,从而把与稀疏子网络相关的计算成本和功耗维持在更低水平(Evci et al., 2019[7]; Jayakumar et al., 2020[8])。
有效利用动态稀疏训练,并且在向前和向后传递时都具有很高的稀疏性,这将为创新者提供训练过参数化的深度网络的机会,而这些网络比当今可训练的最大模型还要大(Jayakumar et al., 2020[8])。
并行训练的新方向
为了减少训练大型过参数化模型所需的时间,依靠大量处理器上的有效实施来研究大规模分布式训练的优化算法是非常必要的。
通常,通过在多个模型副本上进行数据并行性来获得更快的训练,每个模型副本都处理随机优化算法的一个微小批次的一部分数据。数据并行训练可通过增加批尺寸来提高吞吐量。但是,在训练时间随批尺寸和处理器数量而变化的初始区域之后,继续增加批尺寸就会达到饱和区域。在饱和区域里,增加并行性无法实现进一步加速(Shallue et al., 2018[9])。
随着数据并行性模型尺寸的增加,每个模型副本又可以基于流水线并行性在多个处理器上实施,其中每个副本的各个层被分成流水线的各个阶段。对于大型模型,可以通过在多个处理器上的基本模型并行性进一步划分每个阶段的多个层。流水线并行性提高了吞吐量,与此同时,批尺寸的增加带来流水线阶段数的增加,从而实现加速。因此,对于仍允许训练的最大批尺寸,使用流水线并行性可以减少整体批尺寸中用于数据并行性的那一部分(Huang et al., 2018[10])。
我们正在考虑新的并行处理方法,来进行大型模型的有效分布式训练。
随机基
在少量维度上探索较大的参数空间可以降低训练过参数化模型的成本。这种方法的研究方式如下:通过限制随机方向的一个小子集上的梯度下降,随机选择一个低维权重子空间,然后在整个训练过程中将其保持固定(Li et al., 2018[11])。
我们最近的研究[12](Gressmann et al., 2020[13])发现,通过在低维随机基中进行训练以及在训练过程中重新绘制随机方向来探索参数空间,可以获得比以前的研究更好的学习效果。
通过在多个处理器上的并行性以及由不同节点为不同的随机投影计算梯度,可以进一步加速对随机子空间的训练。通过这种实施方式,仅通过传递低维梯度向量和投影的随机种子就可以交换梯度。这将随着处理器数量的增加,带来训练的线性加速。
本地并行性
训练过程中向后顺序处理和连续层参数更新(向后锁定)均极大地阻碍了基于反向传播的并行训练。通过基于本地目标分别更新模型的不同块,本地并行性可以解决这些挑战。基于贪心本地更新(Belilovsky et al., 2019[14]; Loe et al., 2019[15])或重复的本地更新(Xiong et al., 2020[16]),通过监督学习或自我监督表示学习可以实现本地优化。
使用本地并行性可以提高吞吐量,并与流水线并行性一样,扩展并行节点上的处理,而无需同时增加微小批次的尺寸,然后可以将其完全用于数据并行性。正如我们最近与加州大学伯克利分校和Google Research的合作研究证明,本地并行性在高计算状态中特别有效(Laskin, Metz et al., 2020[17])。
多模型训练
在多个节点上扩展训练的一种直接且有吸引力的方法是训练一组深层网络的整体,而不是单个较大的网络。与数据并行训练相比,深度集成(Deep Ensembles)的使用(Kondratyuk et al., 2020[18]; Lobacheva et al., 2020[19])消除了模型副本之间进行任何通信的需求。研究证明,深度集成可以在相同的计算成本下具备更高的准确性,并且比训练大型模型更有效(Kondratyuk et al., 2020[18])。此外,集成可以探索非凸优化景观的不同模式,并且可以提供经过良好校准的预测性不确定性估计。
深度集成也常见于近似贝叶斯边际化,或者贝叶斯模型均值的实用机制中(Wilson & Izmailov, 2020[20])。
Codistillation(共蒸馏)提供了另一种有效的方法来训练多个深度模型以代替单个较大的模型(Zhang et al., 2017[21]; Anil et al., 2018[22]; Sodhani et al., 2020[23])。共蒸馏的目的是通过定期共享各自的预测,训练多个网络学习相同的输入映射和输出映射。研究表明,在使用其他模型的过时预测时,该方法可以接受异步执行。在集成的情况下,必须在训练后对各个模型的预测求平均值。相比之下,在共蒸馏中只有一个阶段,即对所有模型进行训练以做出相同的预测。
条件稀疏计算
深度学习的条件计算可以作为专家的深度混合加以实施,其稀疏门控机制仅根据输入即可激活整个网络的某些计算块(Shazeer et al., 2017[24]; Lepikhin et al., 2020[25])。
这种方法可显著增加固定计算成本下训练的模型的整体大小,而这取决于单个模型中处理块的指数组合(Wang et al., 2018[26])。
在训练期间,通过对整个大型网络的不同部分进行门控选择,该模型可以在减少计算负载和低存储带宽的情况下,学习计算块与特定输入或任务之间的关联。然后,该方法使通过基于输入动态选择和执行网络的不同部分来解决下游任务成为可能。
研究表明,整个训练后的稀疏门控模型尺寸的增加与任务性能的提升相对应,而计算成本则与相对较小百分比例的参数总数相对应。
2021年的人工智能研究
展望人工智能研究的下一个关键阶段,为基础性深度学习应用(例如图像处理和)和基于计算图网络的领域(包括蛋白质工程、药物研发和推荐系统)探索新的突破性方法都是非常振奋人心的工作。
这些创新方法的成功将取决于Graphcore IPU等新型处理器的计算能力和灵活性的进一步提升,以便为大规模、有效的提供全新的方向。