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

【LLM】位置编码

【LLM】位置编码

1 绝对位置嵌入

绝对位置嵌入是将每个位置独立编码为一个固定向量,并添加到对应的词嵌入中,使模型能够感知单词在序列中的绝对位置。其公式为:
f t : t ∈ { q , k , v } ( x i , i ) : = W t : t ∈ { q , k , v } ( x i + p i ) f_{t: t \in \{q, k, v\}}\left(x_i, i\right) := W_{t: t \in \{q, k, v\}}\left(x_i + p_i\right) ft:t{q,k,v}(xi,i):=Wt:t{q,k,v}(xi+pi)

其中, p i ∈ R d p_i\in\mathbb{R}^d piRd是依赖于token x i x_i xi所在位置的 d 维向量。例如,Vaswani 等人提出使用正弦函数生成 p i p_i pi
{ p i , 2 t = sin ⁡ ( p o s / 1000 0 2 t / d ) p i , 2 t + 1 = cos ⁡ ( p o s / 1000 0 2 t / d ) \begin{cases} p_{i, 2t} = \sin\left( pos / 10000^{2t / d} \right) \\ p_{i, 2t + 1} = \cos\left( pos / 10000^{2t / d} \right) \end{cases} {pi,2t=sin(pos/100002t/d)pi,2t+1=cos(pos/100002t/d)

式中, pos表示 x i x_i xi在序列中的绝对位置。 p i , 2 t p_{i, 2t} pi,2t 是d维向量 p i p_i pi 的第 2 t 2t 2t 个元素。

为什么用 1000 0 2 t d 10000^{\frac{2t}{d}} 10000d2t?

核心是让不同维度的位置编码有不同的 “频率”,模拟人类对 “绝对位置 + 相对距离” 的感知:
在这里插入图片描述
这种设计能让模型通过三角函数的相位差,隐式学习到 “相对位置”(比如词 A 和词 B 隔 5 个词,它们的位置编码在各维度的正弦 / 余弦值差异,会和 “隔 5 个词” 的模式对应 ),同时用固定公式避免了可学习位置编码的参数开销。

2 相对位置嵌入

传统绝对位置编码给每个位置分配固定编码,难以灵活体现元素间相对关系(比如长序列里 “词 A 与词 B 相隔多远” 的信息)。相对位置编码的目标,是让模型感知 “元素间相对距离” 对语义的影响—— 比如句子里 “苹果” 和 “吃”,不管它们在序列中绝对位置多靠后,“相邻” 或 “间隔 1 个词” 的相对关系,会让注意力权重、语义关联有差异.

在这里插入图片描述

2.1 Shaw等人的方法(2018)

核心思想:对键(Key)和值(Value)添加可训练的相对位置嵌入,并对超出一定范围的相对距离进行截断。

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

2.2 Dai等人的方法(2019)

核心思想:分解查询(Query)与键(Key)的内积,将绝对位置嵌入替换为正弦编码的相对位置嵌入。

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

2.3 Raffel 等人的方法(2020)

核心思想:简化内积为内容项与可训练偏置项的和。

在这里插入图片描述

2.4 He 等人的方法(2020)

核心思想:完全用相对位置嵌入替代绝对位置嵌入,强调相对位置的建模。

在这里插入图片描述

2.4 RoPE(2023)

Rotary position embedding(RoPE)是一种在 Transformer 架构中用于编码位置信息的方法,其核心是利用旋转矩阵对绝对位置进行编码,并在自注意力机制中融入相对位置依赖关系。具体做法如下:

在这里插入图片描述
在这里插入图片描述
我们可以进一步将 f { q , k } f_{\{q,k\}} f{q,k}写成乘法矩阵形式

在这里插入图片描述
具体来说,融入相对位置嵌入的方式非常直接:只需将仿射变换后的词嵌入向量按其位置索引的角度倍数进行旋转,这正是RoPE背后的核心思想。

在这里插入图片描述

为了将我们在二维情况下的结果推广到任意 x i ∈ R d x_i\in\mathbb{R}^d xiRd(其中 d 为偶数)的情形,我们将 d 维空间划分为 d/2 个子空间,并利用内积的线性性质将它们组合起来,使 f { q , k } f_{\{q,k\}} f{q,k}变为

在这里插入图片描述

将我们的 RoPE 应用于 q T k q^Tk qTk的自注意力机制中
在这里插入图片描述
其中
在这里插入图片描述

**与先前工作(即2.1-2.3节)中采用的加法性质位置嵌入方法不同,我们的方法是乘法性质的。**此外,当将 RoPE 应用于自注意力机制时,它通过旋转矩阵乘积自然地融入相对位置信息,而不是在加法位置编码的展开式中修改项。

不过以上的计算方式并非高效。
在这里插入图片描述

遵循Vaswani[2017]的做法,,可以证明RoPE具有长期衰减性,即相对距离较远的一对 tokens 之间的关联应当更弱。
在这里插入图片描述

http://www.lqws.cn/news/528211.html

相关文章:

  • vscode 回退代码版本
  • SQL变量声明与赋值 分支 循环
  • 信创国产化替代中的开发语言选择分析
  • 4.2_1朴素模式匹配算法
  • 6月份最新代发考试战报:思科华为HCIP HCSE 考试通过
  • Java四种拷贝方式总结!一文扫清所有拷贝问题
  • npm run dev报错
  • 软件安装——下载安装ollama
  • leetcode 65
  • Autosar方法论
  • 力扣2311:小于等于K的最长二进制子序列
  • 【TIDB】了解,MySQL和TiDB的取舍,差异
  • postman设置接口关联,实现参数化
  • kotlin中::class.java的意义
  • Redis 为什么选用跳跃表,而不是红黑树
  • PHP基础2(流程控制,函数)
  • 【机器学习深度学习】交互式线性回归 demo
  • C语言再出发:2025年AI时代的关键语言
  • notepad++ 怎么快速给 python (nginx、shell) 文件加 # 注释
  • VUE3入门很简单(3)--- watch
  • MR30分布式 IO在物流堆垛机的应用
  • 解锁AI无限潜能!景联文科技数据产品矩阵再升级:多语言题库、海量语料、垂域代码库,全面赋能大模型训练
  • 力扣第45题-跳跃游戏2
  • 【智能记录系统Blinko】从0到1搭建个人云端笔记本:Blinko+Docker环境配置
  • JVM OutOfMemoryError原因及排查解决方案
  • java解决超大二维矩阵数组引起的内存占用过大问题
  • 深入解析synchronized实现原理
  • 【2-入门与调试设置】1.坐标辅助器与轨道控制器
  • 英特尔汽车业务败走中国,喊出“All in”才过两个月
  • 观测云产品更新 | 外部数据源、日志、监控、事件、基础设施等