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

Transformer 论文学习笔记

重新学习了一下,整理了一下笔记

论文:《Attention Is All You Need》
代码:http://nlp.seas.harvard.edu/annotated-transformer/
地址:https://arxiv.org/abs/1706.03762v5
翻译:Transformer论文翻译

特点

  1. 提出一种不使用 RNN、CNN,仅使用注意力机制的新模型 Transformer;
  2. 只关注句内各 token 之间的关系;
  3. 使用矩阵计算长程token之间的关联,提升注意力的计算效率;
  4. 使用位置嵌入,为不同位置的token赋予不同的含义。

核心贡献

  • Self-Attention

Transformer 的基本结构

在这里插入图片描述

如图,其结构主要分为 Encoder 与 Decoder 两部分,基本单元是 Multi-Head Attention、Layer Norm、Residual Connect、Feed Forward Network,其中 Decoder 每一子块的输入处还有一个 Masked Multi-Head Attention。
Encoder 的输出会被送到 Decoder 的每一个子块中。


Self-Attention

在这里插入图片描述

Self-Attention ( K , Q , V ) = softmax ( Q K T d ) V \text{Self-Attention}(K,Q,V)=\text{softmax}(\frac{QK^T}{\sqrt{d}})V Self-Attention(K,Q,V)=softmax(d QKT)V

  • 上图 左侧是 Self-Attention 的计算流程
  • 从计算图以及共识来看,Self-Attention 是被 d \sqrt{d} d Scaled 过的原因是:该因子可以抑制 Q K T QK^T QKT 中过大的值,以防止梯度消失现象的出现
  • softmax 负责计算概率化的注意力分布,该分布负责在 V 中选择与 Qi 关联度较高的 values;
  • Q K T QK^T QKT 的目的是利用矩阵运算一次性计算出每个 Q i Q_i Qi 与所有 keys 的点积,同理,后面也一次性地为每个 Q i Q_i Qi 筛选出相应的 values。这种方法优点是 Self-Attention 可以无视句中 token 之间的距离,以此获得更高的性能,缺点是计算量庞大;
  • 上图 右侧是 Multi-Head Self-Attention 的计算流程,原因是:Multi-Head 增加了特征子空间的数量,使模型能够获取更加丰富的语义信息
  • 文本信息是有先后顺序的,为了防止 Decoder 在处理 LLM 任务时出现信息向“历史”方向传播的现象,需要对一些与 illegal 连接关联的 values 采用 mask out 的操作,即屏蔽掉(设置为 − ∞ -\infin ),即只能用前面的token预测后面的token,不能反过来。

Self-Attention 的一个缺点及修补方式

缺点:点积运算无法对序列中 token 出现的位置进行建模,这样会导致模型无法充分地利用数据上下文中所蕴含的丰富的语义信息。
解决方式:引入位置嵌入(Position Embedding、Position Encoding)

PE_{pos,2i}=sin(pos/10000^{2i/d_{model}})
PE_{pos,2i+1}=cos(pos/10000^{2i/d_{model}})

使用三角函数的原因:模型借此可为每个token获取相对位置信息(对任意偏移量 k k k P E p o s + k PE_{pos+k} PEpos+k 都可以作为 P E p o s PE_{pos} PEpos 的线性函数),此外它还可以把模型外推到比训练中最长的序列更长的序列中去。


Self-Attention 的复杂度:
在这里插入图片描述

相关文章:

Transformer 论文学习笔记

重新学习了一下,整理了一下笔记 论文:《Attention Is All You Need》 代码:http://nlp.seas.harvard.edu/annotated-transformer/ 地址:https://arxiv.org/abs/1706.03762v5 翻译:Transformer论文翻译 特点&#xff1…...

Open3D(C++) 根据索引提取点云

目录 一、功能概述1、主要函数2、源码二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重,把自己当个人 一、功能概述 1、主要函数 std::shared_ptr<PointCloud> SelectByIn...

企业服务器数据库中了_locked勒索病毒怎么解密,_勒索病毒简介与防护

网络技术的发展也为互联网安全带来了一定威胁&#xff0c;对于企业来说&#xff0c;数据安全是关系整个企业正常运行的基础&#xff0c;保护好计算机免受网络威胁的攻击成为大家的一致目标。不过&#xff0c;近期&#xff0c;我们收到很多企业的求助&#xff0c;企业的服务器数…...

面试题 什么是 MyBatis 的接口绑定,有什么好处?

