Tansformer原理解读

什么是注意力机制

生物学中的注意力机制是指人类或动物能够选择性地将感知和认知资源集中到某些信息或任务上的能力。这种能力允许我们在众多信息的背景中过滤出重要的信息,并将这些信息传递给相应的神经元进行处理。

本质:能从中抓住重点,不丢失重要信息

我们的视觉系统就是一种 Attention机制,将有限的注意力集中在重点信息上,从而节省资源,快速获得最有效的信息。

在这里插入图片描述
简单且直观的理解,机器学习中注意力机制跟人的注意力类似,一张图片的信息量很多,大部分人只会注意**“锦江饭店**”四个字,招牌后面的电话号码和汽车就不是关注的重点。

原理

在这里插入图片描述

  • Attention机制好比在图书馆中有大量的书籍,每本书都有特定的编号和内容。当想要了解某个主题(比如“漫威”)时,会查找与这个主题相关的书籍。
  • 与“漫威”直接相关的动漫、电影书籍会仔细地阅读(权重高),而与“漫威”间接相关的二战书籍只需要简单浏览一下(权重低)。
  • 这个过程就体现了Attention机制的核心思想:根据信息的重要性来分配注意力。

Transformer经典架构

在这里插入图片描述

Transformer架构中有两个核心的组件Encoder和Decoder,左边的这张图是Transformer架构的一个简单表示形式,右边的这张图是Transformer架构的一个完整表示形式,其中有一个重要的Multi-Head Attention组件,称为注意力层。
Transformer架构中的两个核心的组件Encoder和Decoder,每个组件都可以单独使用,具体取决于任务的类型:

  • 编码器(Encoder):它负责提取信息,通过细致分析输入文本,理解文本中各个元素的含义,并发现它们之间的隐藏联系。
  • 解码器(Decoder):依托编码器提供的深入洞察,解码器负责生成所需的输出,无论是将句子翻译成另一种语言、生成一个精确的摘要,还是创作一首全新的诗歌。
  • Encoder-decoder models 或者 sequence-to-sequence models: 适用于需要根据输入进行生成的任务,如翻译或摘要。
transformer流程

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/505c0e6e61674fa8937f31da41eae510.png在这里插入图片描述

Encoder过程

每一层的Encoder由2个子组件组成:自注意力层和前馈网络层,其中文本的输入会先流入自注意力层,正是由于自注意力层的存在,帮助Encoder在对特定文本进行遍历时,能够让Encoder观察到文本中的其他单词。然后自注意力层的结果被输出到前馈网络层

在这里插入图片描述
编码器的旅程从 “输入嵌入” 开始,此过程中,每个单词都从文本形态转换为数值向量,就好像给每个单词配上了一个独一无二的身份证。

以这个例子为例:
输入文本:例如,“The cat sat on the mat.”
在输入嵌入层,每个单词都被翻译成一个数值向量,就像在一个庞大的字典里,每个单词都有一个对应的 “向量地址”。

这些向量不仅捕捉了单词的含义,还包括:

  • 语义关系(比如,“cat” 和 “pet” 更近,而不是和 “chair”);
  • 句法角色(比如,“cat” 通常作为名词,“sat” 作为动词);
  • 句中上下文(比如,这里的 “mat” 很可能是指地垫)。
向量表示如下:
  • “The” -> [0.2, 0.5, -0.1, …]
  • “cat” -> [0.8, -0.3, 0.4, …]
  • “sat” -> [-0.1, 0.7, 0.2, …]

首先,每个单词都转换成了一个数值表示,称为 “词嵌入”,就像在一个巨大的词库地图上给每个单词定位。

接下来,自注意力机制为每个单词生成了三个特殊的向量:“查询(Query)”(询问我需要什么信息)、“键(Key)”(标示我有什么信息)和 “值(Value)”(实际的含义和上下文)。

然后,通过比较每个单词的 “查询” 向量与其他所有单词的 “键” 向量,自注意力层评估了各个单词之间的相关性,并计算出注意力得分。这个得分越高,表示两个单词之间的联系越紧密。

