transformer-Attention is All You Need(二)

transformer中的解码器

解码器层

        每个解码器层根据给定的输入向目标方向进行特征提取,即完成解码过程

        transformer的解码器也是一个自回归模型,根据编码器的结果以及上一次预测的结果,对下一次可能出现的值进行特征表示。它也是由N层完全相同解码器层堆叠起来的,每个解码器层包括三个子层连接结构:

        1. 第一个子层连接结构是一个多头注意力子层和一个规范化层和残差连接的组合;

        2. 第二个子层连接结构是一个多头注意力子层和一个规范化层和残差连接的组合;

        3. 第三个子层连接结构是一个前馈全连接子层和一个规范化层和残差连接的组合。

第二个多头注意力子层

        在解码器层中比较特殊的地方就是第二个子层的多头注意力机制,它的结构与transformer中其他的多头注意力子层没有区别,但是它采用的是普通的注意力机制而不是自注意力机制,即它的输入的Q\neq K= V,它的K和V都是来自编码器的输出,Q来自于解码器层中第一个子层的输出,并且解码器的多头注意力子层还需要mask遮掩未来信息。

解码器细节

        如上图,在解码器通过开始符 <bos> 以及其预测出来的“永 不”后,经过一些操作,预测出“言”,以此类推,在下一个时间步上,就是通过“<bos> 永 不 言”来预测下一个输出“弃”。

        对于乱码部分的注意力分数,我们设置为一个非常小的数,使得其e指数接近0,设置后再计算注意力分数,得到以及预测出来部分之间的相互注意力得分。

        得到y向量之后,即第一个子层结束,再经过一个子层连接结构之后就进入第二个子层。在第二个子层使用注意力机制(即下图中的Cross Attention)

        用编码器输出的K,V与上一个子层输出的Q做注意力计算,同上,最后在经过第三个子层,同样需要先经过一个子层连接结构就完成了解码器层的工作,和编码器部分一样需要经过N层的解码器层堆叠组成解码器部分。在模型的最后需要通过线性层把d_model维度转化回vocab_size的维度再经过softmax和argmax最后得到一个vocab_size维度的独热码,就完成取到“言”的操作,接下去以此类推。

transformer的工作流程

        通过 transformer 我们可以完成把 input 的句子翻译成对应的 output 的句子。现在就以这个作为例子,输入经过词嵌入和位置编码后结合在一起作为encoder的输入,这里不再具体讨论encoder内部的具体过程,encoder会输出包含语义信息的张量memory,即下图中的K_encdec和V_encdec,这两个值会输入到decoder中的每一个解码器层中的第二个多头注意力子层。

在这里插入图片描述

       

        以上为transformer的大致内容,transformer模型对相对位置和绝对位置都不敏感并且计算的时候没有顺序依赖因此可以并行计算,但是做在self-attention的时候会需要有依赖序列长度的复杂度,即 \Theta (seqlen^{2}) 。

Reference

[模型学习]Transformer机制及其过程_transformer解码过程-CSDN博客

https://arxiv.org/pdf/1706.03762.pdf

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/690572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

循环队列|超详细|数据结构学习讲解与笔记

队列元素先进先出队列只允许在线性表的一端进行操作&#xff0c;是一种操作受限的线性表 队列的基本操作 InItQueue(&Q)初始化队列&#xff0c;构造一个空队列 QEmptyQueue(Q)队列判空FullQueue(Q)队列判满EnQueue(&Q , x)入队操作DeQueue(&Q , &x)出队操作G…

OpenAI新爆款Sora,大佬们怎么看?

OpenAI新爆款Sora的热度持续发酵&#xff0c;在科技圈的刷屏阵仗都快赶上正月初五迎财神了。 智东西2月17日报道&#xff0c;这两天&#xff0c;OpenAI首款文生视频大模型Sora以黑马之姿占据AI领域话题中心&#xff0c;马斯克、杨立昆、贾扬清、Jim Fan、谢赛宁、周鸿祎、李志…

【动态规划专栏】专题一:斐波那契数列模型--------2.三步问题

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

数据结构-最短路径(Dijkstra算法与Floyd算法)

介绍 对于网图来说&#xff0c;最短路径是指两顶点之间经过的边上权值之和最少的路径&#xff0c;其路径上第一个点记为源点&#xff0c;最后一个为终点。 计算最短路径有两个经典算法&#xff0c;即迪杰斯特拉&#xff08;Dijkstra&#xff09;算法与弗洛伊德&#xff08;Fl…

unity学习(20)——客户端与服务器合力完成注册功能(2)调试注册逻辑

接着上一节的问题&#xff0c;想办法升级成具备数据库功能的服务器&#xff0c;这个是必须的。 至少在初始化要学会把文件转换为session&#xff0c;新知识&#xff0c;有挑战的。 现在是从LoginHandler.cs跳到了AccountBiz.cs的create&#xff0c;跳度还是很大的。 create函…