1. 简化开发&#xff1a;接口绑定使得SQL操作变得更加简单和直观。你只需要定义一个接口&#xff0c;声明对数据库的操作方法&#xff0c;MyBatis会动态生成实现类&#xff0c;自动执行SQL语句&#xff0c;无需手动编写SQL或SQL映射文件。 2. 提高可维护性&#xff1a;使用接口…...

[RocketMQ] Consumer 负载均衡服务 RebalanceService入口源码 (十五)

RocketMQ一个消费者组中可以有多个消费者, 在集群模式下他们共同消费topic下的所有消息, RocketMQ规定一个消息队列仅能被一个消费者消费, 但是一个消费者可以同时消费多个消息队列。需要负载均衡服务RebalanceService来进行消息队列分配的重平衡。使用负载均衡服务RebalanceSe…...

【K210】K210学习笔记六——MaixHub在线模型训练识别数字

【K210】K210学习笔记六——MaixHub在线模型训练识别数字 前言K210准备工作数据的获取MaixHub如何在线训练模型训练模型在K210上的测试小结 前言 本人大四学生&#xff0c;电赛生涯已经走到尽头&#xff0c;一路上踩过不少坑&#xff0c;但运气也不错拿了两年省一&#xff0c;…...

142. 环形链表 II

142. 环形链表 II 中等 2.2K 相关企业 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定…...

Flutter系列文章-Flutter进阶2

这一节我将再详细地为您介绍 Flutter 进阶主题&#xff0c;包括导航和路由、状态管理、异步处理、HTTP请求和Rest API&#xff0c;以及数据持久化。让我们逐个介绍这些主题。 1.导航和路由 在 Flutter 中&#xff0c;导航和路由是构建多页面应用的关键概念。导航是指从一个页…...

css实现鼠标滑动左下角弹框带动画效果

