Transformer解析——(四)Decoder

 本系列已完结,全部文章地址为:

Transformer解析——(一)概述-CSDN博客

Transformer解析——(二)Attention注意力机制-CSDN博客

Transformer解析——(三)Encoder-CSDN博客

Transformer解析——(四)Decoder-CSDN博客

Transformer解析——(五)代码解析及拓展-CSDN博客

Decoder与Encoder的结构非常类似,下面具体解析。

1 整体结构

与Encoder相比,Decoder增加了一个交叉注意力的模块,其他模块的结构与Encoder类似。

2 Decoder的训练和预测过程

注意,Decoder的训练和预测差别很大。

在训练时,将目标序列(比如在英译中任务里,目标序列就是中文)通过Input Embedding和Positional Encoding后,并行输入到自注意力模块中,注意使用Look Ahead Mask避免训练第i个词时使用了i以后的词。自注意力的输出作为Q,Encoder输出作为K和V,一并输入到交叉注意力模块中,随后经过ResNet等模块,得到最终的输出。

在预测时,交叉注意力模块的K和V依然来自于Encoder,Decoder的输入先从开始标志<BEGIN>开始,输出第一个词后,将<BEGIN>,第一个词合在一起重新输入到Decoder,序贯地输出每一个词,直到输出<END>结束标志位停止。

至于这么设计的原因,可见"Look Ahead Mask"小节。

3 交叉注意力

交叉注意力将Encoder的输出传入Attention作为Key和Value,为什么这么设计呢?因为Decoder在生成目标序列时不止要考虑已生成的序列,还要考虑源序列的信息。正是交叉注意力模块连接了Encoder和Decoder。

通过使用Encoder输出的 K 和 V,Decoder可以知道源序列中哪些部分与当前正在生成的目标位置最相关。例如,在英译汉任务"I want to go to school"中,假设现在已经输出了"我想去",在输出下一个词时,如果只考虑已输出的“我想去”,肯定是没法输出学校的。通过将"我想去"与原始序列"I want to go to school"计算Attention,最终识别出和"school"的关注度更高,输出"学校"。交叉注意力机制保证了在翻译每一个中文词时,都需要参考英文原文中的相关内容,以确保翻译的准确性。

4 Look Ahead Mask

在预测时,模型是从左到右的顺序依次生成每个位置的输出的,通过第一个token预测第二个token,通过第一个和第二个token预测第三个token,以此类推,不能提前获取未来位置的信息。因此在训练时,也要遵守同样的行为,否则训练和预测的行为逻辑不一致会影响效果。

就像军事演习时如果每次都提前告知敌人方位,那么真正走上战场就抓瞎了。

在训练时,虽然我们是可以提前获取目标序列的,但是也要人为控制模型在输出某个位置的token时不可以参考后文,防止模型作弊提前得到未来的信息。

在代码实现上,Look Ahead Mask表现为一个上三角矩阵(实际上是方阵),该矩阵右上部分都是1,对角线及左下部分都是0。1代表需要掩盖的位置,0代表不需要掩盖的位置。该矩阵乘一个无穷小的数字,如果矩阵中元素是1,则乘无穷小的数字后将变为无穷小;如果矩阵元素是0,则乘无穷小的数字后将变为0。

该矩阵将叠加到计算好的注意力矩阵,因此在1的位置注意力将是无穷小,在0的位置注意力将不变,从而掩盖了元素是1的位置。与注意力矩阵一样,m行n列元素代表第m个token对第n个token的注意力,比如我们看第3行,前3列都是0,表示它只能利用前3个token(包含自身,因此对角线是0)的信息,第4个token及以后位置都是1。

训练时不需要串行地将目标序列逐个输入到Decoder,而是可以一次性输入全部target,通过Look Ahead Mask控制Decoder的多头注意力不使用未来信息。

以汉译英为例,串行是指先用“<BEGIN>”预测“I”,更新权重,然后用“<BEGIN> I”预测“have”,以此类推。Transformer是直接将目标输出“<BEGIN> I have a cat <END>”全部输入到Decoder中,并行训练参数。

注意,预测时Transformer并不是并行的,必须等上一个token输出完,再拿着已生成的token预测下一个词。

5 线性输出

将输出线性变换,将词向量维度升格为词汇表维度,便于从词汇表维度中通过概率选词。

6 Temperature温度

Temperature控制了选词的创新性。Temperature即Creativity,温度越大,概率会更加平均,选择次高概率词的可能性更大,多样性大;温度越低,概率最高的词概率将更高,选择次高概率词的可能性更小,多样性小。

具体计算上,在softmax运算前先对样本除以了温度。

原始的softmax公式为

softmax(z_i)=e^{z_i}/\sum_j{e^{z_j}}

