各种位置编码

目录

一、绝对位置编码

[1.1 训练式](#1.1 训练式)

[1.2 三角式](#1.2 三角式)

二、相对位置编码

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

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

[五、T5 Bias Position Embedding](#五、T5 Bias Position Embedding)

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


互联网寻回犬一枚~

一、绝对位置编码

形式上来看,绝对位置编码是相对简单的一种方案,但即便如此,也不妨碍各路研究人员的奇思妙想,也有不少的变种。一般来说,绝对位置编码会加到输入中:在输入的第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由之前自然数值幂函数或指数函数,并且改成可学习参数。

相关推荐
LZXCyrus11 分钟前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
Enougme14 分钟前
Appium常用的使用方法(一)
python·appium
懷淰メ20 分钟前
PyQt飞机大战游戏(附下载地址)
开发语言·python·qt·游戏·pyqt·游戏开发·pyqt5
我感觉。29 分钟前
【机器学习chp4】特征工程
人工智能·机器学习·主成分分析·特征工程
hummhumm34 分钟前
第 22 章 - Go语言 测试与基准测试
java·大数据·开发语言·前端·python·golang·log4j
YRr YRr37 分钟前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络
DieYoung_Alive37 分钟前
一篇文章了解机器学习(下)
人工智能·机器学习
夏沫的梦39 分钟前
生成式AI对产业的影响与冲击
人工智能·aigc
hummhumm1 小时前
第 28 章 - Go语言 Web 开发入门
java·开发语言·前端·python·sql·golang·前端框架
goomind1 小时前
YOLOv8实战木材缺陷识别
人工智能·yolo·目标检测·缺陷检测·pyqt5·木材缺陷识别