当前位置: 首页 > news >正文

论文 学习 Transformer : Attention Is All You Need

目录

概述:

对摘要的理解:

框架解析

按比例缩放的点积注意力

多头注意力机制

前馈神经网络与位置编码 


概述:

 

transformer 是一个encoder ——decoder 结构的用于处理序列到序列转换任务的框架,是第一个完全依赖自注意力机制,计算其输入输出表示的转换模型,核心是采用了注意力机制用于捕获输入序列不同位置之间的依赖关系,帮助模型在生成输出时能够关注到与当前任务最相关的信息,优势是能够捕获长距离依赖关系,并且对于输入序列的长度没有固定的限制,在处理长文本和复杂语言结构时表现出色,在编码器解码器框架中,编码器负责将输入系列转换成一个固定大小的表示(上下文向量)解码器根据这个表示,生成输出序列,transformer 能够并行化处理整个序列,从而大大提高了训练速度和效率

self—attention 机制:

注意力模型的本质思想:从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略不重要的信息。

transfomer 注意力的计算方法采用了Scaled Dot-Product Attention

注意力机制采用了multi head self Attention

框架中 使用了三种不同形式的的 多头注意力机制

 

对摘要的理解:

主流的序列转换模型基于复杂的循环或卷积神经网络,这些网络包括一个编码器和一个解码器。性能最佳的模型还通过注意力机制将编码器和解码器连接起来。我们提出了一种全新的简单网络架构,即Transformer,它完全基于注意力机制,完全摒弃了循环和卷积。

序列转换模型(Sequence Transduction Models)指将一个序列转换为另一个序列的模型。序列转换模型可以通过编码器(Encoder)和解码器(Decoder)两个主要部分实现。编码器使用循环神经网络(RNN)或其变种(如长短时记忆网络LSTM、门控循环单元GRU)对输入序列进行建模,得到上下文信息;利用编码器输出的上下文信息生成目标序列

注意力机制:处理一个任务时,我们不会平等地对待所有的信息,而是会将注意力集中在某些关键的部分。例如,当我们阅读一段文本时,我们会更关注与当前任务相关的词汇和句子,而忽略其他不相关的信息。注意力机制就是模拟这种行为,让模型在处理数据时能够自动地关注到更重要的部分。

框架解析

transformer 使用编码器和解码器堆叠自注意力和逐点全连接层

每个编码器由6个相同的层组成,每个层有两个子层他们分别是 掩码多头注意力层和全连接前馈神经网络 ,模型技巧(trick)有采用了残差链接和层归一化每个子层的输出是LayerNorm(x + Sublayer(x)),具体来说,1 首先对x进行嵌入编码 然后和位置编码相加 2 编码后的向量输入进多头注意力机制,3 残差链接层归一化,4  Position-wise Feed-Forward Networks 5 残差连接 层归一化

每个解码器由6个相同的层组成,每个层有三个子层他们分别是1 掩码多头注意力层(why mask:防止解码器在生成序列时查看未来的信息,即在解码时 只希望模型 看到当前词 和当前词 前面的部分 所以要对后面的单词进行mask 处理 方法是 设为很大的负数)   2  encoder-decoder 多头注意力机制和3全连接前馈神经网络 ,模型技巧(trick)有采用了残差链接和层归一化每个子层的输出是LayerNorm(x + Sublayer(x)),具体来说,1 首先对x进行嵌入编码 然后和位置编码相加 2 编码后的向量输入进掩码多头注意力机制,3 残差链接层归一化, encoder-decoder 多头注意力机制 (q 来自掩码多头注意力的输出 kv 来自编码器的输出) 残差链接层归一化4  Position-wise Feed-Forward Networks 5 残差连接 层归一化

按比例缩放的点积注意力

 

为什么使用按比例缩放的 点积注意力?

缓解输入向量维度对注意力权重的影响:在点积计算中,如果输入向量的维度非常高,那么点积的结果可能会非常大,导致后续的softmax函数进入饱和区,使得梯度变得非常小,从而难以训练。按比例缩放可以解决这个问题,使得点积的结果在合理的范围内,避免softmax函数进入饱和区。

点积 可以计算向量之间的余弦相似度,并且可以进行矩阵运算加快计算速度和效率

多头注意力机制

 

 为什么要采取多头注意力机制?

