【Transformer】transformer模型结构学习笔记

 

图1 transformer模型架构
图2 transformer主要模块简介
图3 encoder-decoder示意图N=6
图4 encoder-decoder子层示意图

1. transformer架构

  • encoder-decoder框架是一种处理NLP或其他seq2seq转换任务中的常见框架, 机器翻译就是典型的seq2seq模型, 两个seq序列长度可以不相等

  • transformer也是encoder-decoder的总体架构, 如上图。transformer主要由4个部分组成:

    • 输入部分(输入输出嵌入与位置编码)
    • 多层编码器
    • 多层解码器
    • 以及输出部分(输出线性层与softmax)
  • 模块介绍

    • Input Embedding: 输入嵌入。将源文本中的词汇数字表示转换为向量表示,捕捉词汇间的关系
    • Positional Encoding: 位置编码。为输入序列的每个位置生成位置向量,以便模型能够理解序列中的位置信息
    • Output Embedding: 输出嵌入。将目标文本中的词汇数字表示转换为向量表示
    • Linear: 线性层。将decoder输出的向量转换为最终的输出维度
    • Softmax: softmax层。将线性层的输出转换为概率分布,以便进行最终的预测
    • encoder架构: encoder由6个相同的encoder层组成,每个层包括两个子层:一个多头自注意力层(multi-head self-attention)和一个逐位置的前馈神经网络(point-wise feed-forward network);每个子层后都会使用残差连接(residual connection)和层归一化(layer normalization)连接,即Add&Norm。如下图
    • decoder架构:decoder包含6个相同的decoder层,每层包含3个子层掩码自注意力层masked self-attention),encoder-decoder交叉注意力层逐位置的前馈神经网络。每个子层后都有残差连接层归一化操作,即Add&Norm。如下图

2. transformer子层解析

  • encoder和decoder的本质区别:self-attention的masked掩码机制
  • muitl-head进行masked的目的:在生成文本时,确保模型只依赖已知的信息,而不是未来的内容,对未来信息进行掩码处理,这样才能学会预测
  • multi-head的目的:让模型关注输入的不同部分或者不同信息,比如一个名词的修饰词,一个名词的分类,一个名词对象的情感、诗意等,从直观的到抽象的,捕获复杂的依赖关系
  • Add:残差连接。缓解梯度消失问题;网络输入x与网络输出F(x)相加,求导时相当于添加常数项1,缓解梯度消失问题
  • Norm:层归一化。在每个层上独立进行,使激活值具有相同的均值和方差,通常是0和1;在transformer中,Norm操作通常紧跟在Add之后,对残差连接结果进行归一化,以加速训练并稳定模型性能
  • 前馈网络:对输入进行非线性变换,提取更高级别的特征/信息
  • 逐位前馈神经网络</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值