其中z为原始分数,通过softmax将各输出的分数之和固定为1,将分数转化为概率。

修改后的softmax公式为

softmax(z_i)=e^{z_i/T}/\sum_j{e^{z_j}/T}

若T等于1,则等价于原始的softmax;若T>1,则“强者更弱,弱者更强”,概率更平滑;若T<1,则"强者更强,弱者更弱",概率更尖锐,更偏向于概率高的结果。

下面简要说明T可以控制概率分布平滑还是尖锐。

可以考虑两个样本1和2,原始分数分别为a和b。a>b,因此样本1与样本2的概率之比为(e^a)/(e^b)=e^(a-b),记为d1。概率之比越大,表示分布越尖锐。比如概率之比是2,则概率分别是66%和33%;概率之比是9,则概率分别是90%和10%。

当除以T后,两个样本的概率之比为e^[(a-b)/T],记为d2。

若T>1,d2<d1,即两样本概率之比缩小,因此概率分布更平滑;

若T=1,d2=d1,即两样本概率之比不变;

若T<1,d2>d1,即两样本概率之比变大,因此概率分布更尖锐。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue前端开发-Vant之Layout组件

在Vant 中&#xff0c;Layout组件用于元素的响应式布局&#xff0c;分别由van-row和van-col两个组件来实现&#xff0c;前者表示行&#xff0c;后者被包裹在van-row组件中&#xff0c;表示列&#xff0c;共有24列栅格组成&#xff0c;在van-col组件中&#xff0c;span属性表示所…

【YOLOv8】损失函数

学习视频&#xff1a; yolov8 | 损失函数 之 5、类别损失_哔哩哔哩_bilibili yolov8 | 损失函数 之 6、定位损失 CIoU DFL_哔哩哔哩_bilibili 2.13、yolov8损失函数_哔哩哔哩_bilibili YOLOv8 的损失函数由类别损失和定位损失构成 类别损失&#xff1a;BCE Loss 定位损失…

Mac系统下使用Docker快速部署MaxKB:打造本地知识库问答系统

随着大语言模型的广泛应用&#xff0c;知识库问答系统逐渐成为提升工作效率和个人学习的有力工具。MaxKB是一款基于LLM&#xff08;Large Language Model&#xff09;大语言模型的知识库问答系统&#xff0c;支持多模型对接、文档上传和自动爬取等功能。本文将详细介绍如何在Ma…

(Arxiv-2025)ImageRAG:用于参考引导图像生成的动态图像检索

ImageRAG&#xff1a;用于参考引导图像生成的动态图像检索 paper是Tel Aviv University发布在Arxiv 2025的工作 paper title:ImageRAG: Dynamic Image Retrieval for Reference-Guided Image Generation Code:链接 图 1&#xff1a;使用参考图像扩展图像生成模型的生成能力。 在…

企业知识管理平台重构数字时代知识体系与智能服务网络

内容概要 现代企业知识管理平台的演进呈现出全生命周期管理与智能服务网络构建的双重特征。通过四库体系&#xff08;知识采集库、加工库、应用库、评估库&#xff09;的协同运作&#xff0c;该系统实现了从知识沉淀、结构化处理到价值释放的完整闭环。其中&#xff0c;知识图…

高级推理的多样化推理与验证

25年2月来自波士顿大学、NotBadMath.AI、谷歌、哥伦比亚大学、MIT、Intuit公司和斯坦福大学的论文“Diverse Inference and Verification for Advanced Reasoning”。 OpenAI o1、o3 和 DeepSeek R1 等推理 LLM 在数学和编码方面取得重大进展&#xff0c;但仍发现 IMO 组合问题…

23.1 WebBrowser控件

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 WebBrowser控件类似于IE浏览器的文档界面&#xff08;事实上IE也是使用的这个控件&#xff09;&#xff0c;它提供了显示网页及支持…

Django-Vue 学习-VUE

主组件中有多个Vue组件 是指在Vue.js框架中&#xff0c;主组件是一个父组件&#xff0c;它包含了多个子组件&#xff08;Vue组件&#xff09;。这种组件嵌套的方式可以用于构建复杂的前端应用程序&#xff0c;通过拆分功能和视图&#xff0c;使代码更加模块化、可复用和易于维…

计算机网络安全之一:网络安全概述

1.1 网络安全的内涵 随着计算机和网络技术的迅猛发展和广泛普及&#xff0c;越来越多的企业将经营的各种业务建立在Internet/Intranet环境中。于是&#xff0c;支持E-mail、文件共享、即时消息传送的消息和协作服务器成为当今商业社会中的极重要的IT基础设施。然而&#xff0…

AI学习指南DeepSeek篇(6)-DeepSeek论文介绍

