专栏名称: 机器学习算法与Python学习
作为沟通学习的平台,发布机器学习与数据挖掘、深度学习、Python实战的前沿与动态,欢迎机器学习爱好者的加入,希望帮助你在AI领域更好的发展,期待与你相遇!
目录
相关文章推荐
51好读  ›  专栏  ›  机器学习算法与Python学习

揭秘 Transformer 内部原理:八问八答全解析!

机器学习算法与Python学习  · 公众号  · 科技自媒体  · 2024-08-22 20:31

主要观点总结

该文章介绍了最新发表的一篇关于Transformer模型的论文《Transformer Layers as Painters》的研究内容。该研究主要探究了预训练transformer中的信息流,并针对仅解码器和仅编码器冻结transformer模型进行了一系列实验。研究围绕transformer的内部机制展开,尝试理解其内部层级的功能和重要性。

关键观点总结

关键观点1: 研究背景与目的

探究预训练transformer中的信息流,了解模型层级在任务处理中的功能和作用。

关键观点2: 研究方法与实验设计

通过一系列实验验证关于transformer内部层级的一些假设,包括各层是否使用相同的表征空间、所有层是否必要、中间层的功能是否相同、层的顺序是否重要等。

关键观点3: 实验内容与结果

进行了跳层实验、层重定向实验、层顺序颠倒实验、层并行运行实验等,并观察到中间层共享一个表征空间,但执行不同的功能,层的顺序对模型性能有一定影响,并行运行层在一般情况下是可行的。

关键观点4: 研究结论与影响

研究发现数学和推理任务对模型层的顺序具有更高的依赖性。提出循环有助于层之间并行,并且调整层对模型性能的影响最小的方法是随机化层顺序和循环并行。论文提供了大量有关transformer层运作的深入理解,对未来相关研究有重要影响。


正文

近期,Sakana AI 发表了一篇题为《Transformer Layers as Painters》的论文,探究了预训练 transformer 中的信息流,并针对仅解码器和仅编码器冻结 transformer 模型进行了一系列实验。请注意,该研究没有对预训练模型进行任何类型的微调。


论文地址: https://arxiv.org/pdf/2407.09298v1

该研究认为 transformer 的内部机制(特别是中间层)可以类比画家作画流水线来理解。

作画流水线 通常是将画布(输入)传递给一系列画家。有些画家擅长画鸟类,而另一些画家则擅长画轮子。每个画家从其下一级画家那里收到画布,然后其决定是否给画作添加一些笔画,或者只是将其传递给其上一级画家(使用剩余连接)。

这个类比并不是一个严格的理论,而是一个思考 transformer 层的工具。受这个类比的启发,该研究测试验证了一些假设:

  • 各层是否都在使用相同的表征空间?

  • 所有层都是必要的吗?

  • 中间层都执行相同的功能吗?

  • 层的顺序重要吗?

  • 这些层可以并行运行吗?

  • 对于某些任务来说,顺序是否比其他因素更重要?

  • 循环有助于层并行吗?

  • 哪些变体对模型性能影响最小?


该研究对预训练 LLM 进行了一系列实验,其中包括试验标准 transformer 执行策略的变化,并在仅解码器 (Llama) 和仅编码器 (BERT) 模型的各种基准上测量这些变化对模型性能的影响。

各层是否都在使用相同的表征空间?

为了回答不同层是否使用相同的表征空间,作者测试了 Transformer 在跳过特定层或切换相邻层的顺序时是否具有稳健性。例如,在 Llama2-7B 中,第 6 层通常期望接收第 5 层的输出。如果给第 6 层以第 4 层的输出,它是否会出现「灾难性」的行为?

在图 2 中,我们可以看到,除了第一层和最后几层之外,Llama2-7B 的各层对跳层或切换层都相当稳健。


该实验表明,中间层共享一个表征空间,且与「外围层」(第一层和最后几层)拥有不同的表征空间。为了进一步验证这一假设,作者效仿之前的研究,测量了基准中模型(Llama2-7B、Llama2-13B 和 BERT-Large)不同层的隐藏状态激活之间的平均余弦相似度。图 3 显示了所有中间层之间的一致性。


