大模型用到的位置编码汇总(面试)

不同于RNN、CNN等模型,对于Transformer模型来说,位置编码的加入是必不可少的,因为纯粹的Attention模块是无法捕捉输入顺序的,即无法区分不同位置的Token。为此我们大体有两个选择:想办法将位置信息融入到输入中,这构成了绝对位置编码的一般做法;想办法微调一下Attention结构,使得它有能力分辨不同位置的Token,这构成了相对位置编码的一般做法。

绝对位置编码

1、训练式
学习的位置编码(Learned Position Embeddings):
相比于固定的正弦余弦编码,学习的位置编码是通过训练过程自动学习的。
每个位置编码是模型的参数之一,通过梯度下降等优化算法进行优化。
这种方法在某些任务中可能优于固定的正弦余弦编码,尤其是在位置信息对于任务非常重要时。

2、三角式
正弦和余弦函数编码(Sinusoidal Position Encoding):

Transformer模型中最初采用的方法。
对于每个位置i和每个维度d,使用正弦和余弦函数交替地生成位置编码,其中波长形成一个几何级数。
公式如下:
在这里插入图片描述

3、递归式

原则上来说,RNN模型不需要位置编码,它在结构上就自带了学习到位置信息的可能性(因为递归就意味着我们可以训练一个“数数”模型),因此,如果在输入后面先接一层RNN,然后再接Transformer,那么理论上就不需要加位置编码了。

4、相乘式

相对位置编码

1、Transformer中的相对位置编码:
Google的研究者在Transformer模型中引入了一种相对位置表示方法,允许模型利用头(head)间不同的位置信息。这种方法计算自注意力时,不仅考虑了键(Key)和查询(Query)的标准相互作用,还引入了基于它们之间距离的成分。
该方法使用可学习的位置向量来表示不同位置之间的距离,通过修改自注意力机制来整合这些相对位置向量。

2、自适应相对位置编码(T5):
在自注意力的计算中,根据元素间的相对距离动态调整注意力权重。这种方式不需要为每个可能的位置对预设一个位置向量,而是通过函数(如可训练的参数化函数)动态生成位置信息。
例如,T5模型采用了一种简化的相对位置编码,它在模型的每一层都重新计算位置信息,从而使模型能够更灵活地适应不同的上下文需求。

3、基于内容的相对位置编码:
在某些变体中,位置信息可以直接与输入元素的内容(如单词的嵌入)结合,以决定注意力分配。这种方法尝试模拟人类在处理信息时如何基于内容和上下文(而不仅仅是固定的模板)来调整对信息的关注。

4、DeBERTa的相对位置编码

DeBERTa模型使用了一种特殊的相对位置编码,这种编码不仅编码元素间的相对距离,还编码了它们的方向(即前向或后向)。这允许模型更精确地理解词语间的前后关系,提高了对长距离依赖关系的捕捉能力。具体来说,模型为每对词汇分别计算两个不同的位置分数:
在这里插入图片描述

5、XLNet的相对位置编码
在每次预测时,XLNet会随机排列输入序列的顺序,并试图预测缺失的部分。这种方法自然地要求模型理解和编码元素之间的相对位置信息。XLNet中的相对位置编码被集成到其双流注意力结构中,其中一个流处理内容信息,另一个流专注于预测任务。相对位置编码帮助模型理解序列中词与词之间的相对距离和方向。
相对位置信息被直接用于调整注意力分数,模型不仅考虑内容的相似性,还考虑了词汇在序列中的相对位置,使得预测更加准确。

其它位置编码

1、CNN式
虽然“CNN式”不是一个标准术语,但在位置编码的语境下,我们可以推测这指的可能是在基于卷积神经网络(CNN)的模型中如何处理位置信息。

  • 添加位置信息层:在输入层或卷积层中,可以添加额外的位置编码层,使得每个词或字符的位置信息可以通过额外的通道输入到网络中。
  • 通过卷积结构固有地处理位置信息:由于卷积操作本身就是局部的并且保持空间关系,它自然地包含了一种隐式的位置感知能力。

