各种位置编码

news/2024/11/30 18:40:33/

目录

一、绝对位置编码

1.1 训练式

1.2 三角式

二、相对位置编码

三、旋转式位置编码 (Rotary Position Embedding)

四、Alibi 位置编码(Attention with Linear Biases)

 五、T5 Bias Position Embedding

六、KERPLE(Kernelized Relative Positional Embedding for Length Extrapolation)

 


互联网寻回犬一枚~

一、绝对位置编码

形式上来看,绝对位置编码是相对简单的一种方案,但即便如此,也不妨碍各路研究人员的奇思妙想,也有不少的变种。一般来说,绝对位置编码会加到输入中:在输入的第k个向量x_{k}中加入位置向量p_{k}变为x_{k}+p_k,其中p_{k}只依赖于位置编号k

常见的Bert, Roberta均使用了绝对位置编码,模型的固定最大长度是512,不能后续扩展,需要来截断输入文本,这样会影响长文本的效果。

以下罗列两种比较常见的绝对位置编码:

1.1 训练式

1.2 三角式

二、相对位置编码

相对位置并没有完整建模每个输入的位置信息,而是在算Attention的时候考虑当前位置与被Attention的位置的相对距离,由于自然语言一般更依赖于相对位置,所以相对位置编码通常也有着优秀的表现。对于相对位置编码来说,它的灵活性更大,更加体现出了研究人员的“天马行空”。

三、旋转式位置编码 (Rotary Position Embedding)

谷歌的Palm, meta的LLaMA均采用了此种编码表示方式。

这个概念最先由苏神提出,发表在论文《ROFORMER: ENHANCED TRANSFORMER WITH ROTARY POSITION EMBEDDING》

简单来说,RoPE用旋转矩阵对绝对位置进行编码,同时将明确的相对位置依赖性纳入到self-attention的表述中。也就是说RoPE“吸收”了绝对位置编码和相对位置编码两者的优点。和相对位置编码相比,RoPE 具有更好的外推性,目前是大模型相对位置编码中应用最广的方式之一。

备注:什么是大模型外推性?

外推性是指大模型在训练时和预测时的输入长度不一致,导致模型的泛化能力下降的问题。例如,如果一个模型在训练时只使用了512个 token 的文本,那么在预测时如果输入超过512个 token,模型可能无法正确处理。这就限制了大模型在处理长文本或多轮对话等任务时的效果。

推导过程:

共轭复数:两个实部相等,虚部互为相反数的复数互为共轭复数(conjugate complex number)。

图片来自于:Click Here