最后,自注意力层根据注意力得分加权处理 “值” 向量,这就像根据每个单词与当前单词的相关度,取了一个加权平均值。

Tansformer公式:

在这里插入图片描述
在这里插入图片描述

想必各位都用过各大招聘网站投过简历,在这里把公司 HR 招聘过程比做一个注意力计算过程,HR 拿到了甲乙丙丁 4 人的简历,4 人都有自己的擅长,甲擅长 IT,乙擅长跑步,丙擅长游泳,丁擅长演讲,IT、跑步、游泳和演讲就是 key,将这些 key 在每人身上拉平,并赋予能力值,例如甲擅长 IT,乙不擅长 IT,则甲IT的能力值为 0.9,乙IT的能力值为 0.1,这些能力值就是 value
HR 要找一个 IT 能力强的人,HR 的需求就是 query,query 与 key 求点积相似度(再除以根下 dk,mask、softmax、dropout),再与能力值 value 矩阵计算,最终就是公司得到的这 4 人的 JD 匹配值。这就是整个当前大模型注意力机制数学原理!

自注意力机制

通过考虑句中其他单词提供的上下文,自注意力机制为每个单词创建了一个新的、更丰富的表示。这种表示不仅包含了单词本身的含义,还有它如何与句中其他单词关联和受到影响。

多头自注意力机制

多头注意力机制(Multi-Head Attention)可以被理解为有多个分析小组,每个小组关注于词与词之间联系的不同层面。这使得编码器能够全面捕获词义之间的多元关系,从而深化其对语句的理解。

在多头注意力机制中,不同于只使用一个自我关注机制,我们有多个独立的 “头部”(通常是 4 到 8 个)。每个头部都针对每个词分别维护一套查询(Query)、键(Key)和值(Value)向量。
这种机制下的注意力是多样化的:每个头部根据不同的逻辑计算注意力得分,聚焦于词间关系的不同方面:

  • 一个头部可能专注分析语法角色,比如 “fox” 和 “jumps” 之间的关系。
  • 另一个可能关注词序,比如 “the” 和 “quick” 之间的顺序。
  • 还有的头部可能识别同义词或相关概念,例如将 “quick” 和 “fast” 视为相近的词。
    通过结合这些不同头部的观点,每个头部的输出被汇总,综合不同的洞察力
位置编码

位置编码(Positional Encoding)是为了补充 Transformer 无法直接处理词序的不足,加入了每个词在句中位置的信息。可以想象成给每个分析员一张地图,指示他们应该如何按顺序审视词汇

学习词之间的关系:

  • 低频波动揭示词之间的长距离关系。

  • 高频波动则关注紧密相连的词。

即便句子的顺序变化,位置向量也能保持词之间的相对位置关系,使得模型能准确理解词与词之间的连接

FFN

前馈网络(FFN,Feed Forward Network)为模型增添了一层非线性处理,使其能够学习到更为复杂的单词间关系,这些关系可能单凭注意力机制难以捕捉。
通过前面几层的分析,你已经深入理解了句中单词的含义、它们之间的联系以及它们的位置。现在,FFN 就像是一只侦探用的放大镜,准备揭示那些不立即显现的复杂细节

Decoder

在这里插入图片描述

现在,轮到解码器承担任务。与编码器不同的是,解码器面临着额外的挑战:在不预见未来的情况下,逐字生成输出。为此,它采用了以下策略:

  • 掩蔽自注意力:类似于编码器的自注意力机制,但有所调整。解码器仅关注之前已生成的单词,确保不会利用到未来的信息。这就像是一次只写出一个句子的故事,而不知道故事的结局。
  • 编码器 - 解码器注意力:这一机制允许解码器参考编码好的输入,就像写作时回头查看参考资料一样。这确保了生成的输出与原始文本保持一致性和连贯性。
  • 多头注意力和前馈网络:与编码器相同,这些层帮助解码器深化对文本中上下文和关系的理解。
  • 输出层:最终,解码器将其内部表征逐一转化为实际的输出单词。这就像是最后的装配线,把所有部件组合起来,形成期望的结果。

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

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

