|
|
|
@ -0,0 +1,38 @@
|
|
|
|
|
# 第一章——Transformer网络架构
|
|
|
|
|
|
|
|
|
|
### 总体架构图
|
|
|
|
|
|
|
|
|
|
<img src="../assets/image-20240421134206905.png" alt="image-20240421134206905" style="zoom:50%;" />
|
|
|
|
|
|
|
|
|
|
左半边是编码器(Encoder),右半边是解码器(Decoder)。
|
|
|
|
|
|
|
|
|
|
这时候大家可能比较迷糊,为什么右边Decoder的部分也有输入(因为一般模型只有一个输出和一个输出),那是因为生成的过程中,模型还需要知道之前生成了哪些内容,以决定下一个最适合的输出。且两者都同时作用于训练和推理阶段。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 左右如何配合运作
|
|
|
|
|
|
|
|
|
|
训练阶段:
|
|
|
|
|
|
|
|
|
|
- 编码器处理输入的序列(如源语音文本),并将其转化成一系列上下文相关的表示,用于捕获输入序列中的信息。
|
|
|
|
|
- 解码器使用编码器的输出以及目标序列的前缀(通过教师强制技术),来预测目标序列的下一个词或标记。在训练过程中,**解码器学习**如何根据编码器的输出和已知的目标序列前缀来生成正确的输出序列。
|
|
|
|
|
|
|
|
|
|
推理阶段(解码/生成阶段):
|
|
|
|
|
|
|
|
|
|
- 编码器同样处理输入序列并产生上下文相关的表示。
|
|
|
|
|
- 解码器则逐步生成输出序列。在每一步,它使用编码器的输出和到目前为止自己生成的序列来预测下一个词或标记。在推理时,解码器不再有访问真实目标序列的前缀,而是依赖于自己之前的预测来继续生成序列。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 为什么需要编码器和解码器
|
|
|
|
|
|
|
|
|
|
根据我们上面了解到的,不同的部分可以针对不同的任务。
|
|
|
|
|
|
|
|
|
|
- BERT(Bidirectional Encoder Representations from Transformers)是只使用了编码器(Encoder)的模型,一般用于抽样式问答 或者 做命名实体识别,如从给定的文本段落中找到并提取出回答问题的文本片段。目标是识别或检索信息,而不是生成新的文本序列。
|
|
|
|
|
- GPT(Generative Pretrained Transformer)是只使用了解码器的模型,被设计用于生成文本。
|
|
|
|
|
- 机器翻译,则需要编码器处理源语言文本,解码器生成目标语言文本。即整个Transofmer。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 解码器(Decoder)概述
|
|
|
|
|
|