【变形金刚02】注意机制以及BERT 和 GPT

 

一、说明

        我已经解释了什么是注意力机制,以及与转换器相关的一些重要关键字和块,例如自我注意、查询、键和值以及多头注意力。在这一部分中,我将解释这些注意力块如何帮助创建转换器网络,注意、自我注意、多头注意、蒙面多头注意力、变形金刚、BERT 和 GPT。

二、内容:

  1. RNN 的挑战以及转换器模型如何帮助克服这些挑战(在第 1 部分中介绍)
  2. 注意力机制 — 自我注意、查询、键、值、多头注意(在第 1 部分中介绍)
  3. 变压器网络
  4. GPT 的基础知识(将在第 3 部分中介绍)
  5. BERT的基础知识(将在第3部分中介绍)

三. 变压器网络

        论文 — 注意力就是你所需要的一切 (2017)

图1.The Transformer Network(来源:图片来源于原文)

        图 1 显示了变压器网络。这个网络已经取代了RNN,成为NLP甚至计算机视觉(视觉变压器)的最佳模型。

        网络包含两部分 — 编码器和解码器。

        在机器翻译中,编码器用于对初始句子进行编码,解码器用于生成翻译后的句子。转换器的编码器可以并行处理整个句子,使其比RNN更快,更好 - RNN一次处理句子的一个单词。

3.1 编码器块

图2.变压器网络的编码器部分(来源:图片来自原文)

        编码器网络从输入开始。在这里,整个句子立即被喂食。然后将它们嵌入到“输入嵌入”块中。然后将“位置编码”添加到句子中的每个单词中。这种编码对于理解句子中每个单词的位置至关重要。如果没有位置嵌入,模型会将整个句子视为一个装满单词的袋子,没有任何序列或含义。

详细地:

3.1.1 输入嵌入 

        — 句子中的单词“dog”可以使用嵌入空间来获取向量嵌入。嵌入只是将任何语言中的单词转换为其向量表示。示例如图 3 所示。在嵌入空间中,相似的单词具有相似的嵌入,例如,单词“cat”和单词“kitty”在嵌入空间中会非常接近,而单词“cat”和“emotion”会在空间中落得更远。

图3.输入嵌入(来源:作者创建的图像)

3.1.2 位置编码

        不同句子中的单词可以有不同的含义。例如,单词 dog in a.我养了一只可爱的狗(动物/宠物 - 位置 5)和 b。你真是一条懒狗!(无价值-位置4),有不同的含义。为了帮助进行位置编码。它是一个向量,根据单词在句子中的上下文和位置提供信息。

        在任何句子中,单词一个接一个地出现,具有重要意义。如果句子中的单词混乱,那么句子将没有意义。但是当转换器加载句子时,它不会按顺序加载,而是并行加载它们。由于变压器架构在并行加载时不包括单词的顺序,因此我们必须明确定义单词在句子中的位置。这有助于转换器理解句子中的一个单词在另一个单词之后。这就是位置嵌入派上用场的地方。这是一种定义单词位置的矢量编码。在进入注意力网络之前,此位置嵌入被添加到输入嵌入中。图 4 给出了输入嵌入和位置嵌入的直观理解,然后再将其输入到注意力网络中。

图4.直观理解位置嵌入(来源:作者创建的图像)

        有多种方法可以定义这些位置嵌入。例如,在原始论文《注意力是你所需要的一切》中,作者使用交替的正弦和余弦函数来定义嵌入,如图5所示。

图5.原论文中使用的位置嵌入(来源:原论文图片)

        尽管此嵌入适用于文本数据,但此嵌入不适用于图像数据。因此,可以有多种方式嵌入对象的位置(文本/图像),并且可以在训练过程中固定或学习它们。基本思想是,这种嵌入允许转换器架构理解单词在句子中的位置,而不是通过混淆单词来弄乱含义。

在单词/输入嵌入和位置嵌入完成后,嵌入然后流入编码器最重要的部分,其中包含两个重要块 - “多头注意力”块和“前馈”网络。

