Transformer and Pretrain Language Models3-1

content

  • transformer

attention mechanism

transformer structure​​​​​​​

  • pretrained language models

language modeling

pre-trained langue models(PLMs)

fine-tuning approaches

PLMs after BERT

applications of masked LM

frontiers of PLMs

  • transformers tutorial(学术界和工业界运用广泛的开源包)

introduction

frequentli-used APIs

quick start

demo


attention mechanism注意力机制

以下是一个运用RNN模型来解决机器翻译问题的一个具体例子,这个模型中存在一个非常重要的问题,即信息瓶颈的问题

Q: 什么是信息瓶颈问题

我们可以看到,需要从decoder端最后表示的向量来输出一个完整的正确的句子,那么这样就要求encoder端得到的最后一个向量表示,需要包含他输入句子的所有信息。

但是就这样一个向量,真的能够足够表达所有句子中包含的多种多样的信息吗,这个答案显然是否定的,研究人员也确实发现,这样一个向量的容量,会显著地限制模型encoder端的一个表示。

其实,在encoder端每一个位置的隐向量,都包含有丰富的信息,而最后这个向量其实就是整个encoder和decoder模型之间的一个信息瓶颈

之后要学习的注意力机制,就是为了解决这样一个问题而提出的

注意力机制的核心思想,就是通过在decoder的每一步,都把encoder端所有的向量提供给decoder模型,这样decoder根据自己当前的状态,来自动选择需要使用的信息和向量,来实现信息瓶颈的这样一个环节

以下是一个具体的例子:

在这个图中,我们用蓝色表示encoder,用绿色表示decoder

encoder端得到的每一个隐向量,分别用h1到h7来表示;在decoder端它得到的第一个向量用s1来表示

与之前RNN模型不同的是,我们不用这个s1来直接计算这一步生成的单词的概率,而是利用s1来选择关注输入句子中的哪些部分,并计算得到一个新的隐向量,来得到生成单词的概率。

那么这样的一个decoder端如何根据s1来对encoder端的向量进行选择呢,我们首先需要计算一个叫做注意力分数的东西,这里我们将s1与h1进行点积,就可以得到一个标量,我们称它为e11

按此方法依次重复,我们就可以得到一个长度为7的向量,其中每个元素都是s1和对应位置的隐向量点积得到,我们将这样一个长度为7的向量称为encoder端隐向量的一个注意力分数,这个分数就表示了s1与每一个encoder端隐向量hi的一个相似程度,值越高,就表示s1与对应的隐向量相似程度越高

有了这个长度为7的注意力分数,我们需要把它变为一个概率分布,这里就需要用到softmax函数,这个函数会把e1中的每一个值变为从0到1之间的值,并且求和为1,这其实就可以看作是一个概率分布,而且之前e1中值越高的位置,对应在这个概率分布中,它也就会越大,并且越接近于1,表明decoder端将会更加关注这些位置的向量,我们可以看到在当前这个例子中,前两个位置的这个概率分布的值是比较高的,也说明这一步的生成会更加关注前两个位置的隐向量

随后,在第三步,我们利用前面得到的这样一个注意力分布,对encoder端的隐向量,进行一个加权的求和,然后就可以得到一个与隐向量维度相同的输出向量o1,这个向量也包含了decoder端当前所需要的encoder端的所有信息

这样,我们最后将o1与RNN得到的隐向量s1进行一个拼接,我们就可以得到一个新的表示,来表示decoder端这一步的一个状态,用这样一个向量来预测下一步需要生成的单词。

在这个例子中,我们得到many这个词,可以看到many其实它也就对应这个输入中的多个这样一个含义,这个也可以从我们这个注意力分布的高低,可以看到它的这样一个对应关系

随后,和正常的RNN流程一样,我们将many输入到decoder端,就可以得到它的下一个表示s2,并且重复刚才的过程,我们就可以得到这一步需要输出的一个单词,而这里我们可以看到,模型输出了airports这个单词,而且他的注意力分布也是更加关注输入中的机场这个词,也是一个相互对应的关系

这样的步骤不断重复,我们对于decoder端的每一步,就可以自主的关注到decoder不同位置的隐向量,然后预测出一个新的单词,最后就可以得到一整个输出句子,完成整个模型的一个输出

