本章主要剖析了Transformer模型的基本原理,并对其进行了拆解介绍。以下对Transformer模型进行了简要总结。
Transformer模型最初的目标是构建一个“语言翻译”系统,其翻译的处理过程可以表示为:输入→编码器模块→解码器模块→输出。Transformer的抽象结构如图2-16所示。
图2-16 Transformer的抽象结构
编码器模组与解码器模组实际上是机器学习模型,通过机器学习将一种语言转换为另一种语言。每个模组内部包含多个编码器模块和解码器模块。各模块串行连接,可视为多层同构网络。最早的论文中,该结构为6层编解码结构。Transformer编码器与解码器结构如图2-17所示。
图2-17 Transformer编码器与解码器结构
谷歌早期的Bard模型(类似于ChatGPT-3.5)是一个典型的编码-解码结构的Transformer模型。此外,该模型的结构也可以拆分使用。例如,ChatGPT-2、ChatGPT-3均使用解码器模块构建语言模型(Chat模型),而BERT模型仅使用编码器模块,用于构建文本分类、文本相似度等任务。
每个编码器包含多个子模块,其中核心部分为自注意力机制和前馈神经网络。自注意力机制用于捕捉序列中的长距离依赖关系,前馈神经网络则对序列中的信息进行非线性变换。Transformer编码器的内部结构如图2-18所示。
图2-18 Transformer编码器的内部结构
自注意力机制能够使模型在处理序列的每个元素时,考虑整个序列的所有元素。这使得模型能够捕捉序列中任意两个元素之间的依赖关系,无论它们在序列中的距离如何。在自注意力机制捕捉到序列中的依赖关系后,前馈神经网络(通常为两层全连接层)对每个位置的表示进行独立的非线性变换。前馈神经网络在编码器层中的所有位置使用相同的参数进行处理,但这些参数是针对每个位置独立应用的。这意味着,即使不同位置的输入相同,经过前馈神经网络后的输出也可能不同。此外,自注意力层与前馈神经网络层通过残差连接进行整合,残差连接后通常伴随层归一化,以稳定训练并加速收敛速度。以上细节将在第3章中进一步阐述。