chore: Update T5 model structure and documentation

This commit is contained in:
KMnO4-zx
2024-06-02 17:32:40 +08:00
parent db0b347e43
commit ae0f11fe56

View File

@@ -14,29 +14,29 @@ T5 的大一统思想将不同的 NLP 任务如文本分类、问答、翻译等
Bert 采用了 Encoder-Only 结构,只包含编码器部分;而 GPT 采用了 Decoder-Only 结构只包含解码器部分。T5 则采用了 Encoder-Decoder 结构,其中编码器和解码器都是基于 Transformer 架构设计。编码器用于处理输入文本,解码器用于生成输出文本。编码器和解码器之间通过注意力机制进行信息交互,从而实现输入文本到输出文本的转换。其主要结构如下所示:
<center>
<div align='center'>
<img src="./figures/2-1.png" alt="alt text" width="70%">
</center>
</div>
从整体来看 T5 的模型结构包括 Tokenizer 部分和 Transformer 部分。Tokenizer 部分主要负责将输入文本转换为模型可接受的输入格式包括分词、编码等操作。Transformer 部分又分为 EncoderLayers 和 DecoderLayers 两部分,他们分别由一个个小的 Block组成每个 Block 包含了多头注意力机制、前馈神经网络和 Norm 层。Block 的设计可以使模型更加灵活,像乐高一样可以根据任务的复杂程度和数据集的大小来调整 Block 的数量和层数。
<center>
<div align='center'>
<img src="./figures/2-2.png" alt="alt text" width="60%">
</center>
</div>
T5 模型的 Encoder 和 Decoder 部分都是基于 Transformer 架构设计的,主要包括 Self-Attention 和 Feed-Forward 两种结构。Self-Attention 用于捕捉输入序列中的全局依赖关系Feed-Forward 用于处理特征的非线性变换。
和 Encoder 不一样的是,在 Decoder 中还包含了 Encoder-Decoder Attention 结构,用于捕捉输入和输出序列之间的依赖关系。这两种 Attention 结构几乎完全一致,只有在位置编码和 Mask 机制上有所不同。
<center>
<div align='center'>
<img src="./figures/2-3.png" alt="alt text" width="50%">
</center>
</div>
T5 的 Self-Attention 机制和 Bert 的 Attention 机制是一样的,都是基于 Self-Attention 机制设计的。Self-Attention 机制是一种全局依赖关系建模方法,通过计算 Query、Key 和 Value 之间的相似度来捕捉输入序列中的全局依赖关系。Encoder-Decoder Attention 仅仅在位置编码和 Mask 机制上有所不同,主要是为了区分输入和输出序列。
<center>
<div align='center'>
<img src="./figures/2-4.png" alt="alt text" width="50%">
</center>
</div>
与原始 Transformer 模型不同T5 模型的LayerNorm 采用了 RMSNorm通过计算每个神经元的均方根Root Mean Square来归一化每个隐藏层的激活值。RMSNorm 的参数设置与Layer Normalization 相比更简单只有一个可调参数可以更好地适应不同的任务和数据集。RMSNorm函数可以用以下数学公式表示