学习人工智能:Attention Is All You Need-1-介绍;Transformer模型架构;编码器,解码器

Transformer模型是目前最成功的chatGPT,Sora,文心一言,LLama,Grok的基础模型。

《Attention Is All You Need》是一篇由Google DeepMind团队在2017年发表的论文,该论文提出了一种新的神经网络模型,即Transformer模型,该模型主要用于自然语言处理任务。

Transformer模型的创新点在于其使用了自注意力机制(self-attention mechanism)来取代传统的循环神经网络(RNN)和卷积神经网络(CNN)等结构。这使得模型在处理序列数据时具有更好的并行性和可扩展性,同时能够捕捉序列中各个位置之间的相对关系,进而更好地对序列进行建模。具体来说,自注意力机制允许模型同时计算输入序列中所有位置之间的关系权重,进而加权得到每个位置的特征表示。在Transformer模型中,自注意力机制被运用在了Encoder和Decoder两个部分中,分别用于编码输入序列和生成输出序列。

Transformer架构包含多层堆叠的编码器和解码器,其中编码/解码器内部包含了多头注意力机制(multi-head attention)、层级归一(layer norm)和残差结构(residual)。这种设计使得Transformer模型能够高效地处理序列数据,并且在机器翻译等序列转换任务中取得了优异的性能。此外,Transformer模型还具有广泛的应用前景,例如语音识别、图像处理和自然语言生成等任务。

Attention is all you needicon-default.png?t=N7T8https://arxiv.org/abs/1706.03762

论文摘要Abstract

目前主流的序列转换模型主要基于复杂的循环或卷积神经网络,其中包括编码器和解码器。表现最佳的模型还通过注意力机制连接编码器和解码器。我们提出了一种全新的简单网络架构——Transformer,该架构完全基于注意力机制,完全摒弃了循环和卷积。在两个机器翻译任务上的实验表明,这些模型不仅质量上乘,而且更易于并行化,所需的训练时间也大大减少。在WMT 2014英语至德语翻译任务中,我们的模型取得了28.4的BLEU评分,超过了现有最佳结果(包括模型集成)超过2个BLEU评分。在WMT 2014英语至法语翻译任务中,我们的模型在八个GPU上训练3.5天后建立了新的单一模型最高BLEU评分41.0,这仅仅是文献中最佳模型训练成本的一小部分。

1,介绍Introduction

循环神经网络,特别是长短时记忆网络(LSTM)和门控循环单元(GRU),已牢固确立为序列建模和转导问题(如语言建模和机器翻译)中的最先进方法。从那时起,人们付出了大量努力来不断推动循环语言模型和编码器-解码器架构的边界。

同等贡献。名单顺序是随机的。雅各布(Jakob)提出了用自注意力机制替换循环神经网络(RNNs)的想法,并开始着手评估这一想法。阿什什(Ashish)与伊利亚(Illia)一起设计和实现了第一个Transformer模型,并在这项工作的各个方面都发挥了至关重要的作用。诺姆(Noam)提出了缩放点积注意力、多头注意力和无参数位置表示,并成为了几乎参与每一项细节的另一个人。尼基(Niki)在我们的原始代码库和tensor2tensor中设计、实现、调优和评估了无数模型变体。利昂(Llion)也尝试了新颖的模型变体,负责我们最初的代码库,以及高效的推理和可视化。卢卡斯(Lukasz)和艾丹(Aidan)花费了无数漫长的时间设计和实现tensor2tensor的各部分,替换了我们早期的代码库,大大提高了结果,并极大地加速了我们的研究。

循环模型通常将计算分解为输入和输出序列中符号位置的因素。通过将位置与计算时间步骤对齐,它们会生成一个隐藏状态序列ht,这是前一个隐藏状态ht-1和位置t的输入的函数。这种固有的序列性质排除了训练示例内的并行化,这在序列长度较长时变得至关重要,因为内存限制会限制跨示例的批处理。最近的工作通过分解技巧[18]和条件计算[26]显著提高了计算效率,同时也在后者的情况下提高了模型性能。然而,顺序计算的基本约束仍然存在。
在各种任务中,注意力机制已成为引人注目的序列建模和转导模型不可或缺的一部分,它允许建模依赖关系,而不考虑输入或输出序列中的距离[2,16]。然而,除了少数情况[22]外,这种注意力机制都是与循环网络结合使用的。
在这项工作中,我们提出了Transformer,这是一种模型架构,它摒弃了循环,而是完全依赖注意力机制来绘制输入和输出之间的全局依赖关系。Transformer允许进行更多的并行化,并在八个P100 GPU上仅训练十二个小时后就能达到翻译质量的新水平。

2,背景Background

