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

自然语言处理---Transformer机制详解之Decoder详解

1 Decoder端的输入解析

1.1 Decoder端的架构

Transformer原始论文中的Decoder模块是由N=6个相同的Decoder Block堆叠而成,其中每一个Block是由3个子模块构成,分别是多头self-attention模块,Encoder-Decoder attention模块,前馈全连接层模块。

  • 6个Block的输入不完全相同:
    • 最下面的一层Block接收的输入是经历了MASK之后的Decoder端的输入 + Encoder端的输出.
    • 其他5层Block接收的输入模式一致, 都是前一层Block的输出 + Encoder端的输出.

1.2 Decoder在训练阶段的输入解析

  • 从第二层Block到第六层Block的输入模式一致, 无需特殊处理, 都是固定操作的循环处理.
  • 聚焦在第一层的Block上: 训练阶段每一个time step的输入是上一个time step的输入加上真实标签序列向后移一位. 具体来说, 假设现在的真实标签序列等于"How are you?", 当time step=1时, 输入张量为一个特殊的token, 比如"SOS"; 当time step=2时, 输入张量为"SOS How"; 当time step=3时, 输入张量为"SOS How are", 以此类推...
  • 注意: 在真实的代码实现中, 训练阶段不会这样动态输入, 而是一次性的把目标序列全部输入给第一层的Block, 然后通过多头self-attention中的MASK机制对序列进行同样的遮掩即可.

1.3 Decoder在预测阶段的输入解析

  • 同理于训练阶段, 预测时从第二层Block到第六层Block的输入模式一致, 无需特殊处理, 都是固定操作的循环处理.
  • 聚焦在第一层的Block上: 因为每一步的输入都会有Encoder的输出张量, 因此这里不做特殊讨论, 只专注于纯粹从Decoder端接收的输入. 预测阶段每一个time step的输入是从time step=0, input_tensor="SOS"开始, 一直到上一个time step的预测输出的累计拼接张量. 具体来说:
    • 当time step=1时, 输入的input_tensor="SOS", 预测出来的输出值是output_tensor="What";
    • 当time step=2时, 输入的input_tensor="SOS What", 预测出来的输出值是output_tensor="is";
    • 当time step=3时, 输入的input_tensor="SOS What is", 预测出来的输出值是output_tensor="the";
    • 当time step=4时, 输入的input_tensor="SOS What is the", 预测出来的输出值是output_tensor="matter";
    • 当time step=5时, 输入的input_tensor="SOS What is the matter", 预测出来的输出值是output_tensor="?";
    • 当time step=6时, 输入的input_tensor="SOS What is the matter ?", 预测出来的输出值是output_tensor="EOS", 代表句子的结束符, 说明解码结束, 预测结束.

2 小结

  • 在Transformer结构中的Decoder模块的输入, 区分于不同的Block, 最底层的Block输入有其特殊的地方. 第二层到第六层的输入一致, 都是上一层的输出和Encoder的输出.

  • 最底层的Block在训练阶段, 每一个time step的输入是上一个time step的输入加上真实标签序列向后移一位. 具体来看, 就是每一个time step的输入序列会越来越长, 不断的将之前的输入融合进来.

  • 最底层的Block在训练阶段, 真实的代码实现中, 采用的是MASK机制来模拟输入序列不断添加的过程.

  • 最底层的Block在预测阶段, 每一个time step的输入是从time step=0开始, 一直到上一个time step的预测值的累积拼接张量. 具体来看, 也是随着每一个time step的输入序列会越来越长. 相比于训练阶段最大的不同是这里不断拼接进来的token是每一个time step的预测值, 而不是训练阶段每一个time step取得的groud truth值.

相关文章:

自然语言处理---Transformer机制详解之Decoder详解

1 Decoder端的输入解析 1.1 Decoder端的架构 Transformer原始论文中的Decoder模块是由N6个相同的Decoder Block堆叠而成,其中每一个Block是由3个子模块构成,分别是多头self-attention模块,Encoder-Decoder attention模块,前馈全…...

【读书笔记】《软技能》

句子摘抄: 软技能-代码之外的生存指南 “自强不息 孜孜不倦” 强调了坚持不懈、不断奋斗和追求进步的精神。无论遇到多少困难和挫折,都要坚持努力,不断提高自己,不知疲倦地追求目标。这句谚语鼓励人们积极进取,不轻言…...

视频怎么压缩?视频过大这样压缩变小

在日常生活中,我们常常会遇到需要压缩视频的情况,视频压缩不仅可以减小文件大小,方便存储和传输,还可以在保证质量的同时,满足不同的使用需求。那么,如何有效地压缩视频呢? 方法一:嗨…...

蓝桥杯中级题目之组合(c++)