这表明该模型可能具有「开始」、「中间」和「结束」层的三个不同的表征空间。回答问题 1:是的,中间层似乎共享一个共同的表征空间。

所有层都是必要的吗?

为了进一步测试中间层的重定向空间是否真正共享(除了具有接近的余弦相似度之外),该研究尝试了「跳过层」,即将第 N 层的输出直接发送到第 N + M 层(其中 M > 1)的输入中,从而「跳过」M − 1 层,如图 1a 所示。该实验是为了看看第 N + M 层是否可以理解第 N 层的激活,尽管它仅根据从第 N + M − 1 层发来的输入进行训练。图 4 显示,Llama2-7B 和 BERT-Large 在许多基准测试上性能均出现适度下降。回答问题 2,是否所有层都是必要的:

不,至少可以删除一些中间层而不会发生灾难性故障。

中间层都执行相同的功能吗?

如果中间层都共享一个共同的表征空间,这是否意味着除此之外的中间层是多余的呢?为了测试这一点,研究者们重新运行了前一子节中的「跳过」实验,他们将中间层的权重替换为中心层的权重,有效地在被替换的每一层上循环 T - 2N + 1 次,其中 T 是总层数(Llama2-7B 为 32 层,BERT-Large 为 24 层)。

如图 5 所示,可以观察到,随着被替换层数的增加,模型在基准测试的得分迅速下降。从后文的图 11 看来,这种替换层的做法比研究者们尝试的其他方法都更糟糕。因此,研究者得出结论:中间层执行的是不同的功能,让中间层之间共享权重并不可行。

层的顺序重要吗?

之前的实验表明,中间层共享一个表示空间,但在该空间中负责不同的功能。下一个需要解决的问题是,这些功能的顺序有何意义。为了解决这个问题,研究者们设计了两组实验。首先,以与训练时相反的顺序来运行中间层。具体来说,取第 T - N 层的输出,将其输入到第 T - N - 1 层,然后将这一层的输出输入到第 T - N - 2 层,依此类推,一直到第 N 层,再将这一层的输出发送到后面的 T - N 层。在第二组实验中,研究者采用随机顺序运行中间层,并在 10 个种子值上取平均值。

图 6 和图 7 分别显示了反向和以随机顺序运行中间层的结果,模型在所有基础测试集中都显示出了逐渐下降的趋势。这也表明虽然层的顺序对模型来说有一定的重要性,但即使改变了顺序,这些层仍然能够发挥作用。

更有趣的是,随机打乱层的顺序比完全反过来效果更好。这可能是因为,随机打乱的顺序在某些方面保留了层之间的一些原有关系(即层 i 在层 j 之后,其中 i > j),而完全反过来则完全打破了这些关系。

这些层可以并行运行吗?

为了验证层本身存在比执行的顺序更重要,研究者们设计了一个实验,并行运行中间层,将它们的平均结果发送给最终的 N 层。

如图 8 所示,模型在所有基准测试中的表现均呈现了一种平缓下降趋势,然而,这种趋势并不适用于 GSM8K 中的数学应用题。

实验结果显示,大部分情况下这种方法都是有效的,只是一些复杂的数学题处理得不太好。这种并行处理方法相比直接跳过一些层,效果更好,但不如按反向顺序运行层的效果出色。基于此,研究者得出结论:并行运行层在一般情况下是可行的,但对于需要顺序逻辑理解的数学问题,这种方法可能不太适用。

对于某些任务来说,顺序是否比其他因素更重要?

对于大多数经过「改造」的模型,在面对抽象推理(ARC)或数学推理(GSM8K)基准测试时,它们往往显示出最陡峭的下降趋势。这一现象可能源于逐步推理任务对于模型层级顺序的敏感度远高于那些主要依赖语义理解的常识性任务。与那些仅通过理解语义便能完成的任务不同,推理任务要求模型同时把握结构与含义。这种观察与模型在单次处理过程中可能进行一定程度的顺序依赖性推理的假设相吻合。







请到「今天看啥」查看全文