减少顺序计算的目标也构成了扩展神经GPU(Extended Neural GPU)[20]、ByteNet[15]和ConvS2S[8]的基础,它们都使用卷积神经网络作为基本构建块,为所有输入和输出位置并行计算隐藏表示。在这些模型中,将两个任意输入或输出位置的信号关联起来所需的操作数量随着位置之间的距离而增长,对于ConvS2S是线性增长,对于ByteNet是对数增长。这使得学习远距离位置之间的依赖关系变得更加困难。在Transformer中,这被减少到固定数量的操作,尽管由于平均了注意力加权的位置而降低了有效分辨率,但我们通过第3.2节描述的多头注意力来抵消这一影响。


自注意力,有时称为内部注意力,是一种注意力机制,用于关联单个序列中不同位置,以计算序列的表示。自注意力已成功用于各种任务,包括阅读理解、抽象摘要、文本蕴含和学习任务无关的句子表示。


端到端记忆网络基于循环注意力机制,而不是序列对齐的循环,并已被证明在简单语言问答和语言建模任务上表现良好。


然而,据我们所知,Transformer是第一个完全依赖自注意力来计算其输入和输出的表示,而不使用序列对齐的RNN或卷积的转导模型。在以下部分中,我们将描述Transformer,解释自注意力的动机,并讨论其相对于其他模型的优势。

3,模型架构Model Architecture

大多数具有竞争力的神经序列转导模型都具有编码器-解码器结构[5,2,29]。在这里,编码器将符号表示(x1,...,xn)的输入序列映射为连续表示(z1,...,zn)的序列。给定z,解码器则逐个元素地生成符号的输出序列(y1,...,ym)。在每个步骤中,模型都是自回归的[9],在生成下一个符号时,将先前生成的符号作为额外输入。

Transformer遵循这种总体架构,对编码器和解码器都使用了堆叠的自注意力和逐点全连接层,分别如图1的左半部分和右半部分所示。

3.1 编码器和解码器堆叠Encoder and Decoder Stacks ​​​​​​​

编码器:编码器由N=6个相同的层堆叠而成。每个层都有两个子层。第一个是多头自注意力机制,第二个是简单的、位置敏感的全连接前馈网络。我们在每个子层周围都使用了残差连接[10],然后是层归一化[1]。也就是说,每个子层的输出是LayerNorm(x + Sublayer(x)),其中Sublayer(x)是子层本身实现的函数。为了便于这些残差连接,模型中的所有子层以及嵌入层都产生维度为dmodel=512的输出。

解码器:解码器也是由N=6个相同的层堆叠而成。除了每个编码器层中的两个子层外,解码器还插入了第三个子层,该子层对编码器堆叠的输出执行多头注意力。与编码器类似,我们在每个子层周围使用残差连接,然后进行层归一化。我们还修改了解码器堆叠中的自注意力子层,以防止位置关注到后续位置。这种掩蔽操作,结合输出嵌入位置偏移一个位置的事实,确保了位置i的预测只能依赖于位置小于i的已知输出。

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

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

相关文章

极兔速递邀您参观2024长三角快递物流供应链与技术装备展览会

2024长三角快递物流供应链与技术装备展览会(杭州) 2024年7月8-10日 | 杭州国际博览中心 参展企业介绍 J&T极兔速递是一家全球综合物流服务运营商,快递业务在全球规模最大及增长最快的东南亚和中国市场处于领先地位。公司创立于2015年&a…

部署静态网页②

前言: 前两天写了篇部署个人静态网页的文章:建立部署个人静态网站,有朋友指出了很多问题,然后这篇文章的目的主要是说一下ssl证书的申请,还有推荐介绍另一种部署的方式,还有解决在edge打开域名被警告的情况…

【绘•分享】翻翻书里寻智慧:小布去动物园

part 1 《小布去动物园》是英国著名童书作家罗德坎贝尔创作,收录于广受欢迎的“小布启蒙成长翻翻书”系列。这本书以幼儿为阅读对象,精心设计以促进孩子全面成长。它不仅是一本视觉欣赏的书,更是一本触摸感知书,带领孩子们探索…

实时移动物体检测项目实战代码

往期热门博客项目回顾: 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 正文开始! 实时…

Linux: 线程安全

Linux 线程共享了进程的资源(地址空间, 页表等), 多个线程同时访问同一个资源就可能产生问题:数据竞争 临界资源: 多个线程共享的资源临界区: 访问临界资源的区域互斥: 任何时刻, 只有一个执行流能进入临界区同步: 以一定顺序访问临界资源原子性: 要么完成, 玩么未完成 锁 死…

什么快递可以寄摩托车?看你要啥样的了

一辆49cc的二冲程摩托车仅需561元。 购买125的组装车不会超过1元,购买250品牌发动机的组装车不会超过4000元。 购买一辆名牌摩托车大约需要4000到10000元。 花一万到两百万多就能买到一辆像样、动力强劲、能玩的炫酷摩托车。 哈哈,就看你想要什么了&…

20240309web前端_第二周作业_完成游戏导航栏

作业&#xff1a;游戏导航栏 成果展示&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0…

杭州克鲁斯机器人控制信号线缆故障维修攻略,快来了解一下!

