当前位置: 首页 > article >正文

Transformer理论阶段

Transformer

在这里插入图片描述
Transformer分为两个部分,一个是编码器,一个是解码器,左侧是编码器,右边是解码器。
Transformer是一个seq2seq模型,是由一个序列到一个序列的模型,输入一个词向量到编码器得到更好的词向量,输入到解码器最终输出出一个个词。

编码器

在这里插入图片描述
左侧是编码器的基本组成单位,编码器是由多个ENCODER组成的,一般是6个。
在这里插入图片描述

如图是一个ENCODER。
首先得到 X 1 , X 2 X_1,X_2 X1,X2两个词向量输入,加上黄色的 X 1 , X 2 X_1,X_2 X1,X2(位置编码)得到了含有位置信息的词向量。
输入self-attention,给词向量的更多信息(句法特征,语义特征)。
做归一化和残差网络,归一化是为了Feed Forward服务的,控制输入数据的范围,使Feed forward激活函数的非线性变化程度更大。残差网络是为了防止Feed forward梯度消失。
做feed forward,其实就是 R e l u ( W ( W ∗ X + b ) + b ) Relu(W(W*X+b)+b) Relu(W(WX+b)+b)
多层叠加得到更好的词向量。

解码器

在这里插入图片描述

右图是解码器的一个单位,多层DECODER组成解码器,第一层self-attention层实际上是Mask self-attention层。
第二层是交叉自注意力机制,KV同源,Q不同源。Q来自上一层Mask self-attention,KV来自ENCONDER。
第三层feed forward。

为什么需要Mask self-attention

训练阶段,已知目标向量,输入的就是目标向量,self-attention就可以解决,测试阶段,不知道目标向量,生成一个输入一个,由于训练和测试的区别,就直接用Mask self-attention

为什么KV来自ENCONDER

Q的含义是查询变量,通过K来做自注意力机制得到在Q看来,V哪个更重要。
Transformer生成一个单词就放入目标向量中,要看对于这个新词中,后面哪个词的概率更大,所以,输入的新词要做Q即Mask self-attention得到的词向量,KV来自encoder。

Transformer总和

在这里插入图片描述
输入X加上位置编码,通过多层encoder层得到更好的词向量,把KV输入解码器的每一个decoder里面的Encoder-Decoder self-attention。
在这里插入图片描述
每生成一个词,加入目标向量,输入Decoder。
接下来将用pytorch实现Transformer。敬请期待。


http://www.kler.cn/a/300285.html

相关文章:

  • AI Agent:AutoGPT的使用方法
  • 【生产力工具】ChatGPT for Windows桌面版本安装教程
  • SQL刷题快速入门(三)
  • Dart语言的学习路线
  • PostgreSQL的学习心得和知识总结(一百六十六)|深入理解PostgreSQL数据库之\watch元命令的实现原理
  • LLMs(大型语言模型)的多智能体:Auto-GPT
  • Unet改进31:添加Star_Block(2024最新改进方法)|紧凑的网络结构和高效的运算
  • 全国各地身份证号开头6位数字及地区对照表
  • 代码随想录Day39|322. 零钱兑换、279.完全平方数、139.单词拆分
  • Kubectl:Kubernetes 的强大命令行工具
  • C++的智能指针
  • 通过ASCII码打印HelloWorld(花式打印HelloWorld)
  • 应用宝自动下载安装
  • 如何下载和安装 Notepad++
  • 【数据库】MySQL表的Updata(更新)和Delete(删除)操作
  • Spring 框架——@Retryable 注解与 @Recover 注解
  • 【delphi】判断多显示器下,程序在那个显示器中
  • C++day7
  • python 实现gaussian高斯算法
  • Vuex快速入门
  • mysql等相关面试题
  • Sentinel实时监控不展示问题
  • kali2023安装docker
  • SprinBoot+Vue老年医疗保健网站的设计与实现
  • 使用ffmpeg在视频中绘制矩形区域
  • 【重学 MySQL】十八、逻辑运算符的使用