第26周:Pytorch复现Transformer

目录

前言

一、基本概念

1.1 Seq2Seq与Transformer

1.2  Transformer结构详解

1.3 自注意机制(Self-Attention)

二、搭建Transformer模型

2.1 多头注意力机制

2.2 前馈传播

2.3 位置编码

2.4 编码层

2.5 解码层

2.6 Transformer模型搭建

三、使用示例

总结


前言

说在前面:

  • 从整体上把握Transformer模型,明白它是个什么东西,可以干嘛
  • 读懂Transformer的复现代码

一、基本概念

1.1 Seq2Seq与Transformer

Seq2Seq是一种用于序列到序列任务的模型架构,最初用于机器翻译,意味着它可以处理输入序列,并生成相应的输出序列

  • 结构:Seq2Seq模型通常由两个主要部分组成--编码器和解码器。编码器是负责将输入序列编码为固定大小的向量,而解码器则使用此向量生成输出序列
  • 问题:传统的Seq2Seq模型在处理长序列时可能会遇到梯度消失/爆炸等问题,而Transformer模型的提出正是为了解决这些问题

Transformer是一种更现代的深度学习模型,专为处理序列数据而设计,最初用于自然语言处理任务,它不依赖于RNN或CNN等传统结构,而是引入了注意力机制

  • 结构:Transformer模型主要由编码器和解码器组成,它们由自注意力层和全连接前馈网络组成。它使用注意力机制来捕捉输入序列中不同位置之间的依赖关系,同时通过多头注意力来提高模型的表达能力
  • 优势:Transformer的设计使其能够更好地处理长距离依赖关系,同时具有更好的并行性。

     在某种程度上,可以将Transformer看作是Seq2Seq的一种演变,Transformer可以执行Seq2Seq任务,并且相对于传统的Seq2Seq模型具有更好的性能和可扩展性。

     与RNN这类神经网络结构相比,Transformer一个巨大的优点是:模型在处理序列输入时,可以对整个序列输入进行并行计算,不需要按照时间步循环递归处理输入序列。下图Transformer整体结构图,左半部分为编码器,右半部分为解码器。

1.2  Transformer结构详解

       Transformer可以看作是Seq2Seq模型的一种,因此,先从seq2seq的角度对Transformer进行宏观结构的学习,以机器翻译任务为例,先将Transformer看作一个黑盒,黑盒的输入是法语文本序列,输出是英文文本序列。

       将上图中的中间部分“THE TRANSFORMER"拆开成seq2seq标准结构,得到下图:左边是编码器部分encoders,右边是解码部分decoders

       下面,再将上图中的编码器和解码器细节绘出,得到下图,我们可以看到,编码部分由多层编码器(Encoder)组成。解码部分也是由多层的解码器(Decoder)组成,每层编码器、解码器网络结构是一样的,但是不同层编码器、解码器网络结构不共享参数。

       其中,单层编码器主要由自注意力层(Self-Attention Layer)和全连接前馈网络(Feed Forward Neural Network, FFNN)组成,如下如所示:

       其中,解码器在编码器的自注意力层和全连接前馈网络中间插了一个Encoder-Decoder Attention层,这个层帮助解码器聚集于输入序列最相关的部分。

总结一下,Transformer由编码部分和解码部分组成,而编码部分和解码部分又由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值