多头注意力机制则允许模型在多个不同的表示子空间上并行计算注意力权重,从而能够更全面地捕捉输入序列中的依赖关系。通过将不同的注意力头组合在一起,模型能够学习到更复杂的表示,并更准确地预测目标序列

文心一言 是这样回答的

transformer 采取多头注意力机制(Multi-Head Attention)主要有以下几个原因:

  1. 多样性:多头注意力机制允许模型同时关注不同的位置和语义信息。每个头可以学习不同的注意力分布,从而捕捉输入序列中的不同依赖关系。如果只使用一个头,模型可能会错过某些重要的依赖关系。
  2. 更丰富的表示:通过多头注意力机制,模型可以并行学习多个自注意力表示。这使得模型能够更好地抓住输入数据的局部和全局信息,提供更丰富、更强大的表示。在自然语言处理任务中,这种丰富的表示往往导致更好的性能。
  3. 并行计算:多头注意力机制可以充分利用现代硬件并行计算的能力,例如 GPU。多个头可以在一次计算中同时进行处理,这样可以显著提高计算效率。
  4. 学习到不同维度的特征和信息:由于每个注意力头都是一个独立的self-attention,它们可以通过产生QKV矩阵来学习数据特征。每个self-attention最终会产生一个维度上的输出特征,因此当使用多头注意力机制时,模型可以学习到多维度的特征信息,从多个维度更好地理解数据。
  5. 提高模型容量和泛化能力:多头注意力机制增加了模型的容量,使得模型能够学习到更复杂的表示。由于能够从多个角度分析输入数据,模型的泛化能力得到提升。

总的来说,多头注意力机制通过提供多样性、更丰富的表示、并行计算能力以及学习不同维度特征的能力,帮助Transformer模型在处理序列数据时获得更好的性能。

多头注意力机制的多头是怎么实现的?

不是使用 dmodel 维键、值和查询执行单个注意力函数,e而是 将查询、键和值分别线性投影到 dk、dk 和 dv 维。在每个查询、键和值的每个投影版本上,然后我们并行执行注意力函数,产生 dv 维输出值

  1. 分割嵌入向量:首先,输入的嵌入向量(例如词嵌入向量)被分割成多个较小的部分,每个部分对应一个注意力“头”。假设输入的嵌入向量维度为D,注意力头数为h,则每个头处理的向量维度为D/h。这一步是为了让模型在更细粒度上学习数据的表示。
  2. 线性变换:对于每个分割后的部分(也就是每个头),应用三个不同的线性变换(全连接层),分别生成查询(Q)、键(K)和值(V)向量。每个线性变换的权重矩阵维度为(D/h)×(D/h)。
  3. 注意力计算:在每个头中,计算查询和键的点积,然后应用softmax函数得到注意力权重。最后,将注意力权重与值向量相乘,得到加权后的值向量。
  4. 拼接与线性变换:将所有头的加权后的值向量拼接起来,形成一个更大的向量。然后,再应用一个线性变换(全连接层),将拼接后的向量转换回原始嵌入向量的维度D。


 前馈神经网络与位置编码 

 

 

相关文章:

论文 学习 Transformer : Attention Is All You Need

目录 概述: 对摘要的理解: 框架解析 按比例缩放的点积注意力 多头注意力机制 前馈神经网络与位置编码 概述: transformer 是一个encoder ——decoder 结构的用于处理序列到序列转换任务的框架,是第一个完全依赖自注意力机制…...

工厂模式+策略模式

输入实体 基类 import lombok.Data;Data public class PersonInputDto {private Integer id;private String name; }子类 Data AllArgsConstructor NoArgsConstructor public class ManPerson extends PersonInputDto {private String sex; }Data AllArgsConstructor NoArgs…...

TMS320F28335学习笔记-时钟系统

第一次使用38225使用了普中的clocksystem例程进行编译,总是编译失败。 问题一:提示找不到文件 因为工程的头文件路径没有包含,下图的路径需要添加自己电脑的路径。 问题二 找不到库文件 例程种的header文件夹和common文件夹不知道从何而来…...

【Apache POI】Apache POI-操作Excel表格-简易版

Catalog Apache POI-操作Excel表格1. 需求2. 优点3. 缺点4. 应用场景5. 使用方法6. SpringBoot工程中处理Excel表格7. Demo示例 Apache POI-操作Excel表格 1. 需求 大多数项目的在运营过程中,会产生运营数据,如外卖系统中需要统计每日的订单完成数、每…...

MySQL系列之索引

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…...