相关文章

Fastgpt知识库接入oneapi和自定义大模型

本期教程教大家训练自己的知识库回答chatgpt回答不了的问题 FastGPT 是一个知识库问答系统,可以通过调用大模型和知识库回答特定的问题 可以做成专属 AI 客服集成到现有的APP或者网站内当作智能客服支持网络爬虫学习互联网上的很多知识可以通过flow可视化进行工作流程编排 本期…

Dask简介

目录 一、概述 二、编程模型 2.1 High-Level Collection 2.2 Low level Interface 三、调度框架 3.1 任务图 3.2 调度 3.3 优化 3.4 动态任务图 一、概述 Dask是一个灵活的Python并行计算库。 Dask由两部分组成: 为计算优化的动态任务调度:和A…

汇凯金业:黄金价格波动的原因是什么

黄金价格波动的原因通常是多方面的,包括但不限于: 经济数据:比如就业数据、通胀率、GDP增长率等对经济状况的指标不及预期,可能会增加黄金作为避险资产的吸引力。 货币政策:央行的利率决策、货币供应量的变化、量化宽…

【每日力扣】543. 二叉树的直径与101. 对称二叉树

🔥 个人主页: 黑洞晓威 😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害 543. 二叉树的直径 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的…

vue项目基于WebRTC实现一对一音视频通话

效果 前端代码 <template><div class"flex items-center flex-col text-center p-12 h-screen"><div class"relative h-full mb-4 fBox"><video id"localVideo"></video><video id"remoteVideo">…

深圳车间厂房降温用什么设备好?

环保水空调&#xff08;也被称为水冷空调或蒸发式降温换气机组&#xff09;的特点主要体现在以下几个方面&#xff1a; 节能环保&#xff1a;环保水空调使用水作为冷媒介&#xff0c;相比传统空调的制冷方式&#xff0c;它能在制冷过程中节约更多的能源&#xff0c;减少碳排放…

羊大师分析,为什么羊奶是孩子的理想饮品?

羊大师分析&#xff0c;为什么羊奶是孩子的理想饮品&#xff1f; 羊奶&#xff0c;作为一种传统的营养饮品&#xff0c;近年来逐渐受到家长们的青睐&#xff0c;成为孩子们的理想饮品。那么&#xff0c;羊大师将为大家讲解&#xff0c;为什么羊奶能够赢得如此多的赞誉&#xf…

Beego 使用教程 5:页面视图

beego 是一个用于Go编程语言的开源、高性能的 web 框架 beego 被用于在Go语言中企业应用程序的快速开发&#xff0c;包括RESTful API、web应用程序和后端服务。它的灵感来源于Tornado&#xff0c; Sinatra 和 Flask beego 官网&#xff1a;http://beego.gocn.vip/ 上面的 bee…

如何备考PMP才能一次通过?

PMP备考一个月就能通过&#xff0c;培训机构中就应该这么学&#xff01; PMP考试的难度其实并没有大家想象中的那么大&#xff0c;现在培训机构的通过率基本也在90%以上&#xff0c;而这90%以上也基本都是头一次参加考试很少有参加重考的学员。我就是在威班PMP培训了一个多月一…

「Java开发指南」如何用MyEclipse搭建GWT 2.1和Spring?(一)

本教程将指导您如何生成一个可运行的Google Web Toolkit (GWT) 2.1和Spring应用程序&#xff0c;该应用程序为域模型实现了CRUD应用程序模式。在本教程中&#xff0c;您将学习如何&#xff1a; 安装Google Eclipse插件为GWT配置一个项目搭建从数据库表到一个现有的项目GWT编译…

net7部署经历

