博客阅读:图解Transformer(The Illustrated Transformer)

博客阅读:图解Transformer(The Illustrated Transformer)

原文链接:https://jalammar.github.io/illustrated-transformer/
作者:Jay Alammar

前言

  在之前的文章中,Attention成了深度学习模型中无处不在的方法,它是种帮助提升NMT(Neural Machine Translation) 的翻译效果的思想。在本篇博客中,我们解析下Transformer,该模型扩展Attention来加速训练,并且在特定任务上 transformer 表现比 Google NMT 模型还要好。然而,其最大的好处是可并行。实际上谷歌云推荐将Transformer作为云TPU的推导模型。现在我们将Transformer拆解开来看看它是如何工作的。
  Transformer是在"Attention is All You Need"中提出的,其中的TF应用是Tensor2Tensor的子模块。哈佛的NLP团队专门制作了对应的PyTorch的指南说明。本文旨在简化难度,一步一步地解释其中的概念,希望有助于初学者更容易地理解。

在这里插入图片描述

  Transformer 是一种基于 encoder-decoder 结构的模型

  在 Encoder 中,

  1. Input 经过 Embedding 后,进行 Positional Encoding
  2. 然后是 Multi-head Attention
  3. 再进行 Position-wise Feed Forward
  4. 每个子层之间做残差连接

  在 Decoder 中,

  1. 如上图所示,也经过 Positional Encoding,Multi-head attention 和 FFN,子层之间也要做残差连接
  2. 但比 Encoder 多了一个 Masked Multi-head attention
  3. 最后要经过 Linear 和 Softmax 层,输出概率

1.整体结构(A High-Level Look)

  我们先将整个模型视为黑盒,比如在机器翻译中,接收一种语言的句子作为输入,然后将其翻译成其他语言输出。

在这里插入图片描述

  细看下,其中由编码组件、解码组件和它们之间的连接层组成

在这里插入图片描述
  编码组件是六层编码器首位相连堆砌而成解码组件也是六层解码器堆成的

在这里插入图片描述
  编码器完全结构相同的,但是并不共享参数,每一个编码器都可以拆解成以下两个字部分

在这里插入图片描述
  编码器的输入首先流过一个self-attention层,该层帮助编码器能够看到输入序列中的其他单词当它编码某个词时。后面,我们会细看self-attention的内部结构。

  self-attention的输出流向一个前向网络,每个输入位置对应的前向网络是独立互不干扰的

  解码器同样也有这些子层,但是在两个子层间增加了attention层,该层有助于解码器能够关注到输入句子的相关部分,与 seq2seq model 的Attention作用相似。

在这里插入图片描述

图的引入(Bringing The Tensors Into the Picture)

  现在,我们解析下模型最主要的组件,从vectors/Tensor开始,然后是它们如何流经各个组件们并输出的

  正如NLP应用的常见例子,先将输入单词使用embedding algorithm转成向量。

在这里插入图片描述

每个词映射到512维向量上
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南有芙蕖

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值