系列文章目录 数位递增数_睡觉觉觉得的博客-CSDN博客拉线开关。_睡觉觉觉得的博客-CSDN博客蓝桥杯中级题目之数字组合(c)_睡觉觉觉得的博客-CSDN博客 文章目录 系列文章目录前言一、个人名片二、描述三、输入输出以及代码示例1.输入2.输出3.代码示例 总…...

julia 笔记:复合类型 struct

1 struct关键字 1.1 声明 struct关键字与复合类型一起引入,后跟一个字段名称的块,可选择使用 :: 运算符注释类型 struct Foobarbaz::Intqux::Float64end 没有类型注释的字段默认为 Any 类型,所以可以包含任何类型的值。 1.2 创建新对象 …...

【JavaEE初阶】 线程池详解与实现

文章目录 🌴线程池的概念🎄标准库中的线程池🍀ThreadPoolExecutor 类🚩corePoolSize与maximumPoolSize🚩keepAliveTime🚩ThreadFactory🚩workQueue🚩RejectedExecutionHandler handl…...

web:[极客大挑战 2019]HardSQL

题目 打开页面显示为 查看源代码没有发现其他的提示信息,随便尝试一下 错误 题目名为hardsql,先来尝试有无sql注入存在 尝试输入单引号输入 显示页面存在注入 这里按照常规思路继续使用order by函数和union select函数进行查询,但是页面没有…...

Android apkanalyzer简介

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、用法3.1 使用 Android Studio3.1.1…...

PJSIP 2.7.2对G.729的支持,编译bcg729步骤

PJSIP 2.7.2对G.729的支持,编译bcg729步骤 下载BCG729源码升级cmake编译BCG729编译pjsip2.7.2 pjsua测试 下载BCG729源码 git clone git://git.linphone.org/bcg729.git升级cmake 注:编译BCG729要求cmake版本大于3.0,如果版本已经达到要求&…...

(二)Python类型总结

Python 是一种面向对象的语言。这意味着在 Python 中,一切都是对象,包括变量、函数和模块。Python 支持类和对象的概念,通过定义类来创建对象,并使用对象的方法和属性来操作数据。 Python 与 Java 和 C 在数据类型方面有一些相似…...

pojo之vo_dto_po的一些理解

一次扫盲VO、DTO、DO和PO区别、用法、概念~-腾讯云开发者社区-腾讯云 (tencent.com) Java学习笔记——实体类(ENTITY,VO,DTO,BO)_dto继承entity_路言汐的博客-CSDN博客 说清楚PO、DTO、VO、BO与使用场景_业务逻辑层p…...

Leetcode 第 364 场周赛题解

Leetcode 第 364 场周赛题解 Leetcode 第 364 场周赛题解题目1:2864. 最大二进制奇数思路代码复杂度分析 题目2:美丽塔 I思路代码复杂度分析 题目3:美丽塔 II思路代码复杂度分析 题目4:统计树中的合法路径数目思路代码复杂度分析 …...

简单单调栈的运用,悬线法---最大子矩阵,整除分块(规律+分块边界)

简单单调栈的运用 牛客一站到底 最优屏障 题意&#xff1a;有n座山&#xff0c;高度位ai,山上的士兵能相互监督当且仅当max(ai1...aj-1)<min(ai,aj) M国的防守能力大小为相互监视的哨兵对数,H国家可以放一块巨大屏障在某山前&#xff0c;以便最大消弱M方式能力 计算最优的屏…...

华为OD 数组求和(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...

Go语言入门心法(十):Go语言操作MYSQL(CRUD)|事务处理

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 Go语言入门心法(六): HTTP面向客户端|服务端编程 Go语言入门心法(七): 并发与通道 Go语言入门心法(八): mysql驱动安装报错o…...

【鸿蒙软件开发】进度条Progress

文章目录 前言一、进度条Progress1.1 创建进度条1.2 进度条样式进度条样式ProgressType.Linear&#xff08;线性样式&#xff09;ProgressType.Ring&#xff08;环形无刻度样式&#xff09;ProgressType.ScaleRing&#xff08;环形有刻度样式&#xff09;ProgressType.Eclipse&…...

Java后端开发(九)-- idea(2022版)将commit(未push)的 本地仓库 的 多条commit记录 进行撤销

目录 1.多次 修改Test01类后,提交到本地仓库 。 2.多次重复 1 的步骤,多次commit成功后,在Git =》Log中会显示,commit记录...

【蓝桥每日一题]-动态规划 (保姆级教程 篇10)#方格取数

高能预警&#xff1a;讲了这么久动态规划了&#xff0c;该上点有难度的题吧 目录 题目&#xff1a;方格取数 思路&#xff08;解法一&#xff09;&#xff1a; 解法二&#xff1a; 题目&#xff1a;方格取数 思路&#xff08;解法一&#xff09;&#xff1a; 如果只有两个方向…...

Git GUI工具:SourceTree代码管理

