【NLP】温和解读:transformer的核心思想

news2024/11/25 5:29:46

变压器模型及其关键组件的概述。

一、介绍

        在这篇博文中,我将讨论本世纪最具革命性的论文“注意力是你所需要的一切”(Vaswani et al.)。首先,我将介绍自我注意机制,然后介绍变形金刚的架构细节。在之前的博客文章《从Seq2Seq到注意力:革命性的序列建模》中,我讨论了注意力机制和Bahdanau注意力的起源。在本博客中,我将以之前的信息为基础。因此,如果您还没有查看上一篇文章,请去查看。Bahdanau注意力模型使用2个RNN和注意力机制为编码器的隐藏状态分配权重。在“注意力是你所需要的一切”论文中,作者已经摆脱了所有的RNN。他们引入了一种新的架构,它不使用递归,而是完全依赖于自我注意机制。让我解释一下什么是自我注意机制:

二、自我注意机制

        自我注意机制使模型能够通过同时关注所有位置来捕获序列中不同位置之间的依赖关系。在上一篇博客中,我们讨论了使用查询和键值对来计算注意力分数。注意力分数决定了每个键值对对给定查询的重要性或相关性。自我注意扩展了这种机制,使其在单个序列内运行,而无需外部输入。

 

        在上图中,您可以看到自我注意机制。让我从左到右解释一下这个数字。首先,我们有一个输入 x。我们将此输入与可训练的权重矩阵(Wq,Wk,Wv)相乘。作为输出,我们得到查询、键和值矩阵。我们使用查询和键矩阵来查找它们的相似性。上图仅取点积,但在变压器架构中我们也对其进行缩放。此点积的输出是注意力权重 (a)。以同样的方式,我们将计算所有输入 x(t) 的注意力权重。计算完所有注意力权重后,将应用 softmax 函数对点积进行归一化,从而生成总和为 1 的注意力权重。从 softmax 运算获得的注意力权重用于计算值向量的加权和。此加权总和表示输入序列中每个位置的自参与表示。自我注意的优势在于它能够对序列中的局部和全局依赖关系进行建模。它从整个序列中捕获上下文信息,从而更全面地了解不同位置之间的关系。

三、缩放点积

        如上一段所述,我们不仅使用点积来查找相关性。但是我们也通过键维数(dk)的平方根的因子来缩放它。这有助于确保查询和键之间的点积对于大型 dk 不会变得太大。如果点积变得太大,则softmax输出将非常小。 为了避免这种情况,我们缩放点积。

四、多头注意力

        多头注意力只是自我注意机制的补充。它允许模型共同关注不同的位置,并同时学习输入序列的多种表示。通过并行执行多组注意力计算,多头注意力捕获了输入序列的不同方面,并增强了模型捕获复杂依赖关系的能力。每个注意力头都有不同的查询、键和值矩阵。

多头注意事项

来自不同注意力头的输出通过线性投影进行组合和转换,从而产生从多个角度整合信息的最终表示。

五、transformer架构

        “注意力就是您所需要的一切”一文中介绍的转换器体系结构由几个关键组件组成,这些组件协同工作以实现有效的序列建模。主要组件是编码器、解码器、位置编码、残差连接、层归一化、多头注意力块、屏蔽多头注意力块和前馈网络。

                                                变压器架构

        我们已经讨论了多头注意力块。蒙面多头注意力与此相同,但有一个变化。我们屏蔽后续序列元素。即,只允许参加当前职位之前和包括当前职位的职位。这是通过将那些的 softmax 值设置为负无穷大来实现的。

        编码器:变压器架构中的左侧部分是编码器部分。它由一个多头注意力块、一个前馈网络、多个残差连接和层归一化组成。它接受输入序列的嵌入以及添加到其中的位置编码。在原始论文中,他们使用了6个编码器。

        解码器:转换器架构中的正确部分是解码器部分。它由一个屏蔽的多头注意力块、一个简单的多头注意力块、一个前馈网络以及多个残差连接和层归一化组成。它接受输出序列的嵌入以及添加到其中的位置编码。在原始论文中,他们使用了6个解码器。

        残差连接和层规范化: 残差连接(也称为跳过连接)是绕过神经网络中的一个或多个层的直接连接。在转换器架构的上下文中,残差连接用于将子层的输出连接到其输入,允许原始输入流过层不变层归一化是一种用于规范化神经网络层内的激活的技术。它旨在通过减少内部协变量偏移来提高训练稳定性和泛化,内部协变量偏移是指网络学习时激活分布的变化。层归一化独立应用于每个神经元或特征,在小批量维度上规范化其值。

        前馈网络:在变压器架构中,前馈网络是一个组件,它在每个位置上独立运行,并且在每层内以相同方式运行。它负责转换自注意机制和位置前馈子层中输入序列的表示。在第一次变换之后,使用Relu激活函数将两个线性变换应用于自注意力机制的输出。

        位置编码: 输入和输出序列的嵌入与位置编码连接。这些编码注入有关序列中元素的相对位置的信息。

