从与原始的Transformer architecture比较来理解GPT

从与原始的Transformer architecture比较来理解GPT

flyfish

一、Transformer architecture

先说名词

不同的文献和资料中有不同的名字,其实是一样的意思

1 编码器-解码器多头注意力机制(Encoder-Decoder Multi-Head Attention Mechanism)

其他名字:

交叉注意力机制(Cross-Attention Mechanism)

源-目标注意力机制(Source-Target Attention Mechanism)

解码器-编码器注意力机制(Decoder-Encoder Attention Mechanism)

2 遮蔽多头自注意力机制(Masked Multi-Head Self-Attention Mechanism )

其他名字:

因果注意力机制(Causal Attention Mechanism)

未来位置遮蔽注意力机制(Look-Ahead Masking Attention Mechanism)

遮蔽自注意力机制(Masked Self-Attention Mechanism)

前向遮蔽注意力机制(Forward Masking Attention Mechanism)

名字很多,意思是一样的

组成

编码器(Encoder):

编码器由 N 个相同的层堆叠而成,每个层包含两个子层:

多头自注意力机制(Multi-Head Self-Attention Mechanism)

前馈神经网络(Feed-Forward Neural Network)

每个子层后都包含残差连接和层归一化(Layer Normalization)。

解码器(Decoder):

解码器也由 N 个相同的层堆叠而成,每个层包含三个子层:

多头自注意力机制(Masked Multi-Head Self-Attention Mechanism)(带有掩码以防止未来信息泄露)

编码器-解码器多头注意力机制(Encoder-Decoder Multi-Head Attention Mechanism)

前馈神经网络(Feed-Forward Neural Network)

每个子层后也包含残差连接和层归一化。

位置嵌入(Positional Encoding):

为了保留序列的位置信息,通常在输入中加入位置嵌入。

生成器(Generator):

用于将解码器的输出映射到词汇表中的概率分布。

原始的 Transformer 架构中,编码器和解码器的多头注意力机制有以下几种类型

图中流程是从下往上走

编码器:使用一个双向的多头自注意力机制。

解码器:使用一个单向的遮蔽多头自注意力机制(因果注意力机制)和一个双向的编码器-解码器多头注意力机制(交叉注意力机制)

编码器中的多头注意力

  1. 多头自注意力机制(Multi-Head Self-Attention Mechanism)
  • 类型 :双向的(Bidirectional)这种机制允许模型捕捉输入序列中的全局依赖关系,因为它可以同时考虑到元素的前后文。

  • 功能 :对输入序列中的每个位置,通过查看序列中的所有其他位置(包括前后位置)来计算其表示。这种机制允许编码器捕捉输入序列中全局的依赖关系。

解码器中的多头注意力

解码器中的多头注意力机制包括两种类型:

  1. 遮蔽多头自注意力机制(Masked Multi-Head Self-Attention Mechanism)图下部分
  • 类型 :单向的(Unidirectional),又称因果注意力机制(Causal Attention Mechanism)。这种机制用于生成任务中,确保模型生成的每个位置的元素只能依赖于之前生成的元素,而不能依赖于未来的元素。

  • 功能 :对解码器输入序列的每个位置,通过仅查看该位置及其之前的所有位置来计算其表示。这确保了生成过程中的每个步骤只能看到之前生成的内容,而不能看到未来的内容,从而保持生成序列的因果性。

  1. 编码器-解码器多头注意力机制(Encoder-Decoder Multi-Head Attention Mechanism)图上部分
  • 类型 :双向的(Bidirectional),也称交叉注意力机制(Cross-Attention Mechanism)。

  • 位置 :在解码器层中,位于遮蔽多头自注意力机制之后。

  • 功能 :通过查看编码器的输出序列,为解码器提供额外的上下文信息。解码器每个位置通过查看整个编码器输出序列,来生成与输入序列相关的表示。

二、Decoder-Only Transformer Architecture

Decoder-Only Transformer Architecture 是一种只包含解码器部分的 Transformer 模型。与标准的 Transformer 模型不同,它省略了编码器部分,只使用解码器进行任务处理。GPT-2 就是一个典型的 Decoder-Only Transformer 模型。

组成部分

输入嵌入层(Input Embedding Layer):

将输入的单词或符号嵌入到高维向量空间中。

位置编码(Positional Encoding):

添加位置编码以保留序列中单词的位置信息。

堆叠的解码器层(Stacked Decoder Layers):

多个相同的解码器层堆叠而成,每个解码器层包含:

遮蔽多头自注意力机制(Masked Multi-Head Self-Attention Mechanism)

前馈神经网络(Feed-Forward Neural Network)

残差连接和层归一化(Residual Connections and Layer Normalization)

输出层(Output Layer):

将解码器的输出映射到词汇表中的概率分布。
GPT-2 是一种典型的自回归架构(autoregressive architecture)模型。

GPT-2 的自回归特性

逐步生成文本:

GPT-2 在生成文本时,通过逐步生成每个单词,每个生成的单词只依赖于之前生成的单词。

遮蔽多头自注意力机制:

在训练和推理过程中,GPT-2 使用遮蔽多头自注意力机制,确保每个位置只能看到当前位置及其之前的位置,而不能看到未来的位置。

模型结构:

GPT-2 的模型结构是一个 Decoder-Only Transformer,其中的每一层都使用自回归机制进行文本生成。

如果自回归 用数学语言描述是(不喜欢的,可以跳过,不影响理解)

需要理解的基础知识