2、复数式
复数式位置编码(Complex Number Positional Encoding)是一种在处理序列数据时使用复数(实部和虚部)来编码位置信息的方法。这种方法的基本思想是:

  • 使用复数的性质:复数可以在其相位和幅度中编码信息,这使得复数特别适合于同时表示位置的大小和方向。

  • 相位作为位置信息:复数的相位可以被用来编码相对位置信息,其中相位的变化可以表示元素间的位置变化。

RoPE 融合式(Rotary Position Embedding)

融合式位置编码,特别是在自然语言处理中被称为Rotary Position Embedding (RoPE),它将位置信息与每个词的表示融合在一起,具体通过旋转变换实现。这种方法的核心在于:
Rotary Position Embedding(RoPE)是一种相对较新的位置编码技术,它在自然语言处理和其他序列模型中用于增强模型对位置信息的处理能力。RoPE 的核心思想是将位置信息直接融合进每个词元的表示中,而这一过程是通过旋转变换来实现的。这种方法特别适用于基于 Transformer 的模型,可以有效改善这些模型在处理长序列时的性能。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

长度外推问题

什么是?

大模型的外推性问题是指大模型在训练时和预测时的输入长度不一致,导致模型的泛化能力下降的问题。在目前的大模型中,一般指的是超出预训练设置的上下文长度时,依旧保持良好推理效果的能力。

解决方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

用odin实现的资源复制编辑器

用odin实现了一个资源复制编辑器,使用要安装odin,功能是把要复制的资源路径一个个添加设置,点copy能把列表里的资源全部复制,支持目录复制到目录,文件复制到目录,文件复制替换。提升效率,让自己…

Office 365卡顿怎么办?SD-WAN可以解决

随着数字化浪潮的推进,Office 365等云办公应用已成为企业日常运营不可或缺的工具。然而,许多企业在使用Office 365时遭遇了网络卡顿的难题,给工作人员带来诸多不便。随着SD-WAN技术的成熟和普及,这一难题得到了有效的解决。 Offic…

使用JWT、Redis + token实现用户登录的两种方式。

使用JWT实现登录功能 功能实现流程: 1.用户发起登录请求。 2.使用JwtBuilder生成令牌并返回。 3.写一个拦截器,拦截初登录之外的请求。拦截到请求后解析令牌,若正常放行,并将当前用户id存在当前线程。若出异常则返回登陆失败。…

四足机器人应用篇之solidwork导出URDF

欢迎关注微信公众号 “四足机器人研习社”,本公众号的文章和资料和四足机器人相关,包括行业的经典教材、行业资料手册,同时会涉及到职业知识学习及思考、行业发展、学习方法等一些方面的文章。 |1.URDF介绍 一个URDF pakage示例 urdf是ROS用于…

ABAP MESSAGE 常用的类型

类型文本描述A终止处理终止,用户必须重启事务X退出与消息类型A 类似,但带有程序崩溃 MESSAGE_TYPE_XE错误处理受到干扰,用户必须修正输入条目,左下角提示!W警告处理受到干扰,用户可以修正输入条目,左下角提示!I信息处理受到干扰&a…

数据库讲解---(数据更新、视图、数据控制)【MySQL版本】

目录 前言 一.数据更新 1.1插入数据 1.1.1插入单个元组 1.1.2将一个新学生记录(学号:091530,姓名:夏雨,性别:男,籍:海南,出生年份:1999,学院:计算机)插入到学生表中 1.1.3插入子查询结果 1.1.4有一个表“DEPT”(SDEPT CHAR(20),AVG_AGE SMALLINT)表示每个学院的学生的平…

习题4-1 求奇数和

本题要求计算给定的一系列正整数中奇数的和。 输入格式: 输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。 输出格式: 在一行中输出正整数序列中奇数的和。 输入样例: 8 7 4 3 70 5 6 …

R 格式(蓝桥杯)

文章目录 R 格式【问题描述】高精度乘法高精度加法 R 格式 【问题描述】 小蓝最近在研究一种浮点数的表示方法:R 格式。对于一个大于 0 的浮点数 d,可以用 R 格式的整数来表示。给定一个转换参数 n,将浮点数转换为 R格式整数的做法是&#…

