为什么简单地增大 Transformer 模型的规模并不一定能提升性能?华为研究人员通过关联记忆找到其中....
大家好,今天我们来聊一个非常有意思的话题:Transformer 模型的规模与性能之间的关系。你可能听说过,更大的模型通常意味着更强大的能力,但真的是这样吗?最近,华为技术有限公司的研究人员在一篇新论文中提出了不同的观点。本文代表了理解大型Transformer模型收敛和泛化行为的重要一步。它提供了对理论上最优交叉熵损失的见解,这为模型训练的预算规划和模型终止策略提供了非常有价值的参考。1、Transformer模型的魅力
首先,让我们简单回顾一下Transformer模型。自从2017年被提出以来,Transformer模型就因其在自然语言处理(NLP)领域的卓越性能而备受瞩目。无论是机器翻译、文本摘要还是问答系统,Transformer 都能提供令人印象深刻的结果。2、缩放法则的局限
目前,普遍的假设是:模型越大,性能越好。但真的是这样吗?华为的研究人员在其最近发表的论文中提出了质疑。他们指出,简单地增加模型的大小并不总能带来性能的提升,这一现象无法通过现有的规模法则来解释。华为的研究人员在论文中提出了一个理论框架,旨在解释Transformer模型的性能动态,特别是模型规模和训练数据量对性能的影响。以下是他们提出的几个关键理论点:
1. 记忆过程:他们认为Transformer模型的性能与其记忆训练样本的能力有关。当模型能够更好地记忆训练数据时,它的泛化能力也会提高。
2. Hopfield网络模型:研究人员使用Hopfield网络来模拟Transformer的行为。Hopfield网络是一种能够存储和回忆模式的关联记忆模型,这与Transformer模型处理输入序列的方式相似。
3. 注意力机制的解释:他们设计了一个能量函数,类似于现代连续Hopfield网络中的能量函数,来提供对Transformer中注意力机制的洞见。
4. 全局能量函数:通过majorization-minimization技术,他们构建了一个全局能量函数,该函数能够捕捉Transformer模型的层次结构。
5. 交叉熵损失的下界:在特定条件下,他们展示了模型的交叉熵损失被一个大约等于1的常数下界所限制。
6. 数据集大小与模型参数的关系:他们指出,为了达到最佳的跨熵损失,模型的参数数量N需要与数据集大小D的平方成正比,即N = O(D^2)。
7. 实验与理论的一致性:通过在不同规模的数据集上进行实验,他们发现实验结果与理论预测一致,即模型的跨熵损失趋于稳定在一个特定的值,而不是随着模型规模的增大而无限降低。
这些理论点提供了一个全新的视角来理解Transformer模型的工作原理,以及如何通过调整模型规模和训练数据量来优化性能。通过这些理论,研究人员希望能够更好地指导实践中的模型设计和训练策略。图1 展示了不同能量景观的对比。其中包括:
- (a) 负LogSumExp函数,作为Demircigil等人(2017)工作的扩展。
- (b) MCHN(现代连续Hopfield网络)能量中的正则化项。
- (d) 提出的能量函数E(x),使用平方欧几里得范数。
4、实验验证
为了验证理论,研究人员在不同规模的数据集上进行了实验,包括使用GPT-2模型和训练普通的Transformer模型。实验结果支持了他们的观点:模型的大小和训练数据的量需要一个最优的平衡点,而不是单纯地追求“更大”。4.1 GPT-2 模型的不同数据集实验
研究人员首先使用了 GPT-2 模型,这是一个在自然语言处理领域广泛使用的模型。他们选取了不同规模的数据集,从1%到100%的数据量,来训练和测试模型的性能。结果显示,即使是较小的数据集,只要合理训练,也能获得与大规模数据集相似的性能表现。图2 展示了使用25%、50%、75%和100%输出向量的最近邻距离的直方图。这些距离的均值和中位数都在20左右,这与论文中的理论假设相符。
半径r的实证分析
实验中,研究人员特别关注了模型输出激活向量与最近邻模式之间的距离,即所谓的半径r。他们发现,无论使用数据集的百分比如何,半径r的均值和中位数都在20左右,这与他们的理论预测相吻合。4.2 普通Transformer模型的训练
除了GPT-2模型,研究人员还训练了普通的Transformer模型,使用了2M个token的数据集。这些模型在训练过程中的损失稳定在一个特定的值,大约为1,这与他们提出的理论结果一致。交叉熵损失的深入分析
研究人员进一步分析了Transformer模型的跨熵损失,这是衡量模型预测与实际标签差异的一个重要指标。他们发现,大多数Transformer模型在训练过程中会达到一个大约2.2的跨熵损失值,这表明模型的性能可能接近其理论上的最优值。图3 展示了在不同大小的OpenWebText-9B数据集上训练的GPT-2小型模型的交叉熵损失。图表显示了使用100%、1%和0.1%数据量进行训练时的损失情况。图4 展示了在2M Question-Formation数据集上训练的普通Transformer模型的训练损失。这些模型分别有6层和10层,训练损失稳定在大约1的值,与论文中的命题4相符。
简单地增大Transformer模型的规模并不一定能提升性能,原因在于,模型的性能不仅仅取决于其规模,还与模型的记忆能力、训练数据的质量和数量以及模型的训练策略密切相关。在追求更大规模模型的同时,亦需要关注其他影响性能的关键因素。本文观察到大多数Transformer模型趋向于达到大约2.2的交叉熵损失。然而,模型和数据规模之间的最佳平衡通常由从业者的集体经验确定。此外,过早或过晚停止训练都可能损害这些模型的性能。1、https://arxiv.org/html/2405.08707v1