克鲁斯机器人作为工业自动化的重要组成部分&#xff0c;其稳定运行对于生产效率至关重要。克鲁斯机器人控制信号线缆作为机器人与外部控制设备之间的桥梁&#xff0c;承担着传输指令和反馈信号的重要任务。 一、克鲁斯机器人控制信号线缆故障识别与诊断 故障现象&#xff1a;当…

Godot 学习笔记(4):一切以场景为中心

文章目录 前言场景搭建新建子场景最简单的按钮事件 手动控制场景手动加载场景添加多个场景对象更快速的获取脚本对象 删除多个场景对象脚本命名的问题 总结 前言 Godot的场景是C#与Godot最后的中间连接。我们解决了场景的加载&#xff0c;我们基本可以保证C#和godot之间的彻底…

JVM的知识

什么是JVM 1.JVM&#xff1a; JVM其实就是运行在 操作系统之上的一个特殊的软件。 2.JVM的内部结构&#xff1a; &#xff08;1&#xff09;因为栈会将执行的程序弹出栈。 &#xff08;2&#xff09;垃圾99%的都是在堆和方法区中产生的。 类加载器&#xff1a;加载class文件。…

处理 input type=‘hidden‘ 的事件触发

前言 在公司的 MES 系统&#xff08;摩尔元数N2&#xff09;做二次开发页面。某个字段在表单模型中配置为 弹出窗口 后、页面的对应字段样式自动转为 <input type"hidden"> &#xff0c;从而导致不能使用常规的 blur 、keydown 事件触发关联操作。下面是解决思…

【力扣刷题日记】603.连续空余座位

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 603.连续空余座位 表&#xff1a;Cinema 列名类型seat_idintfreebool Seat_id 是该表的自动递增主键列。 在…

【RabbitMQ | 第一篇】消息队列基础知识

文章目录 1.消息队列基础知识1.1什么是消息队列&#xff1f;1.2消息队列有什么用&#xff1f;&#xff08;结合项目说&#xff09;1.2.1异步处理1.2.2削峰/限流1.2.3降低系统耦合性1.2.4实现分布式事务 1.3消息队列的缺点1.4JMS和AMQP1.4.1 JMS的两种消息模型&#xff08;1&…

高效备考2024年AMC10:吃透2000-2023年1250道真题(限时免费送)

我们今天继续来随机看5道AMC10真题&#xff0c;以及详细解析&#xff0c;这些题目来自1250道完整的官方历年AMC10真题库。通过系统研究和吃透AMC10的历年真题&#xff0c;参加AMC10的竞赛就能拿到好名次。即使不参加AMC10竞赛&#xff0c;掌握了这些知识和解题思路后初中和高中…

#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行

3 月 19 日&#xff0c;#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行。 现场&#xff0c;深圳市南山区人民政府副区长李志娜发布《2024 年南山区支持鸿蒙原生应用发展首批政策措施清单》&#xff0c;从加强鸿蒙原生应用供给能力、推动鸿蒙原生应用产业集聚、完善鸿蒙原生…

扩容分区和文件系统(Linux)

在ECS控制台上扩容云盘容量后&#xff0c;对应分区和文件系统并未扩容&#xff0c;您还需要进入ECS实例内部继续扩容云盘的分区和文件系统&#xff0c;将扩容部分的容量划分至已有分区及文件系统内&#xff0c;使云盘扩容生效。本文为您介绍如何通过两个步骤完成Linux实例云盘的…

API 接口渗透测试

1 API 接口介绍 1.1 RPC&#xff08;远程过程调用&#xff09; 远程过程调用&#xff08;英语&#xff1a;Remote Procedure Call&#xff0c;缩写为 RPC&#xff09;是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序&#xff0c;而程序员无…

JavaScript高级(十三)---ES6中Set,map

ES6 Set 在ES6之前&#xff0c;我们存储数据的结构主要有两种&#xff1a;数组、对象。 在ES6中新增了另外两种数据结构&#xff1a;Set、Map&#xff0c;以及它们的另外形式WeakSet、WeakMap。 Set是一个新增的数据结构&#xff0c;可以用来保存数据&#xff0c;类似于数组&a…

应用APM-如何配置Prometheus + Grafana监控springboot应用

文章目录 概述在Spring Boot应用中集成Micrometerspringboot配置修改 Docker安装Prometheus和Grafanaprometheus配置grafana配置启动Prometheus和Grafana在Grafana中配置数据源创建Grafana仪表盘配置Grafana告警&#xff08;可选&#xff09;监控和分析 概述 配置Prometheus和…

前缀列表和route-policy

前缀列表和route-policy ACL&#xff1a;访问控制列表 1、它可以用于过滤流量报文 2、又可以过滤路由条目 前缀列表&#xff1a; 1、只能过滤路由条目 2、不能过滤流量报文 ACL&#xff1a;在过滤路由条目时&#xff0c;只能过滤路由前缀。 前缀列表&#xff1a;在过滤…