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

news2024/10/6 12:25:01

不同于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.coloradmin.cn/o/1602209.html

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

相关文章

第一部分-基础入门-学习导航

专题地址:MacOS一站式程序开发系列专题 第一部分:基础入门学习导航 OSX-01-Mac OS应用开发概述:简单介绍下MacOS生态、Xcode使用以及使用Xcode创建app的方法OSX-02-Mac OS应用开发系列课程大纲和章节内容设计:介绍下此系列专题的文章内容组织形式以及此系列专题的覆盖内容…

OpenHarmony轻量系统开发【1】初始OpenHarmony

1.1系统类型 OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互…

使用Ollama加载微软开源WizardLM2-7B模型,并进行“弱智吧”问题测试

开发团队在发布模型之前忘记对其进行毒性测试,微软删除了WizardLM2所有相关模型,HuggingFace的WizardLM仓库已经清空。 不过不用担心,WizardLM2模型的许可是Apache 2.0,微软无权要求他人删除复制的仓库。目前在HuggingFace上仍然…

C++语言·类和对象

1. 类的引入 C语言结构体中只能定义变量,但在C中,结构体内不仅可以定义变量,也可以定义函数,同时C中struct的名称就可以代表类型,不用像C那样为了方便还要typedef一下。 在C中我们管定义的结构体类型叫做类(student)&a…

Spring (四) 之配置及配置文件的操作

文章目录 1、Spring 基于注解的配置基于注解的配置引入依赖包配置实体类数据访问层业务层业务层实现测试 2、Bean和Component和Configuration的区别1 Bean:2 Component:3 Configuration:总结: 区别Component和Configuration区别 3、Spring读取properties配置文件准备…

Springboot框架——4.整合jdbc

1.pom.xml中导入依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupI…

操作系统part2:四种常见调度算法、进程同步和互斥机制

1. 四种常见调度算法的实现原理及优缺点。 a. 先来先服务&#xff08;FCFS&#xff09;&#xff1a; 实现原理&#xff1a;按照进程到达的先后顺序进行调度&#xff0c;先到达的进程先执行&#xff0c;直到执行完毕或阻塞。优点&#xff1a;简单易懂&#xff0c;适用于长作业…

DolphinScheduler 调度工作流报错 Host key verification failed.

文章目录 出现问题错误原因及解决方法1.SSH 免密登录配置失败、失效2.不存在该租户 建议 出现问题 在执行调度任务时&#xff0c;失败了&#xff0c;查看日志发现错误 —— Host key verification failed. 错误原因及解决方法 1.SSH 免密登录配置失败、失效 这种情况就检查…

探索分布式系统监控zabbix-------------监控Windows

扩展windows 10 server2012 server2016 server2019 监控 一、在虚拟机中安装zabbix的客户端 下载网站 Download and install Zabbix 安装系统一直托不进虚拟机中&#xff1b;因为没安装Tools组件 点击虚拟机&#xff0c;选择安装VMware Tools 查看主机名 二、在web页…

Zabbix6.0监控入门

1. Zabbix 监控系统入门简介 Zabbix 是一个基于 WEB 界面的提供分布式系统监控的企业级的开源解决方案&#xff0c;Zabbix 能监视各种网络参数&#xff0c;保证服务器系统的安全稳定的运行&#xff0c;并提供灵活的通知机制以让 SA 快速定位并解决存在的各种问题。Zabbix 分布式…

强化学习(四)基于蒙特卡罗算法 Monte-Calo 的求解

文章目录 1. 免模型学习的强化学习问题2. 利用蒙特卡洛法求解最优价值函数2.1 策略评估&#xff08;预测&#xff09;2.2 策略迭代&#xff08;控制&#xff09; 在《强化学习&#xff08;三&#xff09;基于动态规划 Dynamic Programming 的求解方法》的文末中提到&#xff0c…

rust学习(BorrowMut异常)

现象&#xff1a; 编译没有问题&#xff0c;运行时出现&#xff1a; 代码&#xff1a; pub fn do_test() {let v Arc::new(RefCell::new(100));let v1 v.try_borrow_mut().unwrap();let v2 v.try_borrow_mut().unwrap(); } 原因&#xff1a; 一个cell貌似不能同时被借用…

书生·浦语大模型实战营之OpenXLab 部署 InternLM2 实践指南

书生浦语大模型实战营之OpenXLab 部署 InternLM2 实践指南 本文档将手把手教您如何在 OpenXLab 部署一个 InternLM2-7B chat 的应用 目录 资料介绍书生浦语 InternLM介绍OpenXLab浦源平台介绍部署 InternLM2-Chat-7B demo模型准备上传模型编写代码部署应用 资料介绍 书生浦语…

Matlab求矩阵的逆,3种常用方法总结

几种求逆矩阵的方法总结&#xff0c;以Matlab语言为例 *0* 引言*1* 简单描述函数实现*2* 方法调用计算对比 0 引言 最近在使用函数库求解逆矩阵的时候发现同一个矩阵使用不同的语言、不同的求解方法会产生不同精度的结果&#xff0c;特别是阶数很高的方阵&#xff0c;一些库中的…

基于LabVIEW的CAN通信系统开发案例

基于LabVIEW的CAN通信系统开发案例 介绍了基于LabVIEW开发的CAN通信系统&#xff0c;该系统主要用于汽车行业的数据监控与分析。通过对CAN通信协议的有效应用&#xff0c;实现了车辆控制系统的高效信息交换与实时数据处理&#xff0c;从而提升了车辆性能的检测与优化能力。 项…

【MySQL数据库】 (篇一 ) 让你快速上手——新手速通版

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、如何起步&#xff1f;&#x1f3c3;‍1.创建数据库&#xff1a;2.选择数据库&#xff1a;3.删除数据库&#xff1a;4.创建表&#xff1a;5.删除表&#xff…

贝锐蒲公英自研异地组网新技术:远程视频监控,流畅度、清晰度大幅提升

在远程视频监控过程中&#xff0c;若遇到网络带宽若遇到网络波动&#xff0c;如&#xff1a;丢包、高延迟等&#xff0c;往往会导致视频流传输时发生数据丢失或延迟现象&#xff0c;从而严重影响视频画面的清晰度和流畅度。 比如&#xff1a;在公司总部集中监看远程矿山或户外水…

华为ensp中静态路由和默认路由的原理及配置

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月17日17点37分 默认路由 [Router] ip route-static <目的网络> <目的网络掩码> <下一跳地址>默认路由的作用是将无法匹配路由表中其他路由表项的…

通过WSL在阿里云上部署Django项目MySQL

前端用Vue&#xff0c;后端用Django&#xff0c; nginx&#xff0c;Mysql 参照&#xff1a; 通过WSL在阿里云上部署Vue项目_阿里云 wsl-CSDN博客 阿里云重登录 采用Ubuntu系统&#xff0c; apt update #检查是否已经安装 mysql --version systemctl status mysql apt insta…

react v18 项目初始化

按照以下命令进行傻瓜式操作即可&#xff1a; 全局安装脚手架工具&#xff1a; npm install -g create-react-app创建项目my-react-app&#xff1a; create-react-app my-react-app安装 antd: yarn add antd安装 react-router-dom&#xff1a; yarn add react-router-dom启动项…