Git GUI工具&#xff1a;SourceTree SourceTreeSourceTree的安装SourceTree的使用 总结 SourceTree 当我们对Git的提交、分支已经非常熟悉&#xff0c;可以熟练使用命令操作Git后&#xff0c;再使用GUI工具&#xff0c;就可以更高效。 Git有很多图形界面工具&#xff0c;这里…...

4 OpenCV实现多目三维重建(多张图片增量式生成稀疏点云)【附源码】

本文是基于 OpenCV4.80 进行的&#xff0c;关于环境的配置可能之后会单独说&#xff0c;先提一嘴 vcpkg 真好用 1 大致流程 从多张图片逐步生成稀疏点云&#xff0c;这个过程通常包括以下步骤&#xff1a; 初始重建&#xff1a; 初始两张图片的选择十分重要&#xff0c;这是整…...

MedGemma-1.5-4B镜像特性:内置医学影像预处理Pipeline与安全脱敏机制

MedGemma-1.5-4B镜像特性&#xff1a;内置医学影像预处理Pipeline与安全脱敏机制 1. 引言&#xff1a;当AI遇见医学影像 想象一下&#xff0c;你是一位医学研究者&#xff0c;手头有大量的X光片、CT扫描和MRI影像需要分析。传统方法需要逐张查看、手动标注&#xff0c;既耗时…...

欧姆龙CP系列项目级PLC程序模板:即拿即用,地址分配明确,逻辑已验证

欧姆龙PLC程序 欧姆龙CP系列项目级PLC程序模板&#xff0c;拿过来可以直接做项目&#xff0c;逻辑关系很多项目验证过&#xff0c;只需要加进去工艺流程即可&#xff0c;各地址分配明确&#xff1b;有专用的CP系列地址分配表做参考&#xff1b;对欧姆龙PLC学习和提高有很大的帮…...

VisualCppRedist AIO:一站式解决Windows应用依赖问题的终极指南

VisualCppRedist AIO&#xff1a;一站式解决Windows应用依赖问题的终极指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist VisualCppRedist AIO是微软Visual C运…...

从2804云台电机到桌面机械臂:一个STM32/GD32玩家的FOC驱动踩坑全记录

从2804云台电机到桌面机械臂&#xff1a;一个STM32/GD32玩家的FOC驱动踩坑全记录 去年夏天&#xff0c;当我第一次把那个价值不到10元的2804云台电机接上自制的FOC驱动板时&#xff0c;电机发出的刺耳啸叫声让我意识到——真正的挑战才刚刚开始。这不是教科书里标准的电机控制实…...

基于Anything V5的Stable Diffusion服务:5分钟部署教程

基于Anything V5的Stable Diffusion服务&#xff1a;5分钟部署教程 1. 快速了解Anything V5 Anything V5是当前最受欢迎的动漫风格生成模型之一&#xff0c;基于Stable Diffusion技术构建。相比前代版本&#xff0c;V5在以下方面有显著提升&#xff1a; 画质增强&#xff1a…...

手把手教你用Verilog仿真SMIC/TSMC的SRAM时序:从行为模型到对接APB总线实战

芯片验证工程师的SRAM时序仿真实战指南&#xff1a;从行为建模到APB总线集成 在SoC设计中&#xff0c;SRAM作为关键存储单元&#xff0c;其时序特性直接影响系统性能。不同于教科书中的理想模型&#xff0c;实际工程中需要精确模拟SMIC/TSMC等厂商提供的SRAM宏单元特性。本文将…...

三步掌握百度网盘秒传链接:网页工具全平台极速转存指南

三步掌握百度网盘秒传链接&#xff1a;网页工具全平台极速转存指南 【免费下载链接】baidupan-rapidupload 百度网盘秒传链接转存/生成/转换 网页工具 (全平台可用) 项目地址: https://gitcode.com/gh_mirrors/bai/baidupan-rapidupload 还在为百度网盘资源分享的繁琐流…...

APK Installer:在Windows系统上无缝安装Android应用的创新解决方案

APK Installer&#xff1a;在Windows系统上无缝安装Android应用的创新解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经需要在Windows电脑上安装Andr…...

艾尔登法环存档复制器:三步安全迁移游戏角色的终极指南

艾尔登法环存档复制器&#xff1a;三步安全迁移游戏角色的终极指南 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 艾尔登法环存档复制器&#xff08;EldenRingSaveCopier&#xff09;是一款专为《艾尔登法环…...

ApkShellext2:让Windows资源管理器也能“看懂“应用包文件

ApkShellext2&#xff1a;让Windows资源管理器也能"看懂"应用包文件 【免费下载链接】apkshellext Show app icons in windows explorer 项目地址: https://gitcode.com/gh_mirrors/ap/apkshellext 你是否曾在Windows资源管理器中面对一堆.apk、.ipa文件时感…...