Transformer模型-decoder解码器,target mask目标掩码的简明介绍
今天介绍transformer模型的decoder解码器,target mask目标掩码

背景
解码器层是对前面文章中提到的子层的包装器。它接受位置嵌入的目标序列,并将它们通过带掩码的多头注意力机制传递。使用掩码是为了防止解码器查看序列中的下一个标记。它迫使模型仅使用之前的标记作为上下文来预测下一个标记。然后,它再通过另一个多头注意力机制,该机制将编码器层的输出作为额外的输入。最后,它通过位置全连接前馈网络。在这些子层中的每一个之后,它都会执行残差相加和层归一化。
Transformer中的解码器层
如上所述,解码器层无非是对子层的包装器。它实现了两个多头注意力子层和一个位置全连接前馈网络,每个子层之后都跟着层归一化和残差相加。

参看 编码器encoder:
Transformer模型-encoder编码器,padding填充,source mask填充掩码的简明介绍-CSDN博客
https://blog.csdn.net/ank1983/article/details/137399110
为什么需要掩码?
目标掩码target mask

要理解为什么需要目标掩码,最好看一下解码器的输入和输出的示例。解码器的目标是在给定的编码源序列和目标序列的一部分的情况下,预测序列中的下一个标记。为了实现这一点,必须有一个“开始”标记来提示模型预测序列中的下一个标记。这就是上面图像中“<bos>”标记的用途。还需要注意的是,解码器的输入和输出的大小必须相同。
如果目标是将“Wie heißt du?”翻译为“What is your name?”,那么编码器将编码源序列的含义并将其传递给解码器。给定“<bos>”标记和编码的源序列,解码器应该预测出“What”。然后,将“What”附加到“<bos>”后面以创建新的输入,即“<bos> What”。这就是为什么解码器的输入被认为是“向右移动”的原因。这可以传递给解码器以预测What is。这个标记被附加到之前的输入上,以创建新的输入“<bos> What is”。这将被传递给解码器以预测“What is your”。这个过程会一直重复,直到模型预测出“<eos>”标记。
通过使用目标掩码,模型可以同时学习每个迭代的目标序列,例如“<bos> What is your name? <eos>”。
请记住,解码器的输入和输出长度必须相同。因此,在将目标序列传递给解码器之前,需要移除每个目标序列的最后一个标记。如果目标序列存储在trg中,那么解码器的输入将是trg[:, :-1],用于选择除最后一个标记之外的所有内容,这可以在上面的目标输入中看到。预期的输出将是trg[:, 1:],即除第一个标记之外的所有内容,这是上面看到的预期输出。
总结来说,与编码器层一样,解码器也需要对其输入进行掩码处理。虽然填充掩码对于输入是必要的,但目标序列也需要一个前视或后续掩码。在推理过程中,模型只会被提供一个开始标记,并必须基于它预测下一个标记。然后,给定两个标记,它必须预测第三个标记。这个过程会一直重复,直到预测出序列结束标记。这就是Transformer的自回归行为。换句话说,未来的标记只基于过去的标记和来自编码器的嵌入进行预测。
为了模拟这种行为,模型使用后续掩码同时学习所有这些迭代。
可以使用PyTorch的torch.tril函数来创建后续掩码。它将具有(trg_seq_length, trg_seq_length)的形状。

填充掩码&目标掩码
对于序列中的每个标记,概率分布只能考虑之前的标记。但是,由于目标序列也必须进行填充,因此填充掩码和后续掩码必须结合使用。

这可以通过使用 & 运算符轻松实现,该运算符仅在两个掩码都为1时才返回1。