1. DeepSeek LLM: Scaling Open-Source Language Models with Longtermism 发布时间: 2024 年 1 月 5 日 主要内容: 基于 Transformer 架构,采用分组查询注意力(GQA)优化推理成本。 支持多步学习率调度器,提升训练效率。 在预训练和对齐(监督微调与 DPO)方面进行了创新…

刺客信条 枭雄 画质设置以及【锁帧60帧】的办法

刺客信条 枭雄 锁帧60帧的办法 画质设置帧率锁60帧办法 画质设置 关爱老电脑和GPU&#xff0c;适当设置一下画质 我们设置画面的时候&#xff0c;可以看游戏右上角的显存占用&#xff0c;进而观察自己这样设置&#xff0c;GPU的显存够不够&#xff1a; 环境质量&#xff1a;超…

适用于复杂背景的YOLOv8改进:基于DCN的特征提取能力提升研究

文章目录 1. YOLOv8的性能瓶颈与改进需求1.1 YOLOv8的优势与局限性1.2 可变形卷积&#xff08;DCN&#xff09;的优势 2. DCN在YOLOv8中的应用2.1 DCN的演变与YOLOv8的结合2.2 将DCN嵌入YOLOv8的结构中2.2.1 DCNv1在YOLOv8中的应用2.2.2 DCNv2与DCNv3的优化 2.3 实验与性能对比…

cesium视频投影

先看效果 使用cesium做视频投影效果&#xff0c;而且还要跟随无人机移动而移动&#xff0c;我现在用定时器更新无人机的坐标来实现效果具体代码如下&#xff1a; 1、CesiumVideo3d.js(某个cesium技术群大佬分享的) // import ECEF from "./CoordinateTranslate"; le…

滚珠花键在使用时需注意什么?

滚珠花键是一种直线运动系统&#xff0c;当花键套利用其中的钢球在经过精密磨削的花键轴上直线运动时&#xff0c;可以传递扭矩。在使用滚珠花键时&#xff0c;需要注意以下几个重要的事项&#xff1a; 1、不要擅自拆卸滚珠花键的各部分&#xff0c;因为这样可能会导致异物进入…

AI助力下的PPT革命:DeepSeek 与Kimi的高效创作实践

清华大学出品《DeepSeek&#xff1a;从入门到精通》分享 在忙碌的职场中&#xff0c;制作一份高质量的PPT往往需要投入大量时间和精力&#xff0c;尤其是在临近截止日期时。今天&#xff0c;我们将探索如何借助 AI 工具 —— DeepSeek 和 Kimi —— 让 PPT 制作变得既快捷又高…

PcVue : 点亮马来西亚砂拉越偏远村庄

导读 背景简介 新项目的需求 实施亮点 成果 背景简介 2021年&#xff0c;砂拉越能源公司&#xff08;Sarawak Energy Berhad&#xff09;启动了一项意义非凡的项目-借助太阳能、微型水力发电机等可再生能源&#xff0c;为砂拉越州偏远村庄送去光明与动力。然而&#xff0c…

图论 之 迪斯科特拉算法求解最短路径

文章目录 题目743.网络延迟时间3341.到达最后一个房间的最少时间I 求解最短路径的问题&#xff0c;分为使用BFS和使用迪斯科特拉算法&#xff0c;这两种算法求解的范围是有区别的 BFS适合求解&#xff0c;边的权值都是1的图中的最短路径的问题 图论 之 BFS迪斯科特拉算法适合求…

在mfc中使用自定义三维向量类和计算多个三维向量的平均值

先添加一个普通类, Vector3.h, // Vector3.h: interface for the Vector3 class. // //#if !defined(AFX_VECTOR3_H__53D34D26_95FF_4377_BD54_57F4271918A4__INCLUDED_) #define AFX_VECTOR3_H__53D34D26_95FF_4377_BD54_57F4271918A4__INCLUDED_#if _MSC_VER > 1000 #p…

DM执行计划

DM执行计划 1. 引言 理解执行计划对于优化查询性能、诊断慢查询问题至关重要。本文将从基础概念入手&#xff0c;逐步深入探讨执行计划的各个组成部分&#xff0c;并通过设计用例来验证所学知识。 2. SQL 执行计划基础 SQL 执行计划是数据库引擎在执行 SQL 语句时生成的一个…

【鸿蒙开发】第四十三章 Notification Kit(用户通知服务)

目录​​​​​​​ 1 简介 1.1 使用场景 1.2 能力范围 1.3 业务流程 1.4 通知样式 1.5 约束限制 1.6 与相关Kit的关系 2 请求通知授权 2.1 接口说明 2.2 开发步骤 3 管理通知角标 3.1 接口说明 3.2 开发步骤 4 管理通知渠道 4.1 通知渠道类型说明 4.2 接口说明…