3.1.3 多头注意力

        这是魔术发生的主要块。要了解多头注意力,请访问此链接 — 2.4 多头注意力。

        作为输入,该块接收一个包含子向量(句子中的单词)的向量(句子)。然后,多头注意力计算每个位置与矢量其他位置之间的注意力。

图6.缩放点积注意力(来源:图片来自原始论文)

        上图显示了缩放的点积注意力。这与自我注意完全相同,增加了两个块(比例和蒙版)。要详细了解Sef-Attention,请访问此链接 — 2.1 自我关注。

        如图 6 所示,缩放注意力完全相同,只是它在第一个矩阵乘法 (Matmul) 之后增加了一个刻度。

        缩放比例如下所示,

        缩放后的输出将进入遮罩层。这是一个可选层,对机器翻译很有用。

图7.注意力块(来源:作者创建的图像)

        图 7 显示了注意力块的神经网络表示。词嵌入首先传递到一些线性层中。这些线性层没有“偏差”项,因此只不过是矩阵乘法。其中一个层表示为“键”,另一个表示为“查询”,最后一个层表示为“值”。如果在键和查询之间执行矩阵乘法,然后规范化,我们得到权重。然后将这些权重乘以值并相加,得到最终的注意力向量。这个块现在可以在神经网络中使用,被称为注意力块。可以添加多个这样的注意力块以提供更多上下文。最好的部分是,我们可以获得梯度反向传播来更新注意力块(键、查询、值的权重)。

        多头注意力接收多个键、查询和值,通过多个缩放的点积注意力块馈送它,最后连接注意力以给我们一个最终输出。如图 8 所示。

图8.多头注意力(来源:作者创建的图像)

        更简单的解释:主向量(句子)包含子向量(单词)——每个单词都有一个位置嵌入。注意力计算将每个单词视为一个“查询”,并找到一些与句子中其他一些单词对应的“”,然后采用相应“”的凸组合。在多头注意力中,选择多个值、查询和键,以提供多重关注(更好的单词嵌入与上下文)。这些多个注意力被连接起来以给出最终的注意力值(来自所有多个注意力的所有单词的上下文组合),这比使用单个注意力块要好得多。

        在简单的单词,多头注意力的想法是采用一个单词嵌入,将其与其他一些单词嵌入(或多个单词)结合使用注意力(或多个注意力)来为该单词产生更好的嵌入(嵌入周围单词的更多上下文)。

        这个想法是计算每个查询的多个注意力,具有不同的权重。

3.1.4 添加和规范和前馈

        下一个块是“添加和规范”,它接收原始单词嵌入的残差连接,将其添加到多头注意力的嵌入中,然后将其归一化为零均值和方差 1。

        这被馈送到一个“前馈”块,该块的输出端也有一个“添加和规范”块。

        整个多头注意力和前馈块在编码器块中重复n次(超参数)。

3.2 解码器块

图9.变压器网络的解码器部分(Souce:图片来自原始论文)

        编码器的输出又是一系列嵌入,每个位置一个嵌入,其中每个位置嵌入不仅包含原始单词在该位置的嵌入,还包含有关其他单词的信息,这些信息是它使用注意力学习的。

        然后将其馈送到变压器网络的解码器部分,如图9所示。解码器的目的是产生一些输出。在论文《注意力是你所需要的一切》中,这个解码器被用于句子翻译(比如从英语到法语)。因此,编码器将接收英语句子,解码器将其翻译成法语。在其他应用程序中,网络的解码器部分不是必需的,因此我不会过多地阐述它。

        解码器块中的步骤 —

1.在句子翻译中,解码器块接收法语句子(用于英语到法语翻译)。像编码器一样,这里我们添加一个词嵌入和一个位置嵌入,并将其馈送到多头注意力块。

2.自注意力块会为法语句子中的每个单词生成一个注意力向量,以显示句子中一个单词与另一个单词的相关性。

 3.然后将法语句子中的注意力向量与英语句子中的注意力向量进行比较。这是英语到法语单词映射发生的部分。

