Tansformer原理解读

news2024/11/23 2:01:56

什么是注意力机制

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

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

我们的视觉系统就是一种 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

在这里插入图片描述

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

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

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

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

相关文章

“芯”心相“蜥” 共筑未来!龙蜥社区走进兆芯 MeetUp 圆满结束

4 月 26 日,以“芯”心相“蜥” 共筑未来 为主题的龙蜥社区「走进系列」之走进兆芯 MeetUp 在上海成功召开。来自统信软件、联和东海、众新科技等企业参会代表共聚兆芯,介绍了当前企业产品和技术创新等方面的最新成果,并围绕社区发展建设、行…

【linux】dmesg工具

dmesg介绍 dmesg工具用途: dmesg - print or control the kernel ring buffer kernel ring buffer, 内核环形缓冲区,也叫环形队列,Linux内核日志就存储在一个环形队列中,环形队列满的时候,新的消息会覆盖掉旧的消息。…

如何实现“人岗匹配”?华恒智信人力资源咨询公司这样做

【客户评价 为了合理有效地评价员工,真正实现员工的“人岗匹配”,我公司提出了对公司人员展开人才测评的项目需求。经过对多家咨询公司的仔细挑选,我们最终选择了专业的人力资源咨询公司——华恒智信作为我们的项目合作伙伴。 在项目咨询中&a…

内网穿透使用教程

什么是内网穿透 内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑&#xff0c…

Star15.3k,开源数据可视化分析工具项目

好东西来了,这是一个人人可用的开源数据可视化分析工具项目,V 哥迫不及待的要给大家推荐这个项目,帆软、Tableau 等商业 BI 工具的开源替代,已在 Github 上被 Star了15.3k了,大家一起来了解一下。自己搭建起来可用&…

酷开科技 |酷开系统,给家里多点乐趣~

作为家庭娱乐的核心枢纽,酷开系统致力于为每一个家庭带来更多的乐趣和欢笑。通过其智能化的设计和个性化的服务,酷开系统正在逐渐改变家庭娱乐的方式,让客厅成为家中温馨的娱乐中心。 首先,酷开系统的界面友好而直观,…

【SSL证书】免费单域名SSL证书怎么申请

1、访问证书颁发机构(CA):比如JoySSL、ZeroSSL、各大云平台等,这些机构提供免费的SSL证书申请,并支持单域名证书。在网站上注册账号,并根据提示选择单域名证书进行申请。 !!&#xf…

Foxmail邮箱API发送邮件失败的原因有哪些?

Foxmail邮箱API发送邮件的注意事项?如何用API发信? 在使用Foxmail邮箱API发送邮件时,有时会遇到发送失败的情况。这种情况可能由多种原因造成,下面AokSend就来详细探讨一下Foxmail邮箱API发送邮件失败的可能原因。 Foxmail邮箱A…

nginx--tcp负载均衡

mysql负载均衡 安装mysql yum install -y mariadb-server systemctl start mariadb systemctl enable mariadb ss -ntl创建数据库并授权 MariaDB [(none)]> create database wordpress; Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> grant all privileges o…

使用 Docker 部署 TaleBook 私人书籍管理系统

1)项目介绍 GitHub:https://github.com/talebook/talebook Talebook 是一个简洁但强大的私人书籍管理系统。它基于 Calibre 项目构建,具备书籍管理、在线阅读与推送、用户管理、SSO 登录、从百度/豆瓣拉取书籍信息等功能。 友情提醒&#x…

案例解析 | 金融行业12项个人信息违规场景及合规要点披露!

2024年4月,国家金融监督管理总局重庆监管局、重庆市地方金融管理局、重庆市通信管理局三部门联合印发《关于促进金融服务类App个人信息保护合规经营能力提升的通知》(以下简称《通知》)。此前工信体系从未发布针对金融服务类App的针对性指引文…

Golang | Leetcode Golang题解之第74题搜索二维矩阵

题目&#xff1a; 题解&#xff1a; func searchMatrix(matrix [][]int, target int) bool {m, n : len(matrix), len(matrix[0])i : sort.Search(m*n, func(i int) bool { return matrix[i/n][i%n] > target })return i < m*n && matrix[i/n][i%n] target }

结构方程模型【SEM】:系统发育数据纳入结构方程模型技术

张老师&#xff08;研究员&#xff09;&#xff0c;长期从事R语言结构方程模型、群落生态学、保护生物学、景观生态学和生态模型方面的研究和教学工作&#xff0c;已发表了多篇论文&#xff0c;拥有丰富的科研及实践经验。 对于包含物种信息的数据而言&#xff0c;物种的亲缘关…

基于web的物流管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

全面升级!一套基于Spring Boot 3+JDK17的实战项目!

最近把mall项目升级支持了Spring Boot 3JDK17&#xff0c;今天就来介绍下mall项目做了哪些升级&#xff0c;包括依赖的升级、框架的用法升级以及运行部署的改动&#xff0c;目前Spring Boot 3版本代码在mall项目的dev-v3分支下&#xff0c;希望对大家有所帮助&#xff01; mall…

长难句打卡5.8

If it is trying to upset Google, which relies almost wholly on advertising, it has chosen an indirect method: there is no guarantee that DNT by default will become the norm. 如果它想激怒几乎全靠广告业务运营的谷歌公司的话&#xff0c;那么它选择了一个间接的方…

软件合规 安全可控 | 企业软件合规化管理方案

软件合规&#xff0c;安全可控&#xff0c;这是当下企业运营中不可或缺的两个关键词。随着信息技术的迅猛发展&#xff0c;企业对于软件的需求与日俱增&#xff0c;然而&#xff0c;如何确保软件的合规性和安全性&#xff0c;却成为了摆在企业面前的一大难题。Ping32企业软件合…

[嵌入式系统-69]:RT-Thread-组件:网络组件“组”,RT-Thread系统通向外部网络世界的入口

目录 RT-Thread 提供的网络世界入口 - 网络组件 1. 总概 2. AT 3. Lwip&#xff1a; 轻量级IP协议栈 4. W5500 5. Netdev 6. RT-Thread SAL&#xff08;Socket Abstraction Layer&#xff09;套接字和BSD套接字区别 RT-Thread SAL 套接字接口示例 BSD 套接字接口示例 …

通过 Java 操作 redis -- list 列表基本命令

目录 使用命令 lpush&#xff0c;lrange&#xff0c;rpush 使用命令 lpop 和 rpop 使用命令 blpop&#xff0c;brpop 使用命令 llen 关于 redis list 列表类型的相关命令推荐看Redis - list 列表 要想通过 Java 操作 redis&#xff0c;首先要连接上 redis 服务器&#xff…

深圳比创达电子|EMI一站式解决方案:提升企业电磁兼容性的路径

随着电子技术的快速发展&#xff0c;电磁干扰&#xff08;EMI&#xff09;问题日益凸显&#xff0c;对电子设备的正常运行和性能稳定造成了严重影响。为了有效应对这一挑战&#xff0c;EMI一站式解决方案应运而生&#xff0c;成为众多企业和个人解决EMI问题的首选方案。 一、E…