代码 <div classNamekuang></div> css代码 .kuang {height: 500px;width: 400px;// background-color: #fff;position: absolute;z-index: 10;bottom: 0;transform: translateX(-390px)}.kuang:hover {animation: myanimation 3s linear 1;animation-fill-mode:f…...

【Spring Cloud Alibaba】限流--Sentinel

文章目录 概述一、Sentinel 是啥&#xff1f;二、Sentinel 的生态环境三、Sentinel 核心概念3.1、资源3.2、规则 四、Sentinel 限流4.1、单机限流4.1.1、引入依赖4.1.2、定义限流规则4.1.3、定义限流资源4.1.4、运行结果 4.2、控制台限流4.2.1、客户端接入控制台4.2.2、引入依赖…...

ARM将常数加载到寄存器方法之LDR伪指令

一、是什么&#xff1f; LDR Rd,const伪指令可在单个指令中构造任何32位数字常数,使用伪指令可以生成超过MOV和MVN指令 允许范围的常数. 实现原理: (1)如果可以用MOV或MVN指令构造该常数,则汇编程序会生成适当的指令 (2)如果不能用MOV或MVN指令构造该常数,则汇编程序会执行下列…...

深入理解Gradle构建系统的工作原理

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

STM32F030C8T6输出3路PWM

1,常规套餐 上电初始化 SystemInit(); TIM1_Init(); 2,TIMI1初始化 TIM_TimeBaseInitTypeDef TIM1_TimeBaseStructure; TIM_OCInitTypeDef TIM1_OCInitStructure; NVIC_InitTypeDef NVIC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; //记得打开时钟 RCC_AHBPeriphClo…...

如何理解原型及原型链?js的继承方式

原型与原型链 原型 在js中&#xff0c;每个对象都有一个原型&#xff08;prototype&#xff09;。原型是一个对象&#xff0c;其他对象可以通过原型来共享属性和方法。当我们创建一个对象时&#xff0c;它会自动关联到一个原型对象。 例如&#xff1a;function Person(name, a…...

C# 按表格中的某列排序/查询

using System; using System.Data; using System.Linq;class Program {static void Main(){// 创建一个示例的 DataTable 对象DataTable table new DataTable();table.Columns.Add("ID", typeof(int));table.Columns.Add("Name", typeof(string));table.R…...

【Vue】】img使用 :src 动态绑定图片地址,但是加载图片不成功

问题复现&#xff1a; img标签直接动态绑定图片的相对路径的时候&#xff0c;图片不能正常显示。代码如下所示 <view style"margin: 20rpx" v-for"(item, index) in showSampleImage" :key"index"><u-image :src"item.src"…...

list模拟

之前模拟了string,vector&#xff0c;再到现在的list&#xff0c;list的迭代器封装最让我影响深刻。本次模拟的list是双向带头节点的循环链表&#xff0c;该结构虽然看起来比较复杂&#xff0c;但是却非常有利于我们做删除节点的操作&#xff0c;结构图如下。 由于其节点结构特…...

python字典:怎么取出key对应的值

目录 python中的字典是什么 怎么判断key是否在字典中 怎么取出key对应的值 总结 python中的字典是什么 在Python中&#xff0c;字典&#xff08;Dictionary&#xff09;是一种无序且可变的数据类型&#xff0c;用于存储键-值&#xff08;Key-Value&#xff09;对。字典通过…...

okvis

论文 Keyframe-Based Visual-Inertial SLAM Using Nonlinear Optimization 摘要 由于两种感知模式的互补性&#xff0c;视觉和惯性线索的融合在机器人中变得很流行。虽然迄今为止大多数融合策略都依赖于过滤方案&#xff0c;但视觉机器人界最近转向了非线性优化方法&#x…...

fabric js双击弹出菜单, 双击弹出输入框 修改文字 群组对象

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>测试1</title><style type"text/css">body {background-color: #ccc;float: left;}#main {background-color: #fff;border: 1px…...

Internet Archive Downloader终极指南:三步永久保存数字图书馆书籍

Internet Archive Downloader终极指南&#xff1a;三步永久保存数字图书馆书籍 【免费下载链接】internet_archive_downloader A chrome/firefox extension that download books from Internet Archive(archive.org) and HathiTrust Digital Library (hathitrust.org) 项目地…...

企业内训系统集成AI问答时采用Taotoken的成本控制实践

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业内训系统集成AI问答时采用Taotoken的成本控制实践 应用场景类&#xff0c;设想一个企业开发内训知识库系统的场景&#xff0c;…...

实测Taotoken在多模型调用下的延迟与稳定性体感

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 实测Taotoken在多模型调用下的延迟与稳定性体感 1. 引言 在集成多个大模型API到实际业务或开发工作流时&#xff0c;开发者通常需…...

智慧养老平台|基于SprinBoot+vue的智慧养老平台系统(源码+数据库+文档)

智慧养老平台 目录 基于SprinBootvue的外贸平台系统 一、前言 二、系统设计 三、系统功能设计 前台 后台 管理员功能 老人功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码…...

【MATLAB源码-第442期】基于MATLAB的OFDM系统PAPR抑制算法仿真及限幅压扩SLM、PTS与TR性能对比

操作环境&#xff1a;MATLAB 2024a1、算法描述摘要 正交频分复用技术能够把高速数据流分解到多个正交子载波上传输&#xff0c;因此在宽带通信系统中具有较高的频谱利用率和较强的抗频率选择性衰落能力。公开资料显示&#xff0c;OFDM 已经用于 DAB、DVB、WLAN、WiMAX、第四代和…...

OpenClaw用户如何通过Taotoken扩展可用模型范围

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 OpenClaw用户如何通过Taotoken扩展可用模型范围 基础教程类&#xff0c;针对使用OpenClaw作为AI工作流工具的开发者&#xff0c;指…...

英语发音宝库:11万+单词MP3音频一键获取指南

英语发音宝库&#xff1a;11万单词MP3音频一键获取指南 【免费下载链接】English-words-pronunciation-mp3-audio-download Download the pronunciation mp3 audio for 119,376 unique English words/terms 项目地址: https://gitcode.com/gh_mirrors/en/English-words-pronu…...

从URP到Built-in:手把手教你迁移Unity第三人称模板并成功换人(解决Shader报错)

从URP到Built-in&#xff1a;Unity第三人称模板迁移全流程实战指南 当你在Unity中打开官方提供的Third Person模板&#xff0c;准备将其应用到自己的项目时&#xff0c;可能会遇到一个棘手的问题——这个模板是基于URP&#xff08;Universal Render Pipeline&#xff09;设计的…...

猫抓Cat-Catch:浏览器资源嗅探技术的3大架构演进与实战解析

猫抓Cat-Catch&#xff1a;浏览器资源嗅探技术的3大架构演进与实战解析 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓Cat-Catch作为一款专业…...

3步找回密码:如何用ArchivePasswordTestTool解锁加密压缩包

3步找回密码&#xff1a;如何用ArchivePasswordTestTool解锁加密压缩包 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经面对一个…...