4.在最后几层中,解码器预测英语单词到最佳可能的法语单词的翻译。

5.整个过程重复多次,以获得整个文本数据的翻译。

用于上述每个步骤的模块如图 10 所示。

图 10.不同解码器块在句子翻译中的作用(来源:作者创建的图像)

解码器中有一个新块 - 蒙面多头注意力。所有其他块,我们之前已经在编码器中看到过。

3.2.1Mask多头注意力

        这是一个多头注意力块,其中某些值被屏蔽。屏蔽值的概率为空或未选中。

        例如,在解码时,输出值应仅取决于以前的输出,而不依赖于未来的输出。然后我们屏蔽未来的输出。

3.3 结果和结论

图 11.结果(来源:原始论文图片)

        在论文中,将英语到德语和英语到法语之间的语言翻译与其他最先进的语言模型进行了比较。BLEU是语言翻译比较中使用的度量。从图 11 中,我们看到大型转换器模型在这两个翻译任务中都获得了更高的BLEU分数。他们还显着改善的是培训成本。

        总之,变压器模型可以降低计算成本,同时仍然获得最先进的结果。

        在这一部分中,我解释了变压器网络的编码器和解码器块,以及如何在语言翻译中使用每个块。在下一部分也是最后一部分(第 3 部分),我将讨论一些最近变得非常有名的重要变压器网络,例如 BERT(来自变压器的双向编码器表示)和 GPT(通用变压器)。

四、引用 

Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (NIPS’17). Curran Associates Inc., Red Hook, NY, USA, 6000–6010.

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

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

相关文章

浅谈Spring与字节码生成技术