序列中的每个元素 x t x_t xt 是基于之前生成的元素 x 1 , x 2 , . . . , x t − 1 x_1, x_2, ..., x_{t-1} x1,x2,...,xt−1 来生成的,公式如下:
p ( x ) = p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 1 , x 2 ) ⋯ p ( x T ∣ x 1 , x 2 , ... , x T − 1 ) p(x) = p(x_1) p(x_2|x_1) p(x_3|x_1, x_2) \cdots p(x_T|x_1, x_2, \ldots, x_{T-1}) p(x)=p(x1)p(x2∣x1)p(x3∣x1,x2)⋯p(xT∣x1,x2,...,xT−1)

  • 联合概率分布
    p ( x ) = p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 1 , x 2 ) ⋯ p ( x T ∣ x 1 , x 2 , ... , x T − 1 ) p(x) = p(x_1) p(x_2|x_1) p(x_3|x_1, x_2) \cdots p(x_T|x_1, x_2, \ldots, x_{T-1}) p(x)=p(x1)p(x2∣x1)p(x3∣x1,x2)⋯p(xT∣x1,x2,...,xT−1)

    这个公式表示生成序列 x x x 的联合概率等于依次生成每个元素的条件概率的乘积。

  • 逐步生成

    • 第一步,生成第一个元素 x 1 x_1 x1 的概率是 p ( x 1 ) p(x_1) p(x1)。

    • 第二步,在已生成 x 1 x_1 x1 的条件下生成 x 2 x_2 x2,其概率是 p ( x 2 ∣ x 1 ) p(x_2 | x_1) p(x2∣x1)。

    • 第三步,在已生成 x 1 x_1 x1 和 x 2 x_2 x2 的条件下生成 x 3 x_3 x3,其概率是 p ( x 3 ∣ x 1 , x 2 ) p(x_3 | x_1, x_2) p(x3∣x1,x2)。

    • 依此类推,直到生成第 T T T 个元素 x T x_T xT,其概率是 p ( x T ∣ x 1 , x 2 , ... , x T − 1 ) p(x_T | x_1, x_2, \ldots, x_{T-1}) p(xT∣x1,x2,...,xT−1)。

  1. p ( x ) p(x) p(x) :整个序列 x x x 的联合概率分布。
    p ( x ) p(x) p(x) 表示生成整个序列 x x x 的概率。

  2. x x x :序列。
    x x x 是由 T T T 个元素组成的序列,可以是单词、字符或其他符号。
    x x x 通常表示整个序列,例如在文本生成中, x x x 可能是一个句子或段落。

  3. x i x_i xi :序列中的第 i i i 个元素。
    x i x_i xi 表示序列 x x x 中的第 i i i 个元素。例如,在文本生成中, x i x_i xi 可能是一个单词或字符。

  4. p ( x i ∣ x 1 , x 2 , ... , x i − 1 ) p(x_i | x_1, x_2, \ldots, x_{i-1}) p(xi∣x1,x2,...,xi−1) :给定之前的元素 x 1 , x 2 , ... , x i − 1 x_1, x_2, \ldots, x_{i-1} x1,x2,...,xi−1 的条件下,第 i i i 个元素 x i x_i xi 的条件概率。

    这个条件概率表示在已经生成了序列的前 i − 1 i-1 i−1 个元素之后,生成第 i i i 个元素的概率。

    例如, p ( x 3 ∣ x 1 , x 2 ) p(x_3 | x_1, x_2) p(x3∣x1,x2) 表示在已经生成了 x 1 x_1 x1 和 x 2 x_2 x2 之后,生成 x 3 x_3 x3 的概率。

  5. T T T :序列的长度。
    T T T 表示序列中元素的总数。例如,在文本生成中,如果序列是一个句子, T T T 可能是句子中的单词总数。

三、GPT-2 (Decoder-Only Transformer)(autoregressive architecture)

输入嵌入层和位置编码

将输入序列的每个单词转换为嵌入向量,并加上位置编码。

遮蔽多头自注意力机制

在每个解码器层中使用遮蔽多头自注意力机制,确保每个位置只看到当前位置及其之前的位置。

前馈神经网络

每个解码器层中包含一个前馈神经网络,用于进一步处理注意力机制的输出。

残差连接和层归一化

每个子层之后使用残差连接和层归一化,以稳定训练过程和加速模型收敛。

输出层

最后将解码器的输出映射到词汇表中的概率分布,用于生成下一个单词

相关推荐
泰迪智能科技011 小时前
高校深度学习视觉应用平台产品介绍
人工智能·深度学习
sunnf2 小时前
DB-GPT 智谱在线模型配置
gpt
云起无垠2 小时前
第79期 | GPTSecurity周报
gpt·aigc
鑫宝的学习笔记2 小时前
使用GPT进行SCI论文润色常用语句
gpt
热爱生活的五柒2 小时前
如何用gpt来分析链接里面的内容(比如分析论文链接)
gpt
Jeremy_lf3 小时前
【生成模型之三】ControlNet & Latent Diffusion Models论文详解
人工智能·深度学习·stable diffusion·aigc·扩散模型
冰蓝蓝5 小时前
深度学习中的注意力机制:解锁智能模型的新视角
人工智能·深度学习
wydxry6 小时前
LoRA(Low-Rank Adaptation)模型微调
深度学习
IT古董8 小时前
【漫话机器学习系列】019.布里(莱)尔分数(Birer score)
人工智能·深度学习·机器学习
醒了就刷牙9 小时前
transformer用作分类任务
深度学习·分类·transformer