oauthlib,一个强大的 Python 身份校验库!

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。 目录 ​编辑 前言 什么是 OAuthLib&#xff1f; 安装 OAuthLib OAuthLib 的主要功能 OAuthLib 的用法 实现…

文案馆头像壁纸微信小程序源码【支持流量主】

文案馆头像壁纸微信小程序源码【支持流量主】 源码介绍&#xff1a;文案馆头像壁纸微信小程序源码是一款可以获取套图、头像、壁纸的小程序。小程序源码内置流量主功能 需求环境&#xff1a;微信小程序phpmysql 下载地址&#xff1a; https://www.changyouzuhao.cn/13453.ht…

【C语言】长篇详解,字符系列篇2-----受长度限制的字符串函数,字符串函数的使用和模拟实现【图文详解】

欢迎来CILMY23的博客喔&#xff0c;本期系列为【【C语言】长篇详解&#xff0c;字符系列篇2-----“混杂”的字符串函数&#xff0c;字符串函数的使用和模拟实现【图文详解】&#xff0c;图文讲解各种字符串函数&#xff0c;带大家更深刻理解C语言中各种字符串函数的应用&#x…

即时设计是什么?

在过去的两年里&#xff0c;由于疫情的推动以及科学技术的不断进步&#xff0c;国内外协同办公室发展迅速。在市场的推动下&#xff0c;市场上出现了越来越多的协同办公软件&#xff0c;使工作场所的工作更加高效。 在设计领域&#xff0c;具有协同功能的软件市场似乎仍处于空…

记一个大坑: 树莓派上docker运行motioneye找不到摄像头

当在树莓派上执行这段命令后&#xff0c;将创建montioneye容器 docker run --name"motioneye" \-p 8765:8765 \--hostname"motioneye" \-v /etc/localtime:/etc/localtime:ro \-v /etc/motioneye:/etc/motioneye \-v /var/lib/motioneye:/var/lib/motione…

162基于matlab的多尺度和谱峭度算法对振动信号进行降噪处理

基于matlab的多尺度和谱峭度算法对振动信号进行降噪处理&#xff0c;选择信号峭度最大的频段进行滤波&#xff0c;输出多尺度谱峭度及降噪结果。程序已调通&#xff0c;可直接运行。 162 matlab 信号处理 多尺度谱峭度 (xiaohongshu.com)

用Windows桌面应用程序制作一个扫雷游戏

游戏介绍: 这段代码是一个简易版的扫雷游戏的主程序部分。游戏分为几个主要部分: **主函数 (main)**:负责整个游戏流程的控制。首先,它初始化了一个枚举类型的变量 input 用于存储玩家的选择。然后,进入一个循环,在这个循环中,它会显示游戏菜单,接收玩家的输入,并根…

mysql 2-1

添加数据 方式二 更新数据 删除数据 小结 计算列 数据类型 可选属性 适用场景 如何选择 浮点类型 存在精度问题 定点数介绍 BIT类型 日期与时间类型 YEAR类型 DATA类型 TIME类型 DATATIME TIMESTAMP 文本字符串类型 适用场景 TEXT类型

基于Springboot的校园求职招聘系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园求职招聘系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

Git基本操作(超详细)

文章目录 创建Git本地仓库配置Git配置命令查看是否配置成功重置配置 工作区、暂存区、版本库添加文件--场景一概述实例操作 查看.git文件添加文件--场景二修改文件版本回退撤销修改情况⼀&#xff1a;对于工作区的代码&#xff0c;还没有 add情况⼆&#xff1a;已经 add &#…

大白话说说redux

redux的3个重要概念 store 就是用来存放应用的各种状态的action 就是用来描述应用发生了什么动作的&#xff0c;注意理解他是对动作的描述reducer 就是用来处理应用的动作&#xff0c;并且决定怎么去更新应用存放在store里面的状态。 redux的3个原则 应用的所有状态存储为re…

BUGKU-WEB 源代码

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 你说啥就是啥&#xff1a;去源代码吧 相关工具 URL解码平台&#xff1a;https://www.iamwawa.cn/urldecode.html 解题步骤 随便输入试试 2. 看看源码 存在script&#xff1a; <script> …

Java学习--黑马SpringBoot3课程个人总结-2024-02-14

1.子路由 //定义路由关系 const routes[{ path: /login, component: LoginVue},{ path: /, component: LayoutVue,redirect:/article/manage,children:[{path:/article/category,component:ArticleCategoryVue},{path:/article/manage,component:ArticleManageVue},{path:/…

IO-day3

思维导图 1.使用fread和fwrite完成图片的拷贝。 2.使用read和write完成两个文件的拷贝。 3.将时间在文件中跑起来。

Mock.js

在开发后端的应用中&#xff0c;我们使用postman来测试接口&#xff0c;观察和验证前后端之间的数据传递是否正常。 在开发前端的应用中&#xff0c;我们使用Mock.js来模拟后端服务&#xff0c;以便进行前端业务逻辑的开发和测试&#xff08;以前使用json-server也很方便&#…