从与原始的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)

输入嵌入层和位置编码

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

遮蔽多头自注意力机制

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

前馈神经网络

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

残差连接和层归一化

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

输出层

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

相关推荐
淡海水7 小时前
【AI模型】常见问题与解决方案
人工智能·深度学习·机器学习
β添砖java9 小时前
深度学习(13)PyTorch神经网络基础
人工智能·深度学习
victory043110 小时前
论文设计和撰写1
人工智能·深度学习·机器学习
沪漂阿龙11 小时前
OpenAI Agents SDK 深度解析(三):执行层——Agent 的“幕后指挥部”
人工智能·深度学习
还是奇怪11 小时前
AI 提示词工程入门:用好的语言与模型高效对话
大数据·人工智能·语言模型·自然语言处理·transformer
数智工坊12 小时前
【SAM-DETR论文阅读】:基于语义对齐匹配的DETR极速收敛检测框架
网络·论文阅读·人工智能·深度学习·transformer
童园管理札记12 小时前
【续】数字时代:学前教育的新改革
经验分享·深度学习·职场和发展·微信公众平台
西西弗Sisyphus12 小时前
Transformer 编码器堆叠的 Encoder 层之间,和多头注意力模块内部各独立单注意力头之间,在 QKV 上处理的区别
transformer
AI医影跨模态组学13 小时前
如何将纵向CT影像组学特征与局部晚期胃癌化疗时空异质性及耐药演化建立关联,并进一步解释其与化疗响应、淋巴结转移及生存预后的机制联系
人工智能·深度学习·论文·医学·医学影像·影像组学
硅谷秋水15 小时前
ClawVM:有状态工具LLM智体的Harness管理型虚拟内存
人工智能·深度学习·语言模型