Gen-ai 简明教程
Architecture of Transformers in Generative AI
基于 transformer 的大型语言模型 (LLM) 已在情绪分析、机器翻译、文本摘要等各种任务中超越了之前的循环神经网络 (RNN)。
Transformer 的独特功能源自其架构。本章将简单解释原始 transformer 模型的主要理念,以便更容易理解。
我们将重点关注构成 transformer 的关键组件: encoder 、 decoder 以及将它们连接起来的独特的 attention mechanism 。
How do Transformers Work in Generative AI?
让我们了解一下 transformer 的工作原理 −
-
首先,当我们向 transformer 提供一个句子时,它会格外关注该句子中的重要词语。
-
然后它同时考虑所有单词,而不是一个个考虑,这有助于 Transformer 找出句子中单词之间的依赖关系。
-
之后,它找出句子中单词之间的关系。例如,假设一个句子是关于恒星和银河系的,那么它便知道这些单词有关联。
-
完成后,Transformer 使用此知识来理解完整的故事以及单词之间如何相互联系。
-
凭借这种理解,Transformer 甚至可以预测接下来可能出现的单词。
Transformer Architecture in Generative AI
Transformer 有两个主要组件: the encoder 和 the decoder 。以下是 Transformer 的简化架构:
如你在该图中看到的,在 Transformer 的左侧,输入进入编码器。输入首先转换为输入嵌入,然后穿过一个注意力子层和前馈网络 (FFN) 子层。类似地,在右侧,目标输出进入解码器。
输出还首先转换为输出嵌入,然后穿过两个注意力子层和一个前馈网络 (FFN) 子层。在此架构中,没有 RNN、LSTM 或 CNN。递归也被丢弃,取而代之的是注意力机制。
接下来让我们详细讨论 Transformer 的两个主要组件,即编码器和解码器。
A Layer of the Encoder Stack of the Transformer
在 Transformer 中,编码器处理输入序列,并将它分解成一些有意义的表示。Transformer 模型编码器的层数为 stacks of layers ,其中每个编码器堆栈层具有以下结构:
该编码器层结构对于 Transformer 模型的所有层都是相同的。每层编码器堆栈包含以下两个子层:
-
A multi-head attention mechanism
-
FeedForward Network (FFN)
如我们可在上图中看到的,在两个子层周围存在一个残差连接,即多头注意力机制和前馈网络。这些残差连接的作用是将子层的未处理输入 x 发送到层归一化函数。
通过这种方式,可以如下计算每层的归一化输出:
Layer Normalization (x + Sublayer(x))
我们将在后续章节中详细讨论子层(即多头注意力和 FNN)、输入嵌入、位置编码、归一化和残差连接。
A Layer of the Decoder Stack of the Transformer
在 Transformer 中,解码器采用编码器生成的表示并将它们处理成生成输出序列。它就像翻译或文本续写。与编码器一样,Transformer 模型解码器的层数也为 stacks of layers ,其中每个解码器堆栈层具有以下结构:
与编码器层一样,解码器层结构在 Transformer 模型的所有 N=6 层中保持相同。每层解码器堆栈包含以下三个子层:
-
Masked multi-head attention mechanism
-
A multi-head attention mechanism
-
FeedForward Network (FFN)
与编码器相反,解码器有一个称为掩码多头注意力的第三个子层,其中,在给定位置,掩码了以下单词。此子层的优势在于 Transformer 在不查看整个序列的情况下根据其推论做出预测。
与编码器一样,所有子层周围都有一个残差连接,每层的归一化输出可以如下计算:
Layer Normalization (x + Sublayer(x))
如我们可在上图中看到的,在所有解码器块之后有一个最终的线性层。此线性层的作用是将数据映射到所需的输出词汇表大小。然后向映射的数据应用一个 softmax 函数,以在目标词汇表上生成概率分布。这将生成最终的输出序列。
Conclusion
在本章中,我们详细解释了生成式 AI 中 Transformer 的架构。我们主要关注其两个主要部分:编码器和解码器。
编码器通过查看所有单词之间的关系来理解输入序列。它使用自注意力和前馈层来创建输入的详细表示。
解码器采用输入的详细表示,并生成输出序列。它使用掩码自注意力来确保它按正确顺序生成序列,并利用编码器-解码器注意力来整合来自编码器的信息。
通过探索编码器和解码器的工作原理,我们看到了 Transformer 是如何从根本上改变了自然语言处理 (NLP) 领域的。正是编码器和解码器的结构使得 Transformer 在各个行业中如此强大和有效,并改变了我们与 AI 系统交互的方式。