用于位置编码的正弦和余弦函数

学习的位置嵌入和通过正弦和余弦函数嵌入在语言任务中产生几乎相等的结果。

我将在另一篇博客文章中介绍评估指标、训练方法、推理时的解码方法和其他次要细节,其中我将从头开始实现 Transformer 架构。

六、结语

        总之,“注意力是你所需要的一切”论文介绍了一种称为变压器的开创性架构,它彻底改变了序列建模领域。这种架构在很大程度上依赖于自我注意的概念,允许它捕获输入序列中不同位置之间的依赖关系。Transformer的注意力机制使其能够对长期依赖关系进行建模,处理可变长度的输入,并在各种自然语言处理任务中实现最先进的性能。本文中介绍的体系结构已被许多语言模型使用,我将在以后的博客中讨论这些模型。在下一篇博文中,我将详细介绍自回归模型,如 GPT、GPT-2 和 GPT-3。

感谢您的阅读!

参考和引用

  1. 关注就是你所需要的一切
  2. 深入了解深度学习
  3. 图解变压器
  4. 旁白转换器语言模型
  5. 用于序列间建模的 RNN 和转换器
  6. 层归一化
  7. 深度残差学习

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

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

相关文章

【数据分析 最火 全集干货】Anaconda的安装及使用

关于我的专栏: 接下来会有许多关于“数据分析”的文章哦,记得看哦!!! Python最详细最全面基础合集_adaptation_T_C的博客-CSDN博客 有兴趣,需要 的小伙伴可以免费订阅哦!!&#x…

阿里 P8 架构师 20 年经验!总结成微服务设计企业架构转型之道

前言 本文涉及两个方面的知识体系,即企业架构知识体系和软件架构知识体系。 企业架构和软件架构虽然都与 IT 相关,但其知识体系是完全不同的两个领域。一般而言,搞企业架构的人士不明白软件架构的细节和实现,而从事软件架构的架…

如何恢复损坏/删除的 Word 文件

有关如何修复不可读的 Microsoft Word 文件或 Rich Text 文件中的文本的分步说明。这些说明有助于从损坏的*.doc、*.docx、*.dot、*.dotx、*.rtf文件(任何版本和大小)中提取文本,只需单击几下: 从此处下载奇客数据恢复 &#xff…

React AntDesign写一个导出数据的提示语 上面有跳转的路径,或者点击知道了,关闭该弹层