这个最终的目标掩码必须为每个批次中的序列创建,这意味着它将具有(batch_size, 1, trg_seq_length, trg_seq_length)的形状。这个掩码将在每个头之间进行广播。
原文链接:https://medium.com/@hunter-j-phillips/the-decoder-8882c33de69a
相关文章:
Transformer模型-decoder解码器,target mask目标掩码的简明介绍
今天介绍transformer模型的decoder解码器,target mask目标掩码 背景 解码器层是对前面文章中提到的子层的包装器。它接受位置嵌入的目标序列,并将它们通过带掩码的多头注意力机制传递。使用掩码是为了防止解码器查看序列中的下一个标记。它迫使模型仅使用…...
All in One:Prometheus 多实例数据统一管理最佳实践
作者:淡唯(啃唯)、阳其凯(逸陵) 引言 Prometheus 作为目前最主流的可观测开源项目之一,已经成为云原生监控的事实标准,被众多企业广泛应用。在使用 Prometheus 的时候,我们经常会遇…...
mysql报错-mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止和数据恢复
启动mysql服务时出现该错误: 本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止。 我的mysql版本是8.0.18 系统:win10 如何安装mysql,可以看我这一篇文章:mysql的安装 ---必会 - bigbigbrid - 博客园 (cn…...
Java开发从入门到精通(二十):Java的面向对象编程OOP:File文件操作的增删改查
Java大数据开发和安全开发 (一)Java的文件操作1.1 Java的File和IO流概念1.2 File类的使用1.2.1 创建File类的对象1.2.2 常用方法1:判断文件类型、获取文件信息1.2.3 常用方法2:创建文件、删除文件1.2.4 常用方法3:遍历文件夹 1.3 java File的方法递归1.3…...
10.list的模拟实现(普通迭代器和const迭代器的类模板)
1. list的介绍及使用 1.1 list的介绍 list的文档介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过…...
【电控笔记5】电流环速度环三环参数整定
旋转坐标系下的电压方程,由id和iq计算出ud和uq Lq:q轴电感 Ld:d轴电感 输入是电流,输出是电压? 内嵌式pmsm(ipmsm)模型建立: 其中: λf是转子磁场在定子绕组所产生的磁通链,为一常数,在psms中转子磁场非常稳定几乎不变。 ipmsm转矩方程式: 对永磁同步马达而言,使…...
AI克隆语音(基于GPT-SoVITS)
概述 使用GPT-SoVITS训练声音模型,实现文本转语音功能。可以模拟出语气,语速。如果数据质量足够高,可以达到非常相似的结果。相比于So-VITS-SVC需要的显卡配置更低,数据集更小(我的笔记本NVIDIA GeForce RTX 4050 Lap…...
小蚕爬树问题
小蚕爬树问题 问题描述: 编写一个函数 int day(int k,int m,int n),其功能是:返回小蚕需要多少天才能爬到树顶(树高 k 厘米,小蚕每天白天向上爬 m 厘米,每天晚上下滑 n 厘米,爬到树顶后不再下滑࿰…...
科研学习|科研软件——如何使用SmartPLS软件进行结构方程建模
SmartPLS是一种用于结构方程建模(SEM)的软件,它可以用于定量研究,尤其是在商业和社会科学领域中,如市场研究、管理研究、心理学研究等。 一、准备数据 在使用SmartPLS之前,您需要准备一个符合要求的数据集。…...
实用工具系列-ADB使用方式
作者持续关注 WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(WPS二次开发QQ群:250325397),摸鱼吹牛嗨起来࿰…...
计算机网络书籍--《网络是怎样连接的》阅读笔记
第一章 浏览器生成信息 1.1 生成HTTP请求信息 1.1.1 URL Uniform Resource Locator, 统一资源定位符。就是网址。 不同的URL能够用来判断使用哪种功能来访问相应的数据,比如访问Web服务器就要用”http:”,而访问FTP服务器用”ftp:”。 FTPÿ…...
antd+vue——datepicker日期控件——禁用日期功能
需求:今天之前的日期禁用 <a-date-pickerv-model.trim"formNE.deliveryTime":disabled-date"disabledDate"valueFormat"YYYY-MM-DD"allowClearstyle"width: 100%" />禁用日期的范围: //时间范围 disab…...
技术分享 | Appium 用例录制
下载及安装 下载地址: github.com/appium/appi… 下载对应系统的 Appium 版本,安装完成之后,点击 “Start Server”,就启动了 Appium Server。 在启动成功页面点击右上角的放大镜,进入到创建 Session 页面。配置好…...
[蓝桥杯 2018 省 A] 付账问题
【蓝桥杯】付账问题 [蓝桥杯 2018 省 A] 付账问题 题目描述 几个人一起出去吃饭是常有的事。但在结帐的时候,常常会出现一些争执。 现在有 n n n 个人出去吃饭,他们总共消费了 S S S 元。其中第 i i i 个人带了 a i a_i ai 元。幸运的是&#…...
设计模式|装饰器模式(Decorator Pattern)
文章目录 结构优缺点优点缺点适用场景示例装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许在不改变原始对象的基础上,动态地给对象添加新的功能或责任。这种模式是通过创建一个包装对象,也就是装饰器,来包裹真实的对象,然后在装饰器中添加新的行为或功能。这…...
发作性睡病有性别差异吗?
发作性睡病是一种特殊的睡眠障碍,以不可控制的嗜睡、猝倒发作、睡眠瘫痪、入睡前幻觉以及夜间睡眠紊乱为主要临床特点。关于发作性睡病是否存在性别差异,不同的研究和报道给出了不同的结论。 一方面,从生理角度来看,男性和女性在…...
ppt从零基础到高手【办公】
第一章:文字排版篇01演示文稿内容基密02文字操作规范03文字排版处理04复习&作业解析第二章:图形图片图表篇05图形化表达06图片艺术化07轻松玩转图表08高效工具&母版统一管理09复习&作业解析10轻松一刻-文字图形小技巧速学第三章:…...
文件上传下载
文章目录 文件上传下载文件上传文件下载 文件上传下载 HTTP请求会包含一个请求头,其中"Content-Type"字段告诉服务器正在发送什么类型的数据。根据发送的数据类型,浏览器和服务器会采取适应的处理方式。 "multipart/form-data"是一…...
C++11 新特性:新增算法
C11 在标准库中引入了一系列新的算法,这些新增的算法使我们的代码写起来更简洁方便。 下面是 C11 中新增加的一些重要算法的简要描述和使用方法: 1、非修改序列操作 std::all_of:检查范围内的所有元素是否都满足指定的谓词。std::any_of&a…...
c/c++普通for循环学习
学习一下 for 循环的几种不同方式,了解一下原理及差异 完整的测试代码参考 GitHub :for 循环测试代码 1 常用形态 对于 for 循环来说,最常用的形态如下 for (表达式1; 表达式2; 表达式3) {// code }流程图如下: 编写测试代码…...
新手友好:通过快马用自然语言生成你的第一个openclaw卸载脚本
作为一个刚接触编程的新手,想要自己动手写一个软件卸载脚本确实会有点无从下手。最近我在学习Python时,发现用InsCode(快马)平台可以很轻松地通过自然语言描述生成完整代码,特别适合我们这样的初学者。下面我就分享一下如何用这个平台快速创建…...
SEO_全面介绍SEO从入门到精通的关键知识点
<h2>什么是SEO?</h2> <p>SEO(Search Engine Optimization,搜索引擎优化)是一套通过优化网站内容和结构,以提高其在搜索引擎结果页面(SERP)中的自然排名的技术和策略。SEO不仅…...
PaddleOCR-VL-1.5:0.9B VLM实现文档解析新SOTA
PaddleOCR-VL-1.5:0.9B VLM实现文档解析新SOTA 【免费下载链接】PaddleOCR-VL-1.5-GGUF 项目地址: https://ai.gitcode.com/paddlepaddle/PaddleOCR-VL-1.5-GGUF 导语:百度飞桨团队推出PaddleOCR-VL-1.5,以0.9B参数量的轻量化视觉语言…...
3步精通哔哩下载姬:零基础掌握B站视频高效下载与管理全攻略
3步精通哔哩下载姬:零基础掌握B站视频高效下载与管理全攻略 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&…...
LumiPixel Canvas Quest生成人像的细节优化:高清修复与面部修复技术详解
LumiPixel Canvas Quest生成人像的细节优化:高清修复与面部修复技术详解 1. 为什么需要关注人像生成质量 用AI生成人像时,最让人头疼的就是面部细节问题。你可能遇到过这样的情况:生成的图片整体效果不错,但放大一看,…...
DeepSeek-OCR-2实战案例:高校教务系统成绩单OCR+学分绩点自动计算
DeepSeek-OCR-2实战案例:高校教务系统成绩单OCR学分绩点自动计算 本文介绍如何利用DeepSeek-OCR-2模型实现高校教务系统成绩单的OCR识别,并结合vLLM推理加速和Gradio前端展示,构建一个完整的成绩单识别与学分绩点自动计算系统。 1. 项目背景与…...
5分钟搞定OpenClaw+nanobot:超轻量级AI助手一键部署指南
5分钟搞定OpenClawnanobot:超轻量级AI助手一键部署指南 1. 为什么选择OpenClawnanobot组合 上周我在整理电脑上的项目文档时,突然意识到自己每天要重复执行大量机械操作:查找文件、转换格式、汇总数据。作为独立开发者,这些琐事…...
Qwen-Turbo-BF16惊艳案例:霓虹雨街中不同材质(金属/玻璃/布料)反射率差异还原
Qwen-Turbo-BF16惊艳案例:霓虹雨街中不同材质(金属/玻璃/布料)反射率差异还原 你有没有想过,为什么一张好的夜景图片,尤其是那种霓虹闪烁的雨夜街景,看起来那么真实、那么有“感觉”? 关键往往…...
如何快速搭建个人小说离线图书馆:fanqienovel-downloader完整使用指南
如何快速搭建个人小说离线图书馆:fanqienovel-downloader完整使用指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 厌倦了在线小说的网络限制和广告干扰?想要随时…...
MCP服务器性能翻倍的秘密:基于asyncio+uvloop+Pydantic V2的轻量级模板(压测QPS达12,800+)
第一章:MCP服务器开发模板概述与核心价值MCP(Model-Controller-Protocol)服务器开发模板是一套面向协议驱动、可插拔架构的后端服务构建范式,专为高并发、多协议适配(如HTTP/2、gRPC、WebSocket、MQTT)场景…...