概要 今天来谈一谈我们熟知的Spring框架和字节码技术有什么联系。 Java程序员几乎都了解Spring。 它的IoC(依赖反转)和AOP(面向切面编程)功能非常强大、易用。而它背后的字节码生成技术(在运行时,根据需要…

乡村振兴指数与其30余个原始变量数据(2000-2022年)

乡村振兴是当下经济学研究的热点之一,对乡村振兴进行测度,是研究基础。测度乡村振兴水平的学术论文广泛发表在《数量经济技术经济研究》等顶刊上。整理了2000-2022年城市层面的乡村振兴指数与其30余个原始变量数据,供大家使用。 数据来源&…

(docker)mysql镜像拉取-创建容器-容器的使用【个人笔记】

【容器的第一次创建】 容器的第一次创建,需要先下载镜像,从 镜像拉取 0、可以搜索镜像的版本 docker search mysql1、先拉取MySQL的镜像,默认拉取最新版,使用下面的命令拉取mysql镜像 docker pull mysql也可以指定mysql的版本…

微服务06-分布式事务解决方案Seata

1、Seata 概述 Seata事务管理中有三个重要的角色: TC (Transaction Coordinator) - **事务协调者:**维护全局和分支事务的状态,协调全局事务提交或回滚。 TM (Transaction Manager) - **事务管理器:**定义全局事务的范围、开始全局事务、提交或回滚全局事务。 RM (Resourc…

[C初阶笔记]P1

什么是C语言 1、机器语言(二进制)>汇编语言(助记符)>高级语言(C、C等) 2、c语言擅长底层软件开发(操作系统、驱动程序),并不意味着不能开发其他。 C语言更贴近操作…

Android多屏幕支持-Android12

Android多屏幕支持-Android12 1、概览及相关文章2、屏幕窗口配置2.1 配置xml文件2.2 DisplayInfo#uniqueId 屏幕标识2.3 adb查看信息 3、配置文件解析3.1 xml字段读取3.2 简要时序图 4、每屏幕焦点 android12-release 1、概览及相关文章 AOSP > 文档 > 心主题 > 多屏…

Mac M2 Pro安装使用Cocoapods

Mac Pro M2安装使用Cocoapods 在新公司要做iOS开发,所以在新电脑上安装Cocoapods 在升级gem,sudo gem update --system,和安装cocoapods时都遇到如下的提示: ERROR: While executing gem ... (Errno::EPERM)Operation not per…

关于使用pycharm遇到只能使用unittest方式运行,无法直接选择Run

相信大家可能都遇到过这个问题,使用pycharm直接运行脚本的时候,只能选择unittest的方式,能愁死个人 经过几次各种尝试无果之后,博主就放弃死磕了,原谅博主是个菜鸟 后来遇到这样的问题,往往也就直接使用cm…

最新Anaconda安装-保姆级教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多…

Linux源码剖析匿名共享内存shmem原理

如下问题如果都清楚了就不用看本文了: 1. shmem ram文件系统的初始化流程是怎样的 2. shmem思想上想复用基于文件的操作流程,实现上shmem也引入了一个文件,那么类似文件open会生成struct file,shmem的struct file怎么生成的 3.…

5款鲜为人知的国产办公软件,可私有化部署,保障内部数据安全

在企业内部办公环境中,如何保障内部数据安全是一项至关重要的事项。为了应对这个挑战,越来越多的企业选择使用私有化部署的办公软件来确保数据的自主性和安全性。下面我将分享5款鲜为人知的国产办公软件,均支持私有化部署,保障企业…

代理设计模式——静态代理和动态代理

代理模式 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式,在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 意图:为其他对象提…

limereport报表使用

在这里我使用报表是以报表的形式显示数据库的信息。所以首先需要准备的资料有:limereport源码,还有数据库,我这里使用的是qsqlite数据库。 1、下载limereport报表源码 2、运行自带的案例:demo_r1 3、点击 “Run Report Designer”…

PDF文件限制编辑怎么取消?

PDF文件设置了限制编辑,想要取消PDF文件的限制编辑,很简单,打开PDF编辑器,点击工具栏中的文件,选择属性按钮,进入到熟悉感界面之后,点击安全,然后我们点击权限下拉框,选择…

如何使用Spark/Flink等分布式计算引擎做网络入侵检测

如何使用Spark/Flink等分布式计算引擎做网络入侵检测 引言16 Distributed Abnormal Behavior Detection Approach Based on Deep Belief Network and Ensemble SVM Using Spark17 Spark configurations to optimize decision tree classification on UNSW-NB1518 A dynamic spa…

【Pytroch】基于支持向量机算法的数据分类预测(Excel可直接替换数据)

【Pytroch】基于支持向量机算法的数据分类预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 支持向量机(Support Vector Machine,SVM)是一种强大的监…

换架 3D 飞机,继续飞呀飞

相信大多数图扑 HT 用户都曾见过这个飞机的 Demo,在图扑发展的这十年,这个 Demo 是许多学习 HT 用户一定会参考的经典 Demo 之一。 这个 Demo 用简洁的代码生动地展示了 OBJ 模型加载、数据绑定、动画和漫游等功能的实现。许多用户参考这个简单的 Demo 后…

Redis进阶(4)——结合redis.conf配置文件深入理解 Redis两种数据持久化方案:RDB和AOF

目录 引出持久化方案RDBAOF Redis的持久化方案RDB如果采用docker stop关闭如果采用强制关闭 AOF参数设置混编方式的加载让aof进行重写 两种持久化方案的优缺点AOF优缺点RDB优势和劣势 总结 引出 1.Redis数据持久化的两种方式,RDB和AOF; 2.RDB采用二进制存储&#xf…

QT报表Limereport v1.5.35编译及使用

1、编译说明 下载后QT CREATER中打开limereport.pro然后直接编译就可以了。编译后结果如下图: 一次编译可以得到库文件和DEMO执行程序。 2、使用说明 拷贝如下图编译后的lib目录到自己的工程目录中。 release版本的重新命名为librelease. PRO文件中配置 QT …

抖音小程序实现less语言编译样式

1.在抖音开发工具中搜索扩展less 2. 然后点击小齿轮选择扩展设置 3. 然后在扩展设置中选择在settings.json中编辑# 4. 在settings.json中加入以下这段代码即可 // Easy LESS配置"less.compile": {"compress": false,//是否压缩"sourceMap": fal…