这个就是在之前RNN模型中加入了attention机制的一个效果

下面我们对这样的一个注意力机制,进行一个形式化的总结:

以encoder端得到n个隐向量h1~hn

decoder端的每一步,都可以得到一个向量st,这是通过RNN得到的表示当前状态的一个隐向量

我们将st与前面的每个hi进行点积,就可以得到一个注意力分数,它的长度其实和encoder端的向量的数量是一样的

然后通过一个softmax函数,就可以将之前的一个标量变为一个0到1之间的一个概率分布

有了这样的一个概率分布之后,我们就可以对encoder端的向量进行一个加权平均,进而可以得到一个输出向量ot

最后通过将ot和st进行一个拼接,我们就可以得到最终用来预测生成单词的向量

这就是前面在端到端这样的模型中加入attention机制后的一个形式化表示,而attention的过程就是这个不断动态选择hi的一个过程

我们可以对前面那个attention的一个计算过程进行一个更加抽象的定义,这里我们给定一个query向量和一系列value向量,也就是对应我们之前提到的decoder端的向量和encoder端的向量,而注意力机制本质上就是通过一个query向量,对一个valye向量的集合进行加权平均,它是一个动态选择的过程,同时value向量的数量是可以任意的一个数值,最终我们都可以通过一个attention机制得到一个综合了所有value向量信息的表示,而且它具有一个固定的维度和这个value向量的维度是一致的

我们进行一个数学归纳:同样我们这里用h1~hn表示n个value向量以及一个query向量s,attention的机制首先它通过s和每个hi的一个交互,我们可以得到一个注意力分数,也就是这里的e,,这样的一个注意力分数,它的维度其实和value向量的数量是一样的,是属于rn的,然后就这样一个分数计算softmax,得到一个概率分布,通过此概率分布对前面所有的这个value向量进行一个加权平均,也就得到了这个attention的一个输出

关于如何计算注意力分数e,其实有很多种变体,前面的点积是一种非常常用的方式,在3-2中将介绍几种其他的一些变体

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

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

相关文章

RocketMQ的一万字全面总结,带你快速入门消息队列

