如果打乱或跳过Transformer层会怎样?最新研究揭示了其信息流动机制,并一举解答了八大问题。
编辑日期:2024年07月26日
ViT的作者在内的多位学者纷纷表示赞赏。
报道自 凹非寺
最新的研究揭示了Transformer的信息流动机制中的几个关键问题:是否每一层都不可或缺?中间层的功能是否雷同?层序是否可以随意更改?
如果略过某些层,例如将第4层的输出直接连接到第6层,结果会如何?如果层序被打乱,如4-6-5-7这样的排列,又会产生什么影响?
近期,一项题为“视Transformer各层为画师”的研究引起了广泛关注。这项研究由来自新兴人工智能企业Sakana AI和Emergence AI的研究团队共同完成。
通过对Transformer内部运作机理的一系列实验,该团队对上述问题给出了明确答案。他们认为,深入探究这些原理不仅可以提升现有模型的效能,还可以助力于架构优化及新型变种的研发。
谷歌DeepMind的研究员、ViT的作者Lucas Beyer在看过研究后毫不吝啬地表达了赞赏:
非常棒的工作!虽然部分实验内容在之前的文献中已有提及,但我十分欣赏你们提供的新细节,特别是强调了“推理”类任务相较于其他任务更容易受到影响这一点!
此外,许多学者与工程师也对此表示高度推荐,并预测其中的一些洞见最终可能会应用于Transformer的改进之中。
该研究再次确认了几个要点:复制层有助于创造性的任务,但对于推理任务往往无效;改变层序是不可行的;而剪枝技术在中间层的效果最佳,但仍然需要进一步的调整优化。
在这项研究中,研究团队进行了多项实验来探索变换器层级的不同处理方式及其影响。以下是实验的具体设置和一些关键问题的回答:
实验配置概览
模型选择: - 解码器仅 (Decoder-only) 模型: 选用 Llama2,重点关注 32 层、70 亿参数的 Llama2-7B 版本,并在扩展实验中包含了 13B(40 层)和 70B(80 层)的模型。 - 编码器仅 (Encoder-only) 模型: 选择了具有 24 层、3.4 亿参数的 BERT。
预训练检查点: 使用这些模型的标准预训练版本。除了在 BERT 的评估中包含了一个标准的微调步骤外,其他情况下模型均保持冻结状态,未通过微调等方式调整参数。
基准测试
- Llama2: 使用了 ARC(科学考试问题)、HellaSwag(常识问题)、GSM8K(数学题)、WinoGrande(常识推理)以及 LAMBADA(词汇预测)作为基准测试。其中 LAMBADA 测试用于评估困惑度,最接近训练期间使用的原始 token 预测。
-
性能评估: 提供了基准测试的标准化中位数,将模型性能量化为从 0 到 1 的区间(1 表示最优性能)。
-
BERT: 采用了 GLUE 基准测试,并遵循其评估指标,包括基准的未标准化平均分。值得注意的是,标准的 BERT 评估包括一个微调步骤,因此模型进行了适应性调整。此外,研究人员还在附录中展示了仅调整模型头部的评估结果。
实验动机
实验的初衷来源于一个问题: - 是否可以将多个层以某种方式合并成一个更大的单一层? 研究人员推测,由于训练过程中使用了残差连接,变换器的中间层可能共享了一个共同的表示空间。这一点与标准的多层感知机不同,后者缺乏促使层间一致性和共同表示的机制。
如果各层可以共享同一表示空间,这将对后续条件计算或动态地向预训练Transformer模型添加新知识及其下游应用产生重大影响。为了验证不同层是否确实共享相同的表示空间,研究者们测试了当跳过某些特定层或改变相邻层顺序时Transformer的稳健性。
以Llama2-7B模型为例,若我们将输出流从正常的“第4层→第5层→第6层”的顺序更改为“第4层→第6层”,即跳过第5层,结果会如何?
或者,如果我们将第4层的输出直接传递给第6层,接着将第6层的输出传递给第5层,然后再传递给第7层,结果又会怎样?
如以下图表所示,实验结果显示除了最前几层和最后几层之外,Llama2-7B在跳过某些层或改变层序的情况下表现出了良好的稳健性。
这意味着中间层共享同一表示空间,而中间层与“外部层”(即最前几层和最后几层)则拥有独立的表示空间。
为了进一步验证这个假设,研究者们测量了不同模型(包括Llama2-7B、Llama2-13B和BERT-Large)中不同层的隐藏状态激活之间的平均余弦相似度,并进行了跨基准测试的比较。
下图3展示了所有中间层之间的一致性。例如,底层的第四层激活与顶层的第四层激活高度相似。对于40层的Llama2-13B模型而言,可以看出这些层根据相似性被分为大约4-5个组:第0层,1-3层,中间层,以及最后的一到两层。
这表明模型可能针对“开始”、“中间”和“结束”层具有三种不同的表示空间。此外,研究者们还观察到,“开始层”的数量似乎随模型总层数的增加而增多。
此外,较高的余弦相似度可能表明存在一个共用的表示空间,而较低的相似度则更倾向于表明这些空间并非共用。图3中Llama2-7B的数据与图2所示的表现结果高度吻合,这进一步证实了:至少在中间层的表示空间是共用的。
为了进一步验证中间层的表示空间确实是共用的,研究者们实施了层跳过实验(此过程中未进行任何微调)。
具体而言,他们直接将第N层的输出作为第N+M层的输入(M > 1),从而“跳过”了M-1层,如以下图示所示。
原本第N+M层仅针对来自第N+M-1层的输入进行训练,现在它是否能理解来自第N层的激活?
在此类实验中,研究者正常执行第一层和最后N-1层的操作,而跳过或调整第N+1到第T-N层(T代表模型的总层数)。
如下图4所示,在多个基准测试中,Llama2-7B和BERT-Large的表现均呈现出逐步下降的趋势(图从左至右展示了跳过层数逐步增加的情况)。这一结果揭示了:
并非所有的层都是必需的,至少省略部分中间层并不会对总体表现产生严重影响。
如果中间层共用同一个表示空间,那么这些层是否显得多余?
为了解决这个问题,研究者们再次进行了前述的“跳过”实验,但这次不是简单地跳过中间层,而是用最中间层的权重替代了所有这些中间层的权重,如下图所示。
实际上,这意味着在最中间层上重复执行了T-2N+1次操作,其中T代表模型的总层数(对于Llama2-7B为32层,对于BERT-Large为24层)。
在基准测试的结果中,随着替换层数的增加,模型性能出现了显著下降,且这一下降趋势比简单跳过某些层的情况更为严重,显示出权重替换对模型性能具有极大的负面影响。
这表明中间层各自承担着独特的功能,而共享权重会导致灾难性的后果。上述实验显示尽管中间层共享同一表示空间,但它们在这个空间上执行不同的任务。那么这些操作的顺序是否重要呢?研究者进行了两项实验来探索这一问题。
首先,他们尝试了将中间层以与训练时相反的顺序(即逆序)执行。具体来说,就是将第T-N层的输出传递给第T-N-1层,以此类推,直到第N层,随后将该层的输出再次传递到最后一个T-N层。
如下图所示:
接着,在第二个实验中,中间层的顺序被随机打乱,并对10个不同的随机种子结果进行了平均。
结果如以下图表所示,无论是在逆序还是随机顺序的情况下,模型性能都有所下降,但这种下降是逐渐发生的。
提前透露一点后续实验的结果:不论是采用逆序还是随机顺序,模型的表现都要优于直接跳过这些层,这意味着即便这些层不是按训练时的顺序接收输入,仍然能够产生有效的输出。
因此,层的顺序真的重要吗?结论是:
调整层的顺序确实会对性能造成一定影响,无论是随机顺序还是逆序都会导致一定程度的性能下降。
值得注意的是,随机顺序下的性能优于逆序。这可能是由于逆序与训练时的顺序完全相反,而任何随机顺序至少在某种程度上保留了一定的顺序连贯性(即某一特定层i总是位于另一层j之后,其中i>j)。
如果层的存在比它们实际执行的顺序更为关键,那么是否可以考虑让这些层独立运行,之后再整合它们的结果呢?如下图所示。
研究者们尝试了一个实验,他们不是简单地跳过第N到第T-N层,而是让这些中间层并行运行,然后将这些层的输出取平均值作为后续N层的输入。
实验结果如下图所示,在除了GSM8K数学问题基准之外的所有基准测试中,性能出现了轻微的下降。
有趣的是,与跳过层相比,并行运行层的表现更好,但仍然不如按逆序运行层。
总而言之,这些层可以并行运行吗?答案是肯定的,不过数学为主的基准测试是个例外。
在多数变体中,包括逆序、跳过以及并行运行层的方式,在抽象推理ARC或数学推理GSM8K基准测试中的表现最为逊色。
可以这样理解:逐步推理任务相比那些侧重于“语义”的任务(例如Winogrande或HellaSwag),对层的顺序变化更为敏感。
这是因为推理任务通常需要同时处理结构和语义信息,而像HellaSwag这样的任务主要依赖语义信息即可。
通过实验,研究者们总结出:数学和推理任务比“语义”任务更加依赖于层的顺序。
如果将Transformer的工作原理比喻成绘画过程:一张画布(输入)在不同的“画家”之间传递,有些“画家”专门负责画鸟,有些则擅长画轮子……每个“画家”都会从其他“画家”手中接过画布,决定是继续在这幅画上添加内容,还是直接传递给下一个“画家”(通过残差连接)。
可以想象,某些层只有在接收到特定输入时才会对作品做出“贡献”。例如,“画轮子”的“画家”只有在看到汽车主体后,才更可能添上轮子。
在Transformer架构中,某些层可能需要接收适当的输入才能在前向传播过程中发挥功能,而不仅仅是通过残差连接直接传递输入。从这个角度来看,相较于只执行一次并行层操作,多次迭代执行这些并行层可能会提升性能。
为了验证这一假设,研究者们通过将并行层的平均输出反馈回该层本身,并设定固定的迭代次数来进行实验,实验结果如下图所示:
在下图9中,研究者展示了并行层经过三次迭代的结果,这种方法的表现明显优于仅执行一次并行层的情况。
唯一的一个例外出现在Llama2-7B的起始层N为15或BERT的起始层N为11时。在这种情况下,三次迭代的并行层的效果等同于仅重复中间层三次,此时的并行层配置等同于完整的模型结构。
研究者还针对不同的迭代次数进行了实验。
下图显示了Llama2-7B模型性能随着并行层数M及迭代次数的变化情况。
对于每一个M值,最佳的迭代次数用红色方框标出。除了M=29和M=31(几乎并行所有的层)以外,最佳迭代次数大致与并行层数呈线性关系。
因此可以得出结论:迭代有助于提升并行层的效能,且最佳迭代次数与并行层数成正比。
最后,研究者在同一图表中比较了实验中的所有不同变体。
结果显示,仅重复单一层(如同前面所提到的,用相同数量的中心层替换中间层)的效果最差,性能迅速下降至随机基准水平。
迭代并行及随机层序的方法导致的性能下降最少,其中迭代并行方法在BERT和Llama2-7B中的表现最佳。如下图所示:
论文附录提供了更多的实验结果,有兴趣的读者可以参阅原文。
论文链接:https://arxiv.org/abs/2407.09298v1 参考链接:https://x.com/A_K_Nain/status/1812684597248831912
以下是一些额外的相关图表:
要深入理解这些现象,还需从位置编码算法的基本原理讲起,并通过可视化矩阵乘法来解释。
对于Transformer跨领域应用到计算机视觉的成功案例,可见上述图表。
注:“差评,退款”这一部分似乎与上下文无关,可能是用户评论或者需要进一步说明的内容。