【问题分析】锁屏界面调起google语音助手后壁纸不可见【Android 14】

1 问题描述 为系统和锁屏分别设置两张不同的壁纸,然后在锁屏界面长按Power调起google语音助手后,有时候会出现壁纸不可见的情况,如以下截图所示: 有的时候又是正常的,但显示的也是系统壁纸,并非是锁屏壁纸…...

Java入门基础学习笔记8——注释

1、注释: 注释是写在程序中对代码进行解释说明的文件,方便自己和其他人查看,以便理解程序的。 package cn.ensource.note;/**文档注释文档注释 */ public class NoteDemo {public static void main(String[] args) {// 单行注释System.out.…...

上班工资太低了,哪些副业可以多赚钱?

今天给各位分享最赚钱的副业方式的知识,其中也会对比较赚钱的副业进行解释. 1、网站接单 一般20页左右的PPT报价基本在200-400元。如果能每周接单,一个月就有接近1000元的副业收入。提交摄影和绘画作品 比起画画,靠摄影赚点外快更容易一点。…...

原子学习笔记4——GPIO 应用编程

一、应用层如何操控 GPIO 与 LED 设备一样,GPIO 同样也是通过 sysfs 方式进行操控,进入到/sys/class/gpio 目录下,如下所示: gpiochipX:当前 SoC 所包含的 GPIO 控制器,我们知道 I.MX6UL/I.MX6ULL 一共包…...

查看iqn编码

cat /etc/iscsi/initiatorname.iscsi ## for each iSCSI initiator. Do NOT duplicate iSCSI InitiatorNames. InitiatorNameiqn.2004-10.com.ubuntu:01:9ebe1a68...

如何安全的使用密码登录账号(在不知道密码的情况下)

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具,进入账号密码模块,如图 2、看到鼠标移动到密码那一栏有提示,按住Ctrl或者Alt点击或者双击就能复制内容&…...

软件需求和设计评审

目录 引言 1. 软件评审的方法和技术 2. 产品需求评审:构建正确的产品 3. 设计评审:构建正确的产品 4. 软件评审的最佳实践 结语 引言 在软件开发的迷宫中,需求和设计评审是通往成功产品的关键门户。它们是确保软件质量和满足用户需求的…...

论文笔记ColdDTA:利用数据增强和基于注意力的特征融合进行药物靶标结合亲和力预测

ColdDTA发表在Computers in Biology and Medicine 的一篇一区文章 突出 • 数据增强和基于注意力的特征融合用于药物靶点结合亲和力预测。 • 与其他方法相比,它在 Davis、KIBA 和 BindingDB 数据集上显示出竞争性能。 • 可视化模型权重可以获得可解释的见解。 …...

如何防止WordPress网站内容被抓取

最近在检查网站服务器的访问日志的时候,发现了大量来自同一个IP地址的的请求,用站长工具分析确认了我的网站内容确实是被他人的网站抓取了,我第一时间联系了对方网站的服务器提供商投诉了该网站,要求对方停止侵权行为,…...

全球化战略中的技术支柱:出海企业的网络技术解决方案

随着全球市场的一体化,中国的电商与游戏行业越来越倾向于扩展国际市场,这一过程被称为“出海”。成功的出海战略不仅需要强大的市场洞察和文化适应能力,还需依赖高效的网络技术,包括SOCKS5代理、代理IP、以及全面的网络安全策略。…...

在Linux上安装并运行RabbitMQ

目录 准备CentOS服务器 下载rabbit-server和erlang文件 启动RabbitMQ服务 准备CentOS服务器 两个命令,选一个能用的,查看CentOS服务器的版本 lsb_release -a下载rabbit-server和erlang文件 参考文章:http://t.csdnimg.cn/t8BbM 1、创建新…...

使用 docker-compose 搭建个人博客 Halo

说明 我这里使用的是 Halo 作为博客的工具,毕竟是开源了,也是使用 Java 写的嘛,另外一点就是使用 docker 来安装(自动挡,不用自己考虑太多的环境因素),这样子搭建起来更快一点,我们…...

《这就是ChatGPT》读书笔记

书名:这就是ChatGPT 作者:[美] 斯蒂芬沃尔弗拉姆(Stephen Wolfram) ChatGPT在做什么? ChatGPT可以生成类似于人类书写的文本,它基本任务是弄清楚如何针对它得到的任何文本产生“合理的延续”。当ChatGPT写…...

更专业的汽车软件研发工具链,怿星重磅发布新产品

怿星科技在2024北京国际车展同期举办主题为“创新引领未来——聚焦智能汽车软件新基建”的新产品发布会,重磅推出1款绝对优势产品和4套场景解决方案。同时举行了4场热点技术研讨:国产工具链的机遇与挑战、新架构下的的车载DDS应用探索及测试方案介绍、软…...

Stable Diffusion:AI绘画的新纪元

摘要: Stable Diffusion(SD)作为AI绘画领域的新星,以其开源免费、强大的生成能力和高度的自定义性,正在引领一场艺术与技术的革命。本文旨在为读者提供Stable Diffusion的全面介绍,包括其原理、核心组件、安…...

STM32H750调试KSZ8863翻车实录:从F4经验到H7的坑,硬件配置避雷指南

STM32H7与KSZ8863实战避坑指南:从F4经验到H7的硬件设计差异 调试以太网PHY芯片KSZ8863时,许多工程师会带着STM32F4的成功经验直接迁移到STM32H7平台,结果往往遭遇意想不到的硬件兼容性问题。本文将深入剖析两个平台在RMII接口设计上的关键差…...

eFuse 的核心作用

它触及了设备安全性的核心机制——eFuse。 简而言之:一台已经烧录(blown)了 eFuse 的设备,其安全机制与未烧录 eFuse 的设备有本质区别,你之前在非 eFuse 设备上成功的代码修改(强制 check_key 返回 0)很可能在烧录了 eFuse 的设备上无效。 以下是详细解释: eFuse 的…...

用LangChain Tools打造会自主查资料的GPT模型

1. 项目概述:为什么你需要一个“会自己查资料”的GPT模型?我第一次在ChatGPT里输入“2024年巴黎奥运会新增了哪些比赛项目?”时,得到的回复是:“我的训练数据截止于2021年9月,无法提供2024年的最新信息。”…...

Arm Musca-B1芯片I/O多路复用器架构与配置详解

1. Arm Musca-B1测试芯片I/O多路复用器架构解析I/O多路复用器(IOMUX)是现代嵌入式系统中实现引脚功能复用的核心模块。在Arm Musca-B1测试芯片中,这一设计允许单个物理引脚通过寄存器配置动态切换多种功能信号路径。这种架构设计显著提升了芯…...

Windows网络测速终极指南:iperf3免费工具完整教程

Windows网络测速终极指南:iperf3免费工具完整教程 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds 还在为网络速度不稳定而烦恼吗&#x…...

YOLO 全景解析:从 v8 到 v26(基于 Ultralytics 本仓库)

本文基于当前仓库 ultralytics-main 源码逐行解析,覆盖 v8 → v9 → v10 → v11 → v12 → v26 的主干、Neck、Head、损失、训练、验证、推理、导出与量化。文中的代码引用全部指向本仓库实际文件与行号,方便 Ctrl+点进去核对。 0. 阅读地图 关注点 你应该看哪一章 关键源码 …...

保姆级教程:手把手教你用Intel RealSense D435i进行动态标定(附打印目标尺寸)

深度相机动态标定实战:从原理到精准优化的完整指南 在计算机视觉和机器人领域,深度相机的标定质量直接决定了三维感知的精度。许多开发者在初次使用Intel RealSense D435i这类设备时,常常会遇到深度图像噪点多、边缘模糊或数据空洞等问题。这…...

RSLinx OPC Server配置避坑指南:解决IP网段、Topic配置与标签读取的常见问题

RSLinx OPC Server实战排障手册:从IP冲突到标签解析的深度解决方案 当工业自动化系统遇上OPC Server通讯故障,工程师的调试时间往往以小时为单位流失。不同于基础配置教程,本文将直击RSLinx OPC Server部署中的七大高发故障场景,…...

24GB 内存 M4 运行本地模型:虽有局限但乐趣与优势并存!

在配备 24GB 内存的 M4 上运行本地模型 2026 年 5 月 10 日,阅读时长 13 分钟。涉及 Elixir、大语言模型(LLM)、通义千问(Qwen)、LLM Studio。断断续续尝试在本地运行模型一段时间后,终于找到可行方案。虽输…...

暗黑3一键战斗终极指南:5步掌握D3KeyHelper宏工具

暗黑3一键战斗终极指南:5步掌握D3KeyHelper宏工具 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 想要在暗黑破坏神3中告别重复按键的疲惫…...