diff --git a/docs/chapter3/3.2 Eocoder-Decoder.md b/docs/chapter3/3.2 Eocoder-Decoder.md index f0e944d..fefa12b 100644 --- a/docs/chapter3/3.2 Eocoder-Decoder.md +++ b/docs/chapter3/3.2 Eocoder-Decoder.md @@ -8,17 +8,55 @@ T5(Text-To-Text Transfer Transformer)是由 Google 提出的一种预训练语言模型,通过将所有 NLP 任务统一表示为文本到文本的转换问题,大大简化了模型设计和任务处理。T5 基于 Transformer 架构,包含编码器和解码器两个部分,使用自注意力机制和多头注意力捕捉全局依赖关系,利用相对位置编码处理长序列中的位置信息,并在每层中包含前馈神经网络进一步处理特征。 -T5 的大一统思想将不同的 NLP 任务如文本分类、问答、翻译等统一表示为输入文本到输出文本的转换,这种方法简化了模型设计、参数共享和训练过程,提高了模型的泛化能力和效率。通过这种统一处理方式,T5不仅减少了任务特定的模型调试工作,还能够使用相同的数据处理和训练框架,极大地提升了多任务学习的性能和应用的便捷性。 - -![alt text](./figures/2-0.png) - -> 图片出自参考文献 [1] +T5 的大一统思想将不同的 NLP 任务如文本分类、问答、翻译等统一表示为输入文本到输出文本的转换,这种方法简化了模型设计、参数共享和训练过程,提高了模型的泛化能力和效率。通过这种统一处理方式,T5不仅减少了任务特定的模型调试工作,还能够使用相同的数据处理和训练框架,极大地提升了多任务学习的性能和应用的便捷性。接下来我们将会从模型结构、预训练任务和大一统思想三个方面来介绍 T5 模型。 ### (1)模型结构:Encoder-Decoder -T5 模型采用了 Encoder-Decoder 结构,其中编码器和解码器都是基于 Transformer 架构设计的。编码器用于处理输入文本,解码器用于生成输出文本。编码器和解码器之间通过注意力机制进行信息交互,从而实现输入文本到输出文本的转换。其主要结构如下所示: +Bert 采用了 Encoder-Only 结构,只包含编码器部分;而 GPT 采用了 Decoder-Only 结构,只包含解码器部分。T5 则采用了 Encoder-Decoder 结构,其中编码器和解码器都是基于 Transformer 架构设计。编码器用于处理输入文本,解码器用于生成输出文本。编码器和解码器之间通过注意力机制进行信息交互,从而实现输入文本到输出文本的转换。其主要结构如下所示: + +
+ alt text +
+ +从整体来看 T5 的模型结构包括 Tokenizer 部分和 Transformer 部分。Tokenizer 部分主要负责将输入文本转换为模型可接受的输入格式,包括分词、编码等操作。Transformer 部分又分为 EncoderLayers 和 DecoderLayers 两部分,他们分别由一个个小的 Block组成,每个 Block 包含了多头注意力机制、前馈神经网络和 Norm 层。Block 的设计可以使模型更加灵活,像乐高一样可以根据任务的复杂程度和数据集的大小来调整 Block 的数量和层数。 + +
+ alt text +
+ +T5 模型的 Encoder 和 Decoder 部分都是基于 Transformer 架构设计的,主要包括 Self-Attention 和 Feed-Forward 两种结构。Self-Attention 用于捕捉输入序列中的全局依赖关系,Feed-Forward 用于处理特征的非线性变换。 + +和 Encoder 不一样的是,在 Decoder 中还包含了 Encoder-Decoder Attention 结构,用于捕捉输入和输出序列之间的依赖关系。这两种 Attention 结构几乎完全一致,只有在位置编码和 Mask 机制上有所不同。 + +
+ alt text +
+ +T5 的 Self-Attention 机制和 Bert 的 Attention 机制是一样的,都是基于 Self-Attention 机制设计的。Self-Attention 机制是一种全局依赖关系建模方法,通过计算 Query、Key 和 Value 之间的相似度来捕捉输入序列中的全局依赖关系。Encoder-Decoder Attention 仅仅在位置编码和 Mask 机制上有所不同,主要是为了区分输入和输出序列。 + +
+ alt text +
+ +与原始 Transformer 模型不同,T5 模型的LayerNorm 采用了 RMSNorm,通过计算每个神经元的均方根(Root Mean Square)来归一化每个隐藏层的激活值。RMSNorm 的参数设置与Layer Normalization 相比更简单,只有一个可调参数,可以更好地适应不同的任务和数据集。RMSNorm函数可以用以下数学公式表示: + +$$ +\text{RMSNorm}(x) = \frac{x}{\sqrt{\frac{1}{n}\sum_{i=1}^{n}w_i^2 + \epsilon}} +$$ + +其中: +- \( $x$ \) 是层的输入。 +- \( $w_i$ \) 代表层的权重。 +- \( $n$ \) 是权重的数量。 +- \( $\epsilon$ \) 是一个小常数,用于数值稳定性(以避免除以零的情况)。 + +这种归一化有助于通过确保权重的规模不会变得过大或过小来稳定学习过程,这在具有许多层的深度学习模型中特别有用。 + +### (2)预训练任务 + +T5 模型的预训练任务是一个关键的组成部分,它能使模型能够学习到丰富的语言表示,语言表示能力可以在后续的微调过程中被迁移到各种下游任务。 + -![](./figures/2-1.jpg) **参考文献** diff --git a/docs/chapter3/figures/2-1.jpg b/docs/chapter3/figures/2-1.jpg deleted file mode 100644 index 30a6669..0000000 Binary files a/docs/chapter3/figures/2-1.jpg and /dev/null differ diff --git a/docs/chapter3/figures/2-1.png b/docs/chapter3/figures/2-1.png new file mode 100644 index 0000000..21c2221 Binary files /dev/null and b/docs/chapter3/figures/2-1.png differ diff --git a/docs/chapter3/figures/2-2.png b/docs/chapter3/figures/2-2.png new file mode 100644 index 0000000..b73c4e1 Binary files /dev/null and b/docs/chapter3/figures/2-2.png differ diff --git a/docs/chapter3/figures/2-3.png b/docs/chapter3/figures/2-3.png new file mode 100644 index 0000000..42c8161 Binary files /dev/null and b/docs/chapter3/figures/2-3.png differ diff --git a/docs/chapter3/figures/2-4.png b/docs/chapter3/figures/2-4.png new file mode 100644 index 0000000..53d16c3 Binary files /dev/null and b/docs/chapter3/figures/2-4.png differ