前言 近日偶然聊起消息队列,发现知识模糊又破碎,遂广泛查询资料,做了这么一篇非常浅显的总结,聊以充作入门参考资料吧。 下面几个问题,如果不能回答地很好,可以试着在文中找寻一下答案。(答案…

时间序列大模型:TimeGPT

论文:https://arxiv.org/pdf/2310.03589.pdf TimeGPT,这是第一个用于时间序列的基础模型,能够为训练期间未见过的多样化数据集生成准确的预测。 大规模时间序列模型通过利用当代深度学习进步的能力,使精确预测和减少不确定性成为…

VSCode 更换默认的 terminal(终端)

Win10 中 VSCode 默认的 terminal 为 PowerShell, 想要更换为 Git bash。 1. 按快捷键:Ctrl Shift P 2. 搜索:“erminal: Select Default Profile” 3. 你会看到可选的终端列表,然后选择 Git Bash

3.Eureka注册中心

3.Eureka注册中心 假如我们的服务提供者user-service部署了多个实例,如图: 大家思考几个问题: order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和端口?有多个user-service实例地址&#xff0…

JVM对象创建与内存回收机制

对象的创建过程有如下步骤: 1.类加载检查: 虚拟机遇到一个new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过,如果没…

长城资产信息技术岗24届校招面试面经

本文介绍2024届秋招中,中国长城资产管理股份有限公司的信息技术岗岗位一面的面试基本情况、提问问题等。 10月投递了中国长城资产管理股份有限公司的信息技术岗岗位,所在部门为长城新盛信托有限责任公司。目前完成了一面,在这里记录一下一面经…

函数递归(Recursion)一篇便懂

递归的概念 在 C 语言中,递归(Recursion)是一种函数调用自身的编程技术。当一个函数在其定义中调用自身时,就称为递归函数。 了解递归思想 把⼀个大型复杂问题层层转化为⼀个与原问题相似,但规模较小的子问题来求解…

3.chrony服务器

目录 1. 简介 1.1. 重要性 1.2. Linux的两个时钟 1.3. 设置日期时间 1.3.1. timedatectl命令设置 1.3.2. date命令设置 1.4. NTP 1.5. Chrony介绍 2. 安装与配置 2.1. 安装: 2.2. Chrony配置文件分析 2.3. 同步时间服务器 2.3.1. 授时中心 2.3.2. 实验…

制造业中的数据治理

随着信息技术的飞速发展,数据已经成为现代制造业的核心资产。数据治理作为确保数据质量、安全性、可靠性和一致性的关键过程,对于提高生产效率和质量控制具有不可忽视的影响。本文将深入探讨制造业中数据治理的重要性、挑战和实践,以揭示其对…

HCIP:不同VLAN下实现网络互相通信

配置pc1 配置pc2 配置pc3 将sw1划分到vlan3 将sw3划分到vlan3 在sw1上进行缺省 将sw1上(g0/0/1)的untagged改成 1 3 则在pc1上ping pc2可通 在sw1上进行缺省 在sw3上(e0/0/1)打标记 则在pc1上ping pc3可通(实现互通&am…

新特性Record最全用法总结---动力节点总结

目录 0、有用的新特性 一、Record 1.1、Record的介绍: 1.2、Record的声明: 1.3、Record的创建: 1.4、Record使用举例: 1.5、Record-实例方法、静态方法 1.6、Record-三类构造方法 1.6.1、紧凑型构造、定制构造方法&#…

服务器的组成

服务器的重要结构组成 家用电脑组成: CPU、主板、内存条、显卡、硬盘、电源、风扇、网卡、显示器、机箱、键盘鼠标等等。 CPU CPU是电脑的大脑, CPU发展史: 32 位CPU:最大的内存寻址地址2^32,大约4G的大小。 CP…

爬虫进阶之selenium模拟浏览器

爬虫进阶之selenium模拟浏览器 简介环境配置1、建议先安装conda2、创建虚拟环境并安装对应的包3、下载对应的谷歌驱动以及与驱动对应的浏览器 代码setting.py配置scrapy脚本参考中间件middlewares.py 附录:selenium教程 简介 Selenium是一个用于自动化浏览器操作的…

CSS 楼梯弹弹球

<template><view class="loader"></view> </template><script></script><style>body {background-color: #212121;/* 设置背景颜色为 #212121 */}.loader {position: relative;/* 设置定位为相对定位 */width: 120px;/* 设…

38-WEB漏洞-反序列化之PHPJAVA全解(下)

WEB漏洞-反序列化之PHP&JAVA全解&#xff08;下&#xff09; 一、Java中API实现二、序列化理解三、案例演示3.1、本地3.2、Java 反序列化及命令执行代码测试3.3、WebGoat_Javaweb 靶场反序列化测试3.4、2020-网鼎杯-朱雀组-Web-think_java 真题复现 四、涉及资源 一、Java中…

springboot118共享汽车管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的共享汽车管理系统 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获…

『论文阅读|2024 WACV 多目标跟踪Deep-EloU|纯中文版』

论文题目&#xff1a; Iterative Scale-Up ExpansionIoU and Deep Features Association for Multi-Object Tracking in Sports 论文特点&#xff1a; 作者提出了一种迭代扩展的 ExpansionIoU 和深度特征关联方法Deep-EIoU&#xff0c;用于体育场景中的多目标跟踪&#xff0c;旨…

基于springboot家政服务管理平台源码和论文

随着家政服务行业的不断发展&#xff0c;家政服务在现实生活中的使用和普及&#xff0c;家政服务行业成为近年内出现的一个新行业&#xff0c;并且能够成为大众广为认可和接受的行为和选择。设计家政服务管理平台的目的就是借助计算机让复杂的销售操作变简单&#xff0c;变高效…

深圳 福田区 建筑模型 su rhino

深圳 福田区 建筑模型 su rhino 只有福田区的&#xff0c;其他区的没有&#xff0c;其他市的没有 模型有skp&#xff0c;obj格式 模型如图 部分数据&#xff1a;

常用电子器件学习——三极管

三极管介绍 三极管&#xff0c;全称应为半导体三极管&#xff0c;也称双极型晶体管、晶体三极管&#xff0c;是一种电流控制电流的半导体器件其作用是把微弱信号放大成幅度值较大的电信号&#xff0c; 也用作无触点开关。晶体三极管&#xff0c;是半导体基本元器件之一&#xf…