专栏介绍:本栏目为 “2021秋季中国科学院大学胡玥老师的自然语言处理” 课程记录,不仅仅是课程笔记噢~ 如果感兴趣的话,就和我一起入门NLP吧
目录
- Transformer 模型结构
- Transformer 训练
- 训练过程
- MASK
- Padding Mask
- Sequence Mask
- Transformer 预测
Transfomer 模型特点:
注意:
计算细节等考完期末考试再来补充
Transformer 全部采用注意力机制,在训练过程中编码端各位和解码端各位均可并行操作加速训练过程。Transformer 在训练过程中采用 MASK 技术来实现并行操作。
(设 batch size = 1)
并行训练问题:
Mask:通过对某些值进行掩盖,使其不产生效果。
Transformer 的 Mask有二种:
在训练中每个样本的原始句子的长度是不一样的,在进行 batch训练之前,要先进行长度的统一,过长的句子可以通过truncating 截断到固定的长度,过短的句子可以通过 padding 增加到固定的长度,但是 padding 对应的字符只是为了统一长度,并没有实际的价值,因此希望在之后的计算中屏蔽它们,这时候就需要 Mask。
对于那些补零的数据,为了让attention机制不把注意力放在这些位置上,把这些位置的值加上一个非常大的负数(负无穷),经过softmax后,这些位置的权重就会接近0。Transformer的padding mask实际上是一个张量,每个值都是一个Boolean,值为false的地方就是要遮挡的地方。
由于采用 Attention 编码,Y的各词可以同时生成(并行计算进行训练),需要对后续词进行屏蔽。将这些输入组成输入矩阵,然后乘以一个 mask矩阵,屏蔽当前词到最后的词,使当前词只能看到它前面的词。
屏蔽i到最后的词,即当前词只能看到它前面的词。
训练好的模型在预测时将源句子在编码端输入, encoder对其并行编码后得到编码端的输出tensor (不直接作decoder输入),然后Decode端进行解码。
步骤如下:
1.用起始符< Go >当作decoder的 输入,得到输出 的第1个词
2. 用< Go > + 已输出的词解码得到后继的输出词
3. 重复2. 直至输出为结束符号
输入端编码并行进行,预测解码过程中,一个单词一个单词的串行进行输出。