四、Alibi 位置编码(Attention with Linear Biases

参考链接:开源LLM大模型位置编码探索 - 知乎

Alibi 位置编码主要是Bloom模型采用,Alibi 的方法也算较为粗暴,是直接作用在attention score中,给 attention score 加上一个预设好的偏置矩阵,相当于 q 和 k 相对位置差 1 就加上一个 -1 的偏置。其实相当于假设两个 token 距离越远那么相互贡献也就越低。

其中Alibi 位置编码是不需要通过训练的,给定的预设矩阵中还会乘上m的调节因子,m的设置与attention的头数有关,是2的指数差值。论文中也做了尝试把m作为学习参数,但是并没有获得更好的效果。

Alibi 位置编码的外推性比旋转位置编码外推性要好一些,旋转位置编码也是基于正余弦三角式位置编码改进融入相对位置信息,但是正余弦三角式位置编码外推性缺点也很明显,看起来是不需要训练可以直接推演无限长度位置编码,但是忽略了一点就是周期性函数必须进行位置衰减,到远处的位置信息趋于直线震荡,基本很难有位置信息区分了,所以外推性比训练式的好不了多少,旋转位置编码基于此改进的自然也是如此。

Alibi 相当于在k和q向量内积上加入分数上的偏置,来体现出来位置差异性,针对于远距离衰减问题,则是通过softmax函数特性进行差异软放大,将token之间的位置差异性拉大,避免远距离时被衰减无限接近于0,因为直接作用在attention分数上,拉大远距离内积值,在训练的时候带来的位置差异性减少的问题会大大缓解,从而获得更远距离的外推性能。

 五、T5 Bias Position Embedding

 5 Bias位置编码和Alibi 位置编码有点像,其都是作用在attention计算的q和k内积上,但是不同的是Alibi 是无需训练直接推演位置,而T5 Bias则是需要训练。模型在训练的时候会根据不同的q和k学习出来一个标量值,这个标量值加上k和q内积,再经过softmax,此外还对长度有一定限制,当超过 128 长度的相对距离后,每个都分配相同的标量值。这个相对位置窗口保持在128内,但在内积上加入这个bias之后,外推性大大提升。

六、KERPLE(Kernelized Relative Positional Embedding for Length Extrapolation)

KERPLE主要针对Alibi 做了一些微小改进,将内积的bias由之前自然数值幂函数或指数函数,并且改成可学习参数。


http://www.ppmy.cn/news/1205502.html

相关文章

egg.js sequelize数据库操作配置

egg.js sequelize数据库操作配置 文章目录 egg.js sequelize数据库操作配置1. 数据库配置2. 迁移配置3.数据表设计和迁移4.模型创建 1. 数据库配置 安装并配置egg-sequelize插件(它会辅助我们将定义好的 Model 对象加载到 app 和 ctx 上)和mysql2模块&a…

C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发006:基于redis查找玩家姓名+游戏业务实现总结

文章目录 1 Redis的安装与API的使用1.1 安装目录及环境变量1.2 设置远程客户端连接和守护进程1.3 启动redis1.4 Hiredis API的使用1.5 我的动态库和头文件 2 Redis的使用2.1 初始化时候2.2 结束的时候 3 测试4 Makefile5 游戏业务总结 1 Redis的安装与API的使用 1.1 安装目录及…

设计模式--开篇

什么是设计模式 设计模式是软件开发过程中面临的通用问题的解决方案。 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 按使用目的分类 创建型–主要用于创建对象 单例模式-某个类只能有一个实例,提供一个全局的访问点工厂方法模式-创建…

Linux系统生成免密码登录,保姆级教程

1、节点规划,我们这里为了简单,就直接采用root账号,生产中,需要创建专门的用户组和用户。 节点名称用户用户组密码ipnode1rootroot123456192.168.42.139node2rootroot123456192.168.42.140node3rootroot123456192.168.42.141 2、…

安卓 车轮视图 WheelView kotlin

安卓 车轮视图 WheelView kotlin 前言一、代码解析1.初始化2.初始化数据3.onMeasure4.onDraw5.onTouchEvent6.其他 6.ItemObject二、完整代码总结 前言 有个需求涉及到类似这个视图,于是在网上找了个轮子,自己改吧改吧用,拿来主义当然后&…

遇到java.security.AccessControlException:access denied怎么办?

今天工作中遇到了如下报错,记录一下解决方案。 目录 问题 分析 结论 问题 这个问题出现在openjdk8启动网页端Java应用。 Java Exception:java.security.AccessControlException:access denied("java.net.SocketPermission""22.188.130.11:9000…

React进阶之路(一)-- JSX基础、组件基础

文章目录 React介绍React开发环境搭建项目目录说明以及相关调整 JSX基础JSX介绍JSX中使用js表达式JSX列表渲染JSX条件渲染JSX样式处理JSX注意事项 组件基础组件的概念函数组件类组件事件绑定如何绑定事件获取事件对象传递额外参数 组件状态状态不可变表单处理受控表单组件非受控…

震裕转债上市价格预测

震裕转债-123228 基本信息 转债名称:震裕转债,评级:AA-,发行规模:11.95亿元。 正股名称:震裕科技,今日收盘价:58.85元,转股价格:61.57元。 当前转股价值 转债…