购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 Transformer架构

正如我们在第1章中看到的那样,原始Transformer是基于编码器-解码器架构的,该架构广泛用于机器翻译等任务中,即将一个单词序列从一种语言翻译成另一种语言。该架构由两个组件组成:

编码器

将一个词元的输入序列转化为一系列嵌入向量,通常被称为隐藏状态或上下文。

解码器

利用编码器的隐藏状态,逐步生成一个词元的输出序列,每次生成一个词元。

而编码器和解码器又由如图3-1所示的几个构建块组成。

图3-1:Transformer的编码器-解码器架构,图中上半部分为编码器,下半部分为解码器

我们很快将详细讨论每个组件,但我们已经可以从图3-1中看到一些Transformer架构的特性:

●输入的文本会使用第2章中所介绍的技术进行词元化,并转换成词元嵌入。由于注意力机制不了解词元之间的相对位置,因此我们需要一种方法将词元位置的信息注入输入,以便模拟文本的顺序性质。也就是说,词元嵌入会与包含每个词元位置信息的位置嵌入进行组合。

●编码器由一系列编码器层或“块”堆叠而成,类似于计算机视觉中叠加卷积层。解码器也是如此,由一系列解码器层堆叠而成。

●编码器的输出被提供给每个解码器层,然后解码器生成一个对于序列中下一个最可能的词元的预测。该步骤的输出随后被反馈回解码器以生成下一个词元,以此类推,直到达到特殊的结束序列(EOS)词元。在图3-1的例子中,假设解码器已经预测了“Die”和“Zeit”。现在它会把这两个作为输入,并作为所有编码器的输出,来预测下一个词元“fliegt”。在下一步中,解码器将“fliegt”作为额外的输入。我们重复这个过程,直到解码器预测出EOS词元或我们达到了最大长度。

Transformer架构最初是为序列到序列的任务(如机器翻译)而设计的,但编码器和解码器模块很快就被抽出来单独形成模型。虽然Transformer模型已经有数百种不同的变体,但其中大部分属于以下三种类型之一:

纯编码器

这些模型将文本输入序列转换为富数字表示的形式,非常适用于文本分类或命名实体识别等任务。BERT及其变体,例如RoBERTa和DistilBERT,属于这类架构。此架构中为给定词元计算的表示取决于左侧(词元之前)和右侧(词元之后)上下文。这通常称为双向注意力。

纯解码器

针对像“谢谢你的午餐,我有一个……”这样的文本提示,这类模型将通过迭代预测最可能的下一个词来自动完成这个序列。GPT模型家族属于这一类。在这种架构中,对于给定词元计算出来的表示仅依赖于左侧的上下文。这通常称为因果或自回归注意力。

编码器-解码器

这类模型用于对一个文本序列到另一个文本序列的复杂映射进行建模。它们适用于机器翻译和摘要任务。除了Transformer架构,它将编码器和解码器相结合,BART和T5模型也属于这个类。

实际上,纯解码器和纯编码器架构的应用之间的区别有些模糊不清。例如,像GPT系列中的纯解码器模型可以被优化用于传统上认为是序列到序列任务的翻译任务。同样,BERT等纯编码器模型也可以应用于通常与编码器-解码器或纯解码器模型相关的文本摘要任务注 [1]

现在你已经对Transformer架构有了高层次的理解,接下来我们将更深入地了解编码器的内部工作原理。 kCx10Rj/d48Cnui4+lkJ5MQNLf/g1vSq+ttzNn0dD+VTNoFp/rQnd0QldkZE6a3H

点击中间区域
呼出菜单
上一章
目录
下一章
×