1、linux安装dotnet命令&#xff1a; sudo yum install dotnet-sdk-7.0 或者直接在商店里安装 2、配置反向代理 127.0.0.1:5000》localhost 访问后报错 原因&#xff1a;数据表驼峰名&#xff0c; 在windows的数据表不区分大小写&#xff0c;但是在linux里面是默认区分的&…

【数据结构】基于顺序表实现通讯录

世界会向那些有目标和远见的人让路。&#x1f493;&#x1f493;&#x1f493; 目录 •&#x1f319;说在前面 &#x1f34b;基于顺序表的通讯录 • &#x1f330;1.技术要点 • &#x1f330;2.通讯录流程设计 &#x1f34b;通讯录基本量设计 • &#x1f330;1.定义联系…

PLM系统推荐:产品全生命周期管理最佳解决方案

PLM系统推荐&#xff1a;产品全生命周期管理最佳解决方案 在当今日益竞争激烈的市场环境中&#xff0c;企业如何高效管理其产品设计、开发和生命周期变得尤为重要。产品生命周期管理&#xff08;PLM&#xff09;系统正是为解决这一难题而诞生的。本文将为您详细介绍几款值得推荐…

HTTP免费升级到HTTPS攻略

HTTPS就是在HTTP的基础上加入了SSL&#xff0c;将一个使用HTTP的网站免费升级到HTTPS的关键就是申请一个免费的SSL证书 具体步骤如下 1 获取免费SSL证书 国内的JoySSL 提供不限量免费的SSL/TLS证书。根据自己的需求选择证书类型&#xff08;登录JoySSL官网&#xff0c;创建账号…

5.10开幕!虚拟动力多项数字人互动技术参展元宇宙生态博览会!

2024年5月10-12日&#xff0c;由广东鸿威国际会展集团有限公司、广州市虚拟现实行业协会主办的2024数字显示与元宇宙生态博览会将正式开幕。 亮点抢先看 虚拟动力 广州虚拟动力作为3D虚拟人全生态应用的产品技术开发与服务商&#xff0c;将携带无穿戴动捕技术、数字人穿戴式动…

【C++】Visual Studio 2019 给 C++ 文件添加头部注释说明

使用代码片段管理器&#xff0c;添加快捷插入代码文件说明 1. 效果 2. header.snippet 新建 header.snippet 文件&#xff0c;存放到某个文件夹 内容&#xff0c;自行更新 快捷名称&#xff0c;修改 Header 里面内容注释内容&#xff0c;修改 Code 里面内容 <?xml ver…

Linux中每当执行‘mount’命令(或其他命令)时,自动激活执行脚本:输入密码,才可以执行mount

要实现这个功能&#xff0c;可以通过创建一个自定义的mount命令的包装器&#xff08;wrapper&#xff09;来完成。这个包装器脚本会首先提示用户输入密码&#xff0c;如果密码正确&#xff0c;则执行实际的mount命令。以下是创建这样一个包装器的步骤&#xff1a; 创建一个名为…

Vue从入门到实战Day01

一、Vue快速上手 1. vue概念 概念&#xff1a;Vue是一个用于 构建用户界面的 渐进式 框架 构建用户界面&#xff1a;基于数据动态渲染页面渐进式&#xff1a;循序渐进的学习框架&#xff1a;一套完整的项目解决方案&#xff0c;提升开发效率 优点&#xff1a;大大提升开发效…

Garden Planner for Mac v3.8.62注册激活版:园林绿化设计软件

Garden Planner for Mac是一款专为苹果Mac OS平台设计的园林景观设计软件。这款软件的主要功能是帮助用户设计梦想中的花园&#xff0c;包括安排植物、树木、建筑物和其他物体。 Garden Planner for Mac提供了一个包含1200多种植物和物体符号的库&#xff0c;这些符号都可以进行…

torch教程

一 基本用法 1 torch.autograd.Function PyTorch 74.自定义操作torch.autograd.Function - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/344802526 虽然pytorch可以自动求导,但是有时候一些操作是不可导的,这时候你需要自定义求导方式。也就是所谓的 "Extending t…