网络安全-自学笔记

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习 我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而…

【力扣TOP100热题图解】T1.两数之和

题目链接点这里—— 力扣(LeetCode)​​​​​​ 法一:暴力枚举 最容易想到的方法是枚举数组中的每一个数 x,寻找数组中是否存在 target - x。 当我们使用遍历整个数组的方式寻找 target - x 时,需要注意到每一个位…

【Linux】磁盘管理和文件系统

目录 一、硬盘 1.硬盘结构 2.结构类型 二、MBR与磁盘分区 1.MBR主引导记录 2.磁盘分区结构 三、文件系统类型 四、linux系统添加并使用新硬盘的步骤 1.添加新的硬盘 2.刷新识别 3.进行分区 4.格式化,创建文件系统 5.挂载使用 一、硬盘 1.硬盘结构…

SpringBoot整合消息中间件(ActiveMQ,RabbitMQ,RocketMQ,Kafka)

消息中间件 消息消息队列JMS AMQPMQTTKafka Spring整合消息队列模拟消息队列的工作流程Spring整合ActiveMQSpring整合RabbitMQ直连交换机模式主题交换机模式 Spring整合RocketMQSpring整合kafka 消息 消息的发送方:生产者 消息的接收方:消费者 同步消息…

基于SSM项目高校在线请假与审批系统

采用技术 基于SpringBoot框架实现的web的智慧社区系统的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringMVCMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 简介 本系统实现了管理员,教师,学生三个模…

OSPF动态路由实验(华为)

思科设备参考:OSPF动态路由实验(思科) 一,技术简介 OSPF(Open Shortest Path First)是一种内部网关协议,主要用于在单一自治系统内决策路由。它是一种基于链路状态的路由协议,通过…

探秘ChatGPT:写作论文的新奇技巧

ChatGPT无限次数:点击直达 探秘ChatGPT:写作论文的新奇技巧 近年来,随着人工智能技术的发展,ChatGPT作为一种强大的自然语言处理工具越来越受到关注。在学术界和工业界,人们开始探索如何利用ChatGPT这样的模型来辅助写作&#xf…

Linux下SPI设备驱动实验:实现SPI发送/接收数据的函数

一. 简介 前面文章介绍了SPI设备数据收发处理流程,后面几篇文章实现了SPI设备驱动框架,加入了字符设备驱动框架代码。文章如下: SPI 设备驱动编写流程:SPI 设备数据收发处理流程中涉及的结构体与函数-CSDN博客 SPI 设备驱动编写…

DevOps(二)Jenkins详细介绍和15天学习计划

Jenkins 是一个开源的自动化服务器,广泛用于持续集成和持续部署(CI/CD)的自动化过程中。它支持开发者在软件开发的各个阶段自动构建、测试并部署应用程序,从而提高开发效率并减少错误。下面详细介绍Jenkins: 一、核心功能 1、构…

【洛谷 P8802】[蓝桥杯 2022 国 B] 出差 题解(带权无向图+单源最短路+Dijkstra算法+链式前向星+最小堆)

[蓝桥杯 2022 国 B] 出差 题目描述 A \mathrm{A} A 国有 N N N 个城市,编号为 1 … N 1 \ldots N 1…N 小明是编号为 1 1 1 的城市中一家公司的员工,今天突然接到了上级通知需要去编号为 N N N 的城市出差。 由于疫情原因,很多直达的交…

webpack + ts 搭建 web 应用

初始化 npm init -y一、 依赖下载 typescript相关: ts-loader: ts文件加载器 npm i typescript ts-loader -Dwebpack相关 webpack-cli: 命令行工具 webpack-dev-server:webpack开发服务器 webpack-merge : webpack配置合并 clean-webpack-plugin: we…

MXXE利用XXE漏洞快速获取服务器敏感文件工具

https://github.com/MartinxMax/MXXE 关于 MXXEV1.2升级版,快速获取服务器敏感文件 获取Windows服务器敏感文件 把数据包复制到payload.txt进行自动注入 $ python3 MXXE.py -lh 10.10.16.5 -user Daniel -server windows 幸运的是我们找到了服务器的私匙 获取Linux服务器敏感…