Fix:第二章 Transformers架构 图片格式、参考文献格式

This commit is contained in:
KMnO4-zx
2025-05-07 23:15:05 +08:00
parent a0c7b6eb37
commit 311fa8fe04

View File

@@ -8,15 +8,24 @@
- 全连接网络FNN即每一层的神经元都和上下两层的每一个神经元完全连接:
![全连接网络](./figures/1-0.png)
<div align="center">
<img src="./figures/1-0.png" alt="图片描述" width="90%"/>
<p>图1. 全链接网络</p>
</div>
- 卷积神经网络CNN即训练参数量远小于全连接层的卷积层来进行特征提取和学习:
![卷积神经网络](./figures/1-1.png)
<div align="center">
<img src="./figures/1-1.png" alt="图片描述" width="90%"/>
<p>图2. 卷积神经网络</p>
</div>
- 循环神经网络RNN能够使用历史信息作为输入、包含环和自重复的网络:
![循环神经网络](./figures/1-2.png)
<div align="center">
<img src="./figures/1-2.png" alt="图片描述" width="90%"/>
<p>图3. 循环神经网络</p>
</div>
由于 NLP 任务所需要处理的文本往往是序列,因此专用于处理序列、时序数据的 RNN 往往能够在 NLP 任务上取得最优的效果。事实上在注意力机制横空出世之前RNN 以及 RNN 的衍生架构 LSTM 是 NLP 领域当之无愧的霸主。例如,我们在第一章讲到过的开创了预训练思想的文本表示模型 ELMo就是使用的双向 LSTM 作为网络架构。
@@ -198,7 +207,10 @@ scores = F.softmax(scores.float(), dim=-1).type_as(xq)
在原论文中,作者也通过实验证实,多头注意力计算中,每个不同的注意力头能够拟合语句中的不同信息,如下图:
![Multihead Attention](./figures/1-3.jpeg)
<div align="center">
<img src="./figures/1-3.jpeg" alt="图片描述" width="90%"/>
<p>图4. 多头注意力机制</p>
</div>
​上层与下层分别是两个注意力头对同一段语句序列进行自注意力计算的结果,可以看到,对于不同的注意力头,能够拟合不同层次的相关信息。通过多个注意力头同时计算,能够更全面地拟合语句关系。
@@ -319,7 +331,10 @@ Seq2Seq即序列到序列是一种经典 NLP 任务。具体而言,是
Transformer 中的 Encoder就是用于上述的编码过程Decoder 则用于上述的解码过程。Transformer 结构如下图:
![Encoder-Decoder](./figures/2-0.jpg)
<div align="center">
<img src="./figures/2-0.jpg" alt="图片描述" width="90%"/>
<p>图5. 编码器-解码器结构</p>
</div>
Transformer 由 Encoder 和 Decoder 组成,每一个 EncoderDecoder又由 6个 EncoderDecoderLayer 组成。输入源序列会进入 Encoder 进行编码,到 Encoder Layer 的最顶层再将编码结果输出给 Decoder Layer 的每一层,通过 Decoder 解码后就可以得到输出目标序列了。
@@ -664,7 +679,11 @@ $$
上述​编码结果示例如下:
![Positional Embedding](./figures/3-0.png)
<div align="center">
<img src="./figures/3-0.png" alt="图片描述" width="90%"/>
<p>图6. 编码结果</p>
</div>
基于上述原理,我们实现一个​位置编码层:
@@ -701,7 +720,10 @@ class PositionalEncoding(nn.Module):
上述所有组件,再按照下图的 Tranfromer 结构拼接起来就是一个完整的 Transformer 模型啦:
![Transformer 结构](./figures/3-1.png)
<div align="center">
<img src="./figures/3-1.png" alt="图片描述" width="80%"/>
<p>图7. Transformer 模型结构</p>
</div>
如图,经过 tokenizer 映射后的输出先经过 Embedding 层和 Positional Embedding 层编码,然后进入上一节讲过的 N 个 Encoder 和 N 个 Decoder在 Transformer 原模型中N 取为6最后经过一个线性层和一个 Softmax 层就得到了最终输出。
@@ -804,5 +826,6 @@ class Transformer(nn.Module):
**参考文献**
1. [Attention is all you need](https://arxiv.org/abs/1706.03762)
2. [An Intuition for Attention](https://jaykmody.com/blog/attention-intuition/)
[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin. (2023). *Attention Is All You Need.* arXiv preprint arXiv:1706.03762.
[2] Jay Mody 的文章 “An Intuition for Attention”.