效果如下: 代码如下: ForwardDataCenterModal(_blank);export const ForwardDataCenterModal (target?: string) > {let contentBefore React.createElement(span, null, 数据正在处理中,请稍后前往);let contentAfter React.creat…

【如何训练一个中译英翻译器】LSTM机器翻译模型训练与保存(二)

系列文章 【如何训练一个中译英翻译器】LSTM机器翻译seq2seq字符编码(一) 目录 系列文章1、加载训练集2、训练集数据处理3、网络搭建4、启动训练5、模型保存6、模型加载与推理 基于LSTM训练一个翻译器,要怎么做呢?其实很简单&am…

大厂案例 - 实时分析引擎

文章目录 概述内容收获思路建议 概述 网络安全态势越来越复杂,传统的基于单点的防护和攻击检测系统在应对现代网络攻击方面有着很大的局限性。 基于大数据平台,通过流式实时分析技术可以对全局网络空间进行实时的分析和异常检测,解决单点很…

2023年7月杭州/武汉/深圳制造业产品经理NPDP认证招生

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…

独立开发者必备的29个开源React后台管理模板

React Web应用程序开发管理后台可能非常耗时,这和设计所有前端页面一样重要。 以下是收集的近几年顶级React.js管理模板列表。 这些模板确实很有价值,使开发人员更容易构建应用程序后端的用户界面。 此外,它们将帮助您完善网站的管理后台&…

Clion开发STM32之W5500系列(综合实验)

说明 此为w5500模块的综合实验测试模块,包含dhcp、dns、ntp以上三个模块的驱动参考之前的文章,本篇不做说明.使用的开发芯片 stm32f103vet6系列,外设接口使用的spi2 实验内容: 通过dhcp动态获取ip,通过dns解析NTP服务域名的ip通过NTP服务ip获取时间 w5500配置驱…

【oracle数据库】单行函数

Oracle数据库中的单行函数 1.字符函数2.数值函数3.转换函数4.判空函数5.条件取值 1.字符函数 --length()求字符串长度 select length(aslkd) from dual --substr(,起始点,截取长度) 起始点从1开始 截取字符串 select substr(asd,2,2) from dual --concat(,)字符串拼接 sele…

两个小封装电机驱动芯片:MLX813XX、A4950

一.MLX813XX MELEXIS的微型电机驱动MLX813XX系列芯片集成MCU、预驱动以及功率模块等能够满足10W以下的电机驱动。 相对于普通分离器件的解决方案,MLX813XX系列电机驱动芯片是一款高集成度的驱动控制芯片,可以满足汽车系统高品质和低成本的要…

[答疑]岛上没人穿鞋,卖鞋的愿景是什么

DDD领域驱动设计批评文集 欢迎加入“软件方法建模师”群 《软件方法》各章合集 Kris 2023-7-6 19:55 上次给我们批作业您举了个例子,说卖鞋给岛上没人穿鞋,觉得您的解读很新颖,不过当时没听太明白,翻您的书貌似没有这个内容。…

分布式存储在云环境下的应用和部署

随着互联网数据规模越来越大,并发请求越来越高,传统的关系数据库系统在性能、价格、可扩展性方面已经不能很好地满足需求。谷歌、亚马逊等互联公司率先在后台基础设施中引入超大规模分布式存储系统,用来解决海量数据的存储问题。与传统的集中…

自动化测试如何做?自动化测试疑难问题+解答,进阶高级测试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 你们的自动化&…

QT的内存回收机制

QT的内存回收机制 QT中内存回收的本质 Qt中有内存回收机制, 但是不是所有被new出的对象被自动回收, 满足条件才可以回收 如果想要在Qt中实现内存的自动回收, 需要满足以下两个条件: 创建的对象必须是QObject类的子类(间接子类也可以)创建出的类对象, 必须要指定其父对象是谁,…

利用RLHF优化大模型:提升性能与应用能力

在数据科学不断发展的过程中,大模型在自然语言处理、图像识别、金融预测等各个领域的应用越来越广泛。然而,大模型的训练和优化也面临着越来越多的挑战,例如数据量过大、计算资源不足、超参数调整困难等。传统的机器学习算法往往难以处理这些…

(学习笔记-IP)IP基础知识

基本认识 IP在TCP/IP参考模型中处于第三层,也就是网络层。 网络层的主要作用是:实现主机与主机之间的通信,也叫点对点的通信。 网络层与数据链路层的关系: MAC的作用是实现直连的两个设备之间通信,而IP负责没有直连的…

dbeaver下载及安装

dbeaver下载及安装 dbeaver下载安装执行 【近期收到公司通知,需要卸载navicat,找其他免费开源数据库管理工具】 dbeaver下载 地址: https://dbeaver.io/download/迅雷下载会快很多 安装 一步一步安装就行了: 启动 执行

IDE /完整分析C4819编译错误的本质原因

文章目录 概述基本概念代码页标识符字符集和字符编码方案源字符集和执行字符集 编译器使用的字符集VS字符集配置 有何作用编译器 - 源字符集编译器 -执行字符集 Qt Creator下配置MSVC编译器参数动态库DLL字符集配置不同于可执行程序EXE总结 概述 本文将从根本原因上来分析和解…

安全是最珍贵的 ,不要让自己的自己的秘密成为“梨润”的来源!!!

近日,某高校毕业生在校期间窃取学校内网数据,收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注。在大数据时代,算法分发带来了隐私侵犯,在享受消费生活等便捷权利的同时,似乎又有不…