Transformer 学习小结(输出输入)
简介:
在模型处理中,输入文本需经预处理,包括分词、词汇表构建及填充(padding),并使用填充掩码避免无效计算。位置嵌入为Transformer提供顺序信息,编码器通过自注意力机制和前馈网络处理输入序列。输出处理中,解码器根据编码器输出生成目标序列,使用序列掩码防止信息泄露,逐步生成单词,并在测试阶段采用贪婪或束搜索优化输出。
输入处理:
- 数据预处理:
- 在将文本输入模型之前,需要进行预处理,包括分词、词汇表构建等。
- 由于句子长度不同,还需要进行填充(padding),以确保所有输入具有相同的长度。
- 填充掩码(Padding Mask):
- 填充掩码用于告诉模型哪些部分是真实的输入,哪些部分是填充的,以避免模型在填充部分上进行不必要的计算。
- 位置嵌入(Positional Embedding):
- 由于 Transformer 模型没有循环结构,它需要一种方法来捕捉单词的顺序信息。位置嵌入就是用来实现这一点的,它为每个单词的位置编码。
- 编码器(Encoder):
- 编码器负责将输入序列转换为一系列隐藏状态。
- 注意力机制(Attention Mechanism):
- 编码器中的关键组件是自注意力机制,它允许模型关注输入序列中的不同单词,以捕捉它们之间的关系。
- 前馈网络(Feed-Forward Network):
- 编码器中还包含前馈网络,用于对每个单词的隐藏状态进行进一步处理。
输出处理:
- 解码器(Decoder):
- 解码器负责根据编码器的输出生成目标序列。
- 序列掩码(Sequence Mask):
- 解码器使用序列掩码来防止模型在生成当前单词时看到未来的单词,这对于训练至关重要。
- 逐步训练:
- 解码器以逐步的方式生成输出序列,一次生成一个单词。
- 测试阶段:
- 在测试阶段,解码器使用贪婪搜索或束搜索等方法来生成最佳的输出序列。