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

LLM笔记(三)位置编码(1)

位置编码理论与应用

1. 位置编码如何解决置换不变性及其数学表现

在Transformer模型中,自注意力机制(Self-Attention)具有置换不变性(permutation invariance),这意味着对输入序列的词元(token)进行任意重排,输出的内容本质上保持不变(或仅是行的重排),导致模型无法感知词元的顺序。为了解决这一问题,**位置编码(Positional Encoding)**通过将位置信息融入输入序列,打破这种不变性,使模型能够区分词元的相对或绝对位置。


1.1 置换不变性的数学表现

置换不变性是自注意力机制无法捕捉位置信息的核心原因。让我们从数学角度分析:

  • 自注意力机制的计算

    • 输入序列为 X = [ x 1 , x 2 , … , x n ] X = [x_1, x_2, \dots, x_n] X=[x1,x2,,xn],其中 x i ∈ R d x_i \in \mathbb{R}^d xiRd 是第 i i i 个词元的嵌入向量。
    • 通过线性变换生成查询(Query)、键(Key)和值(Value): Q = X W Q , K = X W K , V = X W V Q = X W_Q, \quad K = X W_K, \quad V = X W_V Q=XWQ,K=XWK,V=XWV 其中 W Q , W K , W V W_Q, W_K, W_V WQ,WK,WV 是可学习的权重矩阵。
    • 注意力权重为: A = softmax ( Q K T d k ) A = \text{softmax}\left( \frac{Q K^T}{\sqrt{d_k}} \right) A=softmax(dk QKT) 输出为: Attention ( Q , K , V ) = A V \text{Attention}(Q, K, V) = A V Attention(Q,K,V)=AV
  • 置换操作的影响

    • 假设对输入 X X X 应用置换矩阵 P P P(一个重排行的矩阵),置换后的输入为 X ′ = P X X' = P X X=PX
    • 置换后的查询、键和值变为: Q ′ = P Q , K ′ = P K , V ′ = P V Q' = P Q, \quad K' = P K, \quad V' = P V Q=PQ,K=PK,V=PV
    • 注意力权重变为: A ′ = softmax ( Q ′ ( K ′ ) T d k ) = softmax ( P Q K T P T d k ) = P A P T A' = \text{softmax}\left( \frac{Q' (K')^T}{\sqrt{d_k}} \right) = \text{softmax}\left( \frac{P Q K^T P^T}{\sqrt{d_k}} \right) = P A P^T A=softmax(dk Q(K)T)=softmax(dk PQKTPT)=PAPT
    • 输出为: Attention ( Q ′ , K ′ , V ′ ) = A ′ V ′ = P A P T P V = P A V \text{Attention}(Q', K', V') = A' V' = P A P^T P V = P A V Attention(Q,K,V)=AV=PAPTPV=PAV
    • 结果表明,置换后的输出 P A V P A V PAV 是原始输出 A V A V AV 的行重排,内容本质不变(即集合意义上等价)。这意味着自注意力机制无法区分 X X X X ′ X' X 的顺序,仅依赖词元的内容。

1.2 位置编码如何解决置换不变性

位置编码通过将位置信息融入输入序列,打破置换不变性,使模型能够感知词元的位置。常见的实现方式有两种:绝对位置编码相对位置编码

1.2.1 绝对位置编码
  • 原理
    • 为每个位置 m m m 分配一个独特的位置编码向量 p m p_m pm,将其加到对应的词元嵌入 x m x_m xm 上: x m ′ = x m + p m x_m' = x_m + p_m xm=xm+pm 输入序列变为: X new = [ x 1 + p 1 , x 2 + p 2 , … , x n + p n ] X_{\text{new}} = [x_1 + p_1, x_2 + p_2, \dots, x_n + p_n] Xnew=[x1+p1,x2+p2,,xn+pn]
  • 数学表现
    • 若对 X new X_{\text{new}} Xnew 应用置换矩阵 P P P,置换后的输入为: X new ′ = P X new = P ( X + P pos ) X_{\text{new}}' = P X_{\text{new}} = P (X + P_{\text{pos}}) Xnew=PXnew=P(X+Ppos) 其中 P pos = [ p 1 , p 2 , … , p n ] P_{\text{pos}} = [p_1, p_2, \dots, p_n] Ppos=[p1,p2,,pn]
    • 因为 p m p_m pm 与位置绑定,置换后位置编码也会重排(如 P P pos P P_{\text{pos}} PPpos),导致 X new ′ ≠ X new X_{\text{new}}' \neq X_{\text{new}} Xnew=Xnew。这使得注意力计算的结果不再仅仅是行的重排,模型能够感知位置差异。
  • 例子
    • 三角函数位置编码(原Transformer): P E ( pos , 2 i ) = sin ⁡ ( pos 1000 0 2 i / d ) , P E ( pos , 2 i + 1 ) = cos ⁡ ( pos 1000 0 2 i / d ) PE(\text{pos}, 2i) = \sin\left(\frac{\text{pos}}{10000^{2i / d}}\right), \quad PE(\text{pos}, 2i+1) = \cos\left(\frac{\text{pos}}{10000^{2i / d}}\right) PE(pos,2i)=sin(100002i/dpos),PE(pos,2i+1)=cos(100002i/dpos) 不同位置的编码向量具有独特的频率模式。
  • 效果
    • 通过为每个词元添加位置标识,打破了置换不变性,模型可以区分不同位置的词元。
1.2.2 相对位置编码
  • 原理
    • 直接在注意力机制中引入词元间的相对位置信息,通常通过修改注意力权重的计算方式。例如,在注意力分数中加入与相对位置 i − j i - j ij 相关的偏置项。
  • 数学表现
    • 修改注意力分数计算: a i j = q i T k j + q i T R i − j a_{ij} = q_i^T k_j + q_i^T R_{i-j} aij=qiTkj+qiTRij 其中 R i − j R_{i-j} Rij 是相对位置 i − j i - j ij 的编码向量。
    • 置换输入后,相对位置 i − j i - j ij 会随之改变,导致注意力权重 A A A 的计算结果不同,输出不再是简单重排。
  • 例子
    • Transformer-XL a i j = q i T k j + q i T R i − j + u T k j + v T R i − j a_{ij} = q_i^T k_j + q_i^T R_{i-j} + u^T k_j + v^T R_{i-j} aij=qiTkj+qiTRij+uTkj+vTRij R i − j R_{i-j} Rij 使用正弦余弦函数生成,依赖相对距离。
  • 效果
    • 相对位置编码直接捕捉词元间的相对距离或顺序,使模型对位置变化敏感。

1.3 数学分析:Taylor展开的视角

在Transformer模型中,位置编码(Positional Encoding)是解决自注意力机制无法捕捉词元顺序的关键机制。通过将模型输出函数 f ( X ) f(X) f(X) 在加入位置编码后的输入 X + P pos X+P_{\text{pos}} X+Ppos 处进行Taylor展开,我们可以从数学视角深入理解位置编码如何引入绝对位置信息相对位置信息

f ~ ( X + P pos ) ≈ f ( X ) + p m T ∂ f ∂ x m + p n T ∂ f ∂ x n + p m T ∂ 2 f ∂ x m 2 p m + p n T ∂ 2 f ∂ x n 2 p n + p m T ∂ 2 f ∂ x m ∂ x n p n \tilde{f}(X + P_{\text{pos}}) \approx f(X) + p_m^T \frac{\partial f}{\partial x_m} + p_n^T \frac{\partial f}{\partial x_n} + p_m^T \frac{\partial^2 f}{\partial x_m^2} p_m + p_n^T \frac{\partial^2 f}{\partial x_n^2} p_n + p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n f~(X+Ppos)f(X)+pmTxmf+pnTxnf+pmTxm22fpm+pnTxn22fpn+pmTxmxn2fpn

其中:

  • X X X 是输入序列的词元嵌入矩阵, x m x_m xm x n x_n xn 是位置 m m m n n n 的词元嵌入向量。

  • P pos P_{\text{pos}} Ppos 是位置编码矩阵, p m p_m pm p n p_n pn 是位置 m m m n n n 的位置编码向量。

  • f ( X ) f(X) f(X) 是模型输出函数, f ~ ( X + P pos ) \tilde{f}(X + P_{\text{pos}}) f~(X+Ppos) 是加入位置编码后的输出。

展开式中的项可以分为两类:绝对位置信息(前四项)和相对位置信息(最后一项)。下面,我们将更深入地分析这些项的含义,并通过具体例子阐释其作用。

1.3.1 绝对位置信息

绝对位置信息由以下四项表示:

  • p m T ∂ f ∂ x m p_m^T \frac{\partial f}{\partial x_m} pmTxmf p n T ∂ f ∂ x n p_n^T \frac{\partial f}{\partial x_n} pnTxnf(一阶项)

  • p m T ∂ 2 f ∂ x m 2 p m p_m^T \frac{\partial^2 f}{\partial x_m^2} p_m pmTxm22fpm p n T ∂ 2 f ∂ x n 2 p n p_n^T \frac{\partial^2 f}{\partial x_n^2} p_n pnTxn22fpn(二阶单位置项)

数学含义
  • 一阶项

    • ∂ f ∂ x m \frac{\partial f}{\partial x_m} xmf 是模型输出 f f f 对位置 m m m 的词元嵌入 x m x_m xm 的梯度,表示输出对该词元的线性敏感度。

    • p m T ∂ f ∂ x m p_m^T \frac{\partial f}{\partial x_m} pmTxmf 是位置编码向量 p m p_m pm 与梯度的点积,反映了位置 m m m 的编码对输出的直接调整。

    • 这类似于为每个位置的词元添加一个独立的"位置偏移",使模型感知到"这个词元在位置 m m m"。

  • 二阶单位置项

    • ∂ 2 f ∂ x m 2 \frac{\partial^2 f}{\partial x_m^2} xm22f 是模型输出的二阶导数,表示输出对 x m x_m xm 的非线性影响(曲率)。

    • p m T ∂ 2 f ∂ x m 2 p m p_m^T \frac{\partial^2 f}{\partial x_m^2} p_m pmTxm22fpm 是位置编码 p m p_m pm 通过二阶导数对输出的调整,增强了对单一位置的建模。

    • 这可以看作是对位置 m m m 的"深度调整",进一步强调其绝对位置特性。

特点
  • 这些项仅依赖单一位置的编码( p m p_m pm p n p_n pn),不涉及其他位置的交互,因此反映了绝对位置信息

  • 它们为每个词元提供了一个独立的位置标识,使模型能够区分不同位置的词元。

例子
  • 场景:考虑一个简单的语言模型,输入序列为"猫追狗"(位置 m = 1 , n = 2 , k = 3 m=1, n=2, k=3 m=1,n=2,k=3),词嵌入分别为 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3,位置编码为 p 1 , p 2 , p 3 p_1, p_2, p_3 p1,p2,p3(如三角函数编码)。

  • 绝对位置作用

    • p 1 T ∂ f ∂ x 1 p_1^T \frac{\partial f}{\partial x_1} p1Tx1f 调整"猫"(位置1)的输出贡献,可能使模型更关注句首词。

    • p 2 T ∂ 2 f ∂ x 2 2 p 2 p_2^T \frac{\partial^2 f}{\partial x_2^2} p_2 p2Tx222fp2 增强"追"(位置2)的非线性影响,强调动词的独立作用。

  • 实际效果:模型通过这些项区分"猫"在位置1和"狗"在位置3,即使内容相同,也能感知顺序差异。

与绝对位置编码的关系
  • 绝对位置编码(如三角函数编码或可训练编码)主要通过这些单位置项起作用。它们为每个位置赋予独特标识(如 p m p_m pm),使模型在输入层感知绝对位置。
1.3.2 相对位置信息

相对位置信息由最后一项表示:

  • p m T ∂ 2 f ∂ x m ∂ x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmTxmxn2fpn(二阶交互项)
数学含义
  • ∂ 2 f ∂ x m ∂ x n \frac{\partial^2 f}{\partial x_m \partial x_n} xmxn2f 是模型输出对位置 m m m n n n 的词元嵌入 x m x_m xm x n x_n xn 的混合二阶导数,表示两位置之间的相互影响。

  • p m T ∂ 2 f ∂ x m ∂ x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmTxmxn2fpn 是位置编码 p m p_m pm p n p_n pn 与混合导数的交互,反映了位置 m m m n n n 的联合效应。

  • 这项捕捉了相对位置信息,因为它依赖于 p m p_m pm p n p_n pn 之间的关系,通常与两位置的相对距离或顺序相关。

特点
  • 与绝对位置项不同,这一项涉及两个位置的交互,体现了位置之间的相对关系。

  • 在自注意力机制中,这对应于词元对(如 m m m n n n)的注意力权重如何受相对位置影响。

例子
  • 场景:继续使用"猫追狗",假设 m = 1 m=1 m=1(“猫”), n = 2 n=2 n=2(“追”)。

  • 相对位置作用

    • p 1 T ∂ 2 f ∂ x 1 ∂ x 2 p 2 p_1^T \frac{\partial^2 f}{\partial x_1 \partial x_2} p_2 p1Tx1x22fp2 表示"猫"和"追"之间的交互效应。

    • 在自注意力中,这可能影响注意力权重 a 12 = softmax ( q 1 T k 2 d k ) a_{12} = \text{softmax}\left( \frac{q_1^T k_2}{\sqrt{d_k}} \right) a12=softmax(dk q1Tk2),使模型更关注主语和动词的邻近关系。

  • 实际效果

    • 如果序列变为"狗追猫",位置 m = 1 m=1 m=1(“狗”)和 n = 2 n=2 n=2(“追”)的相对关系不变,但具体编码 p m p_m pm p n p_n pn 的值不同,交互项随之调整,反映新的顺序。
与相对位置编码的关系
  • 相对位置编码(如Transformer-XL、RoPE)直接通过这种交互项建模位置关系。例如:

    • 在注意力分数中加入相对位置偏置 R m − n R_{m-n} Rmn,使 a m n a_{mn} amn 依赖 m m m n n n 的距离。

    • 这与 p m T ∂ 2 f ∂ x m ∂ x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmTxmxn2fpn 的形式一致,明确捕捉相对位置效应。

1.3.3 更深入的解释
绝对位置信息的作用机制
  • 独立性:单位置项(如 p m T ∂ f ∂ x m p_m^T \frac{\partial f}{\partial x_m} pmTxmf)为每个词元提供独立调整,使模型感知"这是第 m m m 个位置"。

  • Transformer中的体现

    • 输入变为 x m + p m x_m + p_m xm+pm,自注意力计算 q m = ( x m + p m ) W Q q_m = (x_m + p_m) W_Q qm=(xm+pm)WQ,键和值类似。

    • 注意力分数 q m T k n q_m^T k_n qmTkn 包含 p m T W Q W K T x n p_m^T W_Q W_K^T x_n pmTWQWKTxn,独立调整每个位置的贡献。

  • 局限:绝对位置编码需通过模型学习间接推断相对关系,效率较低。

相对位置信息的作用机制
  • 交互性:交互项(如 p m T ∂ 2 f ∂ x m ∂ x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmTxmxn2fpn)直接建模位置 m m m n n n 的关系。

  • Transformer中的体现

    • 在自注意力中, q m T k n = ( x m + p m ) T W Q W K T ( x n + p n ) q_m^T k_n = (x_m + p_m)^T W_Q W_K^T (x_n + p_n) qmTkn=(xm+pm)TWQWKT(xn+pn),展开后包含 p m T W Q W K T p n p_m^T W_Q W_K^T p_n pmTWQWKTpn

    • 这一项依赖 p m p_m pm p n p_n pn 的交互,与相对距离相关,直接影响 a m n a_{mn} amn

  • 优势:相对位置编码更自然地捕捉语言中的相对顺序,如动词和宾语的距离。

结合实例
  • 绝对位置编码

    • 三角函数编码为位置1(“猫”)生成 p 1 = [ sin ⁡ ( 1 / 1000 0 2 i / d ) , cos ⁡ ( 1 / 1000 0 2 i / d ) ] p_1 = [\sin(1/10000^{2i/d}), \cos(1/10000^{2i/d})] p1=[sin(1/100002i/d),cos(1/100002i/d)],独立标识其位置。

    • 模型通过 p 1 T ∂ f ∂ x 1 p_1^T \frac{\partial f}{\partial x_1} p1Tx1f 调整"猫"的权重。

  • 相对位置编码

    • Transformer-XL中, p 1 T W Q W K T p 2 p_1^T W_Q W_K^T p_2 p1TWQWKTp2 表示"猫"和"追"的相对位置效应,调整注意力权重。

    • 若距离为1(如邻近),交互项增强关联;若距离变大,效应减弱。

1.3.4 总结与意义
  • 绝对位置信息

    • 通过单位置项(如 p m T ∂ f ∂ x m p_m^T \frac{\partial f}{\partial x_m} pmTxmf)为每个词元提供独立标识。

    • 对应绝对位置编码(如三角函数编码),在输入层打破置换不变性。

    • 示例:区分"猫"在位置1和"狗"在位置3。

  • 相对位置信息

    • 通过交互项(如 p m T ∂ 2 f ∂ x m ∂ x n p n p_m^T \frac{\partial^2 f}{\partial x_m \partial x_n} p_n pmTxmxn2fpn)捕捉位置间关系。

    • 对应相对位置编码(如RoPE),直接调整注意力权重。

    • 示例:增强"猫"和"追"的邻近关系。

  • 综合效果

    • 绝对位置编码奠定基础,相对位置编码优化关系建模,二者共同使Transformer感知顺序,适应复杂语言任务。

1.4 所有位置编码都是为了解决置换不变性吗?

位置编码的主要目的是解决置换不变性,但并非其唯一作用。不同的位置编码方法在实现这一目标的同时,还可能带来其他效果或改变模型行为:

  • 是的,解决置换不变性是核心目标

    • 无论是绝对位置编码还是相对位置编码,其根本目的是让模型感知词元顺序,打破自注意力的对称性。
    • 例如,三角函数编码、可训练编码、RoPE等都旨在引入位置依赖性。
  • 除此之外的额外作用

    1. 外推性(Extrapolation)
      • 定义:外推性是指模型在处理比训练时见过的序列更长的输入时,依然能够保持良好性能的能力。也就是说,模型能够"外推"到训练数据分布之外的序列长度。
      • 某些位置编码(如三角函数编码、相对位置编码)具有良好的外推性,能处理比训练时更长的序列。可训练位置编码则受限于预定义长度。
    2. 计算效率
      • 绝对位置编码(如可训练编码)增加存储需求,相对位置编码(如RoPE)可能增加注意力计算的开销。
    3. 任务适应性
      • 相对位置编码更适合自然语言处理任务,因为语言中相对顺序通常比绝对位置更重要(如句法关系)。
    4. 模型表达能力
      • 相对位置编码(如Transformer-XL)增强了对长距离依赖的捕捉能力;RoPE结合绝对和相对位置优势,提升线性注意力的性能。
    5. 创新性设计
      • 一些新型位置编码(如递归位置编码FLOATER)不仅解决顺序问题,还通过动态系统建模增强长序列处理能力。

1.5 总结

  • 如何解决置换不变性
    • 位置编码通过引入位置信息打破自注意力的对称性。绝对位置编码为每个词元添加独特标识,相对位置编码直接建模词元间关系。
  • 数学表现
    • 置换不变性体现为 Attention ( P X ) = P ⋅ Attention ( X ) \text{Attention}(P X) = P \cdot \text{Attention}(X) Attention(PX)=PAttention(X)。位置编码使输入或注意力计算依赖位置,置换后结果不再等价。
    • Taylor展开显示其包含绝对位置项和相对位置项。
  • 是否只为置换不变性
    • 核心目标是解决置换不变性,但也带来外推性、效率、适应性等额外改变。

2. 注意力机制的查询与位置向量:理解它们的关系与作用过程

2.1 基础概念回顾

2.1.1 注意力机制的核心组件

注意力机制基于三种向量:查询(Query)向量、键(Key)向量和值(Value)向量。这些向量通过以下方式生成:

  1. 输入嵌入:每个词元首先被转换为嵌入向量 x i x_i xi
  2. 线性变换:通过权重矩阵将嵌入向量投影为查询、键和值
    • 查询向量: q i = x i W Q q_i = x_i W_Q qi=xiWQ
    • 键向量: k i = x i W K k_i = x_i W_K ki=xiWK
    • 值向量: v i = x i W V v_i = x_i W_V vi=xiWV
2.1.2 位置编码的角色

位置编码为每个位置生成一个向量表示,使模型能够理解序列中词元的顺序。基本形式是:

  • 对于位置 p p p,生成位置编码向量 P E ( p ) PE(p) PE(p)
  • 将位置编码加到输入嵌入: x i + P E ( i ) x_i + PE(i) xi+PE(i)

2.2 位置向量与查询向量的关系

现在,让我解释位置向量如何影响查询向量,以及整个注意力计算过程。这里我将采用旋转位置编码(RoPE)作为例子,因为它最直接地展示了位置信息与查询/键向量的交互。

2.2.1 标准注意力机制中的作用过程

在标准的Transformer中(使用加性位置编码,如正弦位置编码),过程如下:

  1. 位置信息融入

    • 将位置编码加到输入嵌入: x ~ i = x i + P E ( i ) \tilde{x}_i = x_i + PE(i) x~i=xi+PE(i)
    • 生成查询向量: q i = x ~ i W Q = ( x i + P E ( i ) ) W Q q_i = \tilde{x}_i W_Q = (x_i + PE(i)) W_Q qi=x~iWQ=(xi+PE(i))WQ
    • 生成键向量: k j = x ~ j W K = ( x j + P E ( j ) ) W K k_j = \tilde{x}_j W_K = (x_j + PE(j)) W_K kj=x~jWK=(xj+PE(j))WK
  2. 注意力计算

    • 计算注意力分数: a i j = q i ⋅ k j d k a_{ij} = \frac{q_i \cdot k_j}{\sqrt{d_k}} aij=dk qikj
    • 应用softmax归一化: α i j = softmax ( a i j ) \alpha_{ij} = \text{softmax}(a_{ij}) αij=softmax(aij)
    • 加权求和值向量: o i = ∑ j α i j v j o_i = \sum_j \alpha_{ij} v_j oi=jαijvj

在这个过程中,位置信息间接地影响了查询和键向量,从而影响注意力分数的计算。

2.2.2 RoPE中的作用过程

在旋转位置编码中,位置信息与查询和键向量的交互更加直接和明确:

  1. 位置旋转应用

    • 生成基础查询向量: q i = x i W Q q_i = x_i W_Q qi=xiWQ
    • 应用位置旋转: q ^ i = R θ , i q i \hat{q}_i = R_{\theta, i} q_i q^i=Rθ,iqi
    • 同样地,对键向量: k ^ j = R θ , j k j \hat{k}_j = R_{\theta, j} k_j k^j=Rθ,jkj

    其中 R θ , p R_{\theta, p} Rθ,p 是基于位置 p p p 的旋转矩阵。

  2. 注意力计算

    • 计算旋转后的注意力分数: a i j = q ^ i ⋅ k ^ j = q i ⋅ R θ , i − j k j a_{ij} = \hat{q}_i \cdot \hat{k}_j = q_i \cdot R_{\theta, i-j} k_j aij=q^ik^j=qiRθ,ijkj
    • 应用softmax归一化: α i j = softmax ( a i j ) \alpha_{ij} = \text{softmax}(a_{ij}) αij=softmax(aij)
    • 加权求和值向量: o i = ∑ j α i j v j o_i = \sum_j \alpha_{ij} v_j oi=jαijvj

注意关键的数学性质: q ^ i ⋅ k ^ j = q i ⋅ R θ , i − j k j \hat{q}_i \cdot \hat{k}_j = q_i \cdot R_{\theta, i-j} k_j q^ik^j=qiRθ,ijkj。这表明旋转后的点积直接编码了相对位置 i − j i-j ij,使模型能够明确感知词元间的相对位置关系。

2.3 详细的作用过程示例

让我通过一个具体例子来说明位置向量和查询向量如何协同工作。假设我们处理一个简单的句子:“人工智能正在快速发展”。

2.3.1 步骤1: 输入处理与位置融合

以RoPE为例,处理流程如下:

  1. 词元嵌入:每个词元转换为嵌入向量

    • “人工” → x 0 x_0 x0
    • “智能” → x 1 x_1 x1
    • “正在” → x 2 x_2 x2
    • “快速” → x 3 x_3 x3
    • “发展” → x 4 x_4 x4
  2. 生成查询和键向量

    • q 0 = x 0 W Q q_0 = x_0 W_Q q0=x0WQ, k 0 = x 0 W K k_0 = x_0 W_K k0=x0WK (位置0)
    • q 1 = x 1 W Q q_1 = x_1 W_Q q1=x1WQ, k 1 = x 1 W K k_1 = x_1 W_K k1=x1WK (位置1)
    • … 以此类推
  3. 应用位置旋转

    • q ^ 0 = R θ , 0 q 0 \hat{q}_0 = R_{\theta, 0} q_0 q^0=Rθ,0q0, k ^ 0 = R θ , 0 k 0 \hat{k}_0 = R_{\theta, 0} k_0 k^0=Rθ,0k0
    • q ^ 1 = R θ , 1 q 1 \hat{q}_1 = R_{\theta, 1} q_1 q^1=Rθ,1q1, k ^ 1 = R θ , 1 k 1 \hat{k}_1 = R_{\theta, 1} k_1 k^1=Rθ,1k1
    • … 以此类推

在这个过程中,每个查询和键向量都通过位置特定的旋转变换,将位置信息编入向量表示中。

2.3.2 步骤2: 注意力计算

考虑位置2的词元"正在"如何与其他词元交互:

  1. 计算注意力分数:对于每个位置 j j j,计算 a 2 j = q ^ 2 ⋅ k ^ j a_{2j} = \hat{q}_2 \cdot \hat{k}_j a2j=q^2k^j

    • 与"人工"的注意力: a 20 = q ^ 2 ⋅ k ^ 0 = q 2 ⋅ R θ , 2 − 0 k 0 = q 2 ⋅ R θ , 2 k 0 a_{20} = \hat{q}_2 \cdot \hat{k}_0 = q_2 \cdot R_{\theta, 2-0} k_0 = q_2 \cdot R_{\theta, 2} k_0 a20=q^2k^0=q2Rθ,20k0=q2Rθ,2k0
    • 与"智能"的注意力: a 21 = q ^ 2 ⋅ k ^ 1 = q 2 ⋅ R θ , 2 − 1 k 1 = q 2 ⋅ R θ , 1 k 1 a_{21} = \hat{q}_2 \cdot \hat{k}_1 = q_2 \cdot R_{\theta, 2-1} k_1 = q_2 \cdot R_{\theta, 1} k_1 a21=q^2k^1=q2Rθ,21k1=q2Rθ,1k1
    • 与自身的注意力: a 22 = q ^ 2 ⋅ k ^ 2 = q 2 ⋅ R θ , 2 − 2 k 2 = q 2 ⋅ R θ , 0 k 2 = q 2 ⋅ k 2 a_{22} = \hat{q}_2 \cdot \hat{k}_2 = q_2 \cdot R_{\theta, 2-2} k_2 = q_2 \cdot R_{\theta, 0} k_2 = q_2 \cdot k_2 a22=q^2k^2=q2Rθ,22k2=q2Rθ,0k2=q2k2
    • 与"快速"的注意力: a 23 = q ^ 2 ⋅ k ^ 3 = q 2 ⋅ R θ , 2 − 3 k 3 = q 2 ⋅ R θ , − 1 k 3 a_{23} = \hat{q}_2 \cdot \hat{k}_3 = q_2 \cdot R_{\theta, 2-3} k_3 = q_2 \cdot R_{\theta, -1} k_3 a23=q^2k^3=q2Rθ,23k3=q2Rθ,1k3
    • 与"发展"的注意力: a 24 = q ^ 2 ⋅ k ^ 4 = q 2 ⋅ R θ , 2 − 4 k 4 = q 2 ⋅ R θ , − 2 k 4 a_{24} = \hat{q}_2 \cdot \hat{k}_4 = q_2 \cdot R_{\theta, 2-4} k_4 = q_2 \cdot R_{\theta, -2} k_4 a24=q^2k^4=q2Rθ,24k4=q2Rθ,2k4
  2. 应用softmax α 2 j = softmax ( a 2 j ) \alpha_{2j} = \text{softmax}(a_{2j}) α2j=softmax(a2j)

    这将注意力分数归一化为概率分布,表示"正在"对每个位置的关注程度。

  3. 加权聚合值向量 o 2 = ∑ j α 2 j v j o_2 = \sum_j \alpha_{2j} v_j o2=jα2jvj

    这一步合成了与"正在"相关联的信息,同时考虑了位置关系。

2.3.3 关键观察

在上面的例子中,我们可以观察到几个重要特点:

  1. 相对位置的直接编码:注意力分数 a 2 j a_{2j} a2j 直接依赖于相对位置 2 − j 2-j 2j,通过 R θ , 2 − j R_{\theta, 2-j} Rθ,2j 编码。

  2. 自注意力的特殊性:当 i = j i=j i=j 时(词元与自身的注意力),旋转矩阵变为单位矩阵 R θ , 0 R_{\theta, 0} Rθ,0,使得 a i i = q i ⋅ k i a_{ii} = q_i \cdot k_i aii=qiki,这是标准内积。

  3. 前后关系的区分

    • 前面的词元(如"人工"和"智能")通过正相对位置 ( + 2 , + 1 ) (+2, +1) (+2,+1) 编码
    • 后面的词元(如"快速"和"发展")通过负相对位置 ( − 1 , − 2 ) (-1, -2) (1,2) 编码

    这使模型能够区分前后文关系。

2.4 位置向量如何影响注意力分布

位置编码对注意力分布的影响是多方面的,这种影响通过以下机制实现:

2.4.1 相对距离敏感性

在RoPE中,旋转矩阵 R θ , i − j R_{\theta, i-j} Rθ,ij 编码相对距离 i − j i-j ij,这使得模型能够学习距离敏感的注意力模式:

  • 近距离偏好:模型可以学习给予临近词元更高的注意力
  • 语法依赖:捕捉如主谓关系等可能跨越多个位置的结构
  • 长距离关联:识别远距离的相关信息,如代词与其指代对象
2.4.2 方向感知

RoPE的一个关键特性是它能区分正负相对位置,即前文和后文:

  • i > j i > j i>j 时(关注前面的内容),旋转矩阵是 R θ , + ( i − j ) R_{\theta, +(i-j)} Rθ,+(ij)
  • i < j i < j i<j 时(关注后面的内容),旋转矩阵是 R θ , − ( j − i ) R_{\theta, -(j-i)} Rθ,(ji)

这使模型能够学习方向敏感的注意力模式,例如在英语中,形容词通常在名词前面,而在汉语中,形容词的位置可能更灵活。

2.4.3 频率差异化

RoPE使用不同频率的旋转,对应于向量的不同维度:

  • 高频组件(向量的前几对维度)对小的位置变化敏感,有助于捕捉局部结构
  • 低频组件(向量的后几对维度)对大的位置变化敏感,有助于捕捉全局结构

这种多尺度表示使模型能够同时关注局部语法关系和全局文档结构。

2.5 注意力查询和位置向量的共同演化

在训练过程中,注意力机制的查询向量和位置编码不是静态的,而是通过反向传播共同演化:

  1. 查询投影学习:权重矩阵 W Q W_Q WQ 学习如何从输入嵌入生成有效的查询向量

  2. 位置解释学习:模型学习如何解释位置编码提供的位置信息

  3. 位置敏感的内容识别:模型逐渐发展出位置感知的表示,使相同词在不同位置可以有不同的解释

这种共同演化使模型能够形成复杂的注意力模式,例如:

  • 在句子开头关注主语
  • 在动词后关注宾语
  • 在代词处回溯寻找指代对象

2.6 实际应用中的表现

在实际应用中,位置编码与注意力查询的交互表现出丰富的模式:

2.6.1 例子:情感分析任务

考虑句子:“这部电影很无聊,但演员表演精彩”。

在没有位置编码的情况下,模型可能无法区分"无聊"和"精彩"分别修饰什么,导致情感判断混淆。

有了位置编码,注意力查询能够正确关联:

  • “无聊"与"电影”
  • “精彩"与"演员表演”
  • "但"作为转折关系的信号

这种正确的关联是通过位置编码与查询向量的交互实现的。

2.6.2 例子:翻译任务

在翻译英语到中文时,位置编码帮助模型处理两种语言不同的语法结构:

英语:“The red car is parked outside the building.” 中文:“红色的汽车停在建筑物外面。”

位置编码使模型能够学习:

  • 英语中形容词在名词前(“red car”)
  • 英语中使用被动语态的位置结构
  • 中文中表达位置关系的不同方式

这种跨语言的结构映射依赖于位置编码与注意力机制的紧密协作。

参考

更详细的分类和介绍

  1. 苏神科学空间
  2. https://0809zheng.github.io/2022/07/01/posencode.html
  3. Rope解析

相关文章:

LLM笔记(三)位置编码(1)

位置编码理论与应用 1. 位置编码如何解决置换不变性及其数学表现 在Transformer模型中&#xff0c;自注意力机制&#xff08;Self-Attention&#xff09;具有置换不变性&#xff08;permutation invariance&#xff09;&#xff0c;这意味着对输入序列的词元&#xff08;toke…...

麒麟v10 部署 MySQL 5.6.10 完整步骤

需要包的私信我 一、安装依赖&#xff08;Perl环境&#xff09; # 在线安装依赖 yum -y install perl perl-devel# 离线安装&#xff08;需提前下载好rpm包&#xff09; mkdir /data/ybn/soft/pre yum install --downloadonly --downloaddir/data/ybn/soft/pre perl perl-dev…...

Git-学习笔记(粗略版)

前言 很多人都听过git&#xff0c;github这些名词,但是它们是什么&#xff0c;怎么使用&#xff1f;git和github是一个东西吗&#xff1f;本文将详细解答这些问题&#xff0c;彻底弄懂git。 1.Git是啥❓ 有一天&#xff0c;我们的插画师小王接到一个绘画订单&#xff0c;但奈…...

专项智能练习(定义判断)

1. 单选题 热传导是介质内无宏观运动时的传热现象&#xff0c;其在固体、液体和气体中均可发生。但严格而言&#xff0c;只有在固体中才是纯粹的热传导&#xff0c;在流体&#xff08;泛指液体和气体&#xff09;中又是另外一种情况&#xff0c;流体即使处于静止状态&#xff…...

失控的产品

大部分程序员很难有机会做一个新的产品&#xff0c;绝大多时候去一家新公司也都是在旧产品上修修补补。 笔者还是很幸运得到了开发新品的机会&#xff0c;从2023年开始做&#xff0c;中间经历了许多磕磕碰碰。 有的小伙伴从中离开&#xff0c;偶尔又加入1~2个人&#xff0c;但…...

【iOS安全】Dopamine越狱 iPhone X iOS 16.6 (20G75) | 解决Jailbreak failed with error

Dopamine越狱 iPhone X iOS 16.6 (20G75) Dopamine兼容设备 参考&#xff1a;https://www.bilibili.com/opus/977469285985157129 A9 - A11&#xff08;iPhone6s&#xff0d;X&#xff09;&#xff1a;iOS15.0-16.6.1 A12-A14&#xff08;iPhoneXR&#xff0d;12PM&#xf…...

无线定位之 二 SX1302 网关源码 thread_down 线程详解

前言 笔者计划通过无线定位系列文章、系统的描述 TDOA 无线定位和混合定位相关技术知识点, 并以实践来验证此定位系统精度。 笔者从实践出发、本篇直接走读无线定位系统关键节点、网关 SX1302 源码框架,并在源码走读过程 中、着重分析与无线定位相关的PPS时间的来龙去脉、并在…...

对心理幸福感含义的探索 | 幸福就是一切吗?

注&#xff1a;机翻&#xff0c;未校。 Happiness Is Everything, or Is It? Explorations on the Meaning of Psychological Well-Being 幸福就是一切吗&#xff1f;对心理幸福感含义的探索 Journal of Personality and Social Psychology 1989, Vol. 57, No. 6,1069-1081 …...

多平台图标设计与管理的终极解决方案

IconWorkshop Pro 是一款由Axialis团队开发的专业图标设计与制作软件&#xff0c;专注于为设计师、开发者及企业用户提供高效且灵活的图标创作解决方案。该软件凭借其强大的功能与跨平台适配性&#xff0c;成为Windows、macOS、iOS、Android等多系统图标设计的首选工具之一。 …...

ngx_http_keyval_module动态键值管理

一、模块安装与验证 检查模块是否可用 nginx -V 2>&1 | grep --color -o ngx_http_keyval_module如果看到 ngx_http_keyval_module&#xff0c;说明模块已编译进 NGINX。 若未找到&#xff0c;请联系你的 NGINX 供应商&#xff0c;获取商业版或重新编译并启用该模块&am…...

【高频面试题】LRU缓存

文章目录 1 相关前置知识&#xff08;OS&#xff09;2 面试题 16.25. LRU 缓存2.1 题面2.2 示例2.3 解法1 &#xff08;双端队列哈希表&#xff09;思路 2.4 解法2思路 3 参考 1 相关前置知识&#xff08;OS&#xff09; 为什么需要页面置换算法&#xff1a;当进程运行时&…...

讯联云库项目开发日志(二)AOP参数拦截

目录 利用AOP实现参数拦截: 一、​​HTTP请求进入Controller​&#xff08;发送邮件验证码&#xff09; 二、AOP切面触发 1. 切面拦截&#xff08;GlobalOperactionAspect.class&#xff09; method.getAnnotation()​​ null interceptor 判断​​ 2.参数校验注解 3. 参…...

龙虎榜——20250515

上证指数缩量收阴线&#xff0c;个股跌多涨少&#xff0c;上涨波段4月9日以来已有24个交易日&#xff0c;时间周期上处于上涨末端&#xff0c;注意风险。 深证指数缩量收阴线&#xff0c;日线上涨结束的概率在增大&#xff0c;注意风险。 2025年5月15日龙虎榜行业方向分析 一…...

知识图谱重构电商搜索:下一代AI搜索引擎的底层逻辑

1. 搜索引擎的进化论 从雅虎目录式搜索到Google的PageRank算法&#xff0c;搜索引擎经历了三次技术跃迁。而AI搜索引擎正在掀起第四次革命&#xff1a;在电商场景中&#xff0c;传统的「关键词匹配」已无法满足个性化购物需求&#xff0c;MOE搜索等新一代架构开始融合知识图谱…...

python-修改图片背景色

在Python中&#xff0c;可以使用图像处理库&#xff08;如OpenCV或Pillow&#xff09;来修改图片的背景色。通常&#xff0c;修改背景色的流程包括以下步骤&#xff1a; 1、对图片进行分割&#xff0c;识别前景和背景。 2、对背景区域进行颜色替换。 下面是两种实现方法&#x…...

卡洛诗,将高端西餐的冗余价值转化为普惠体验

西餐市场正经历一场结构性变革&#xff0c;一二线城市的高端西餐陷入内卷&#xff0c;而下沉市场却因品质与价格断层陷入选择困境——消费者既不愿为高价西餐的面子溢价买单&#xff0c;又难以忍受快餐式西餐的粗糙体验。这一矛盾催生了万亿级的市场真空地带&#xff0c;萨莉亚…...

【ROS2】ROS节点启动崩溃:rclcpp::exceptions::RCLInvalidArgument

1、问题描述 启动ROS节点时,直接崩溃,打印信息如下: terminate called after throwing an instance of rclcpp::exceptions::RCLInvalidArgumentwhat(): failed to create guard condition: context argument is null, at ./src/rcl/guard_condition.c:65 [ros2run]: Abo…...

Flutter在键盘的上方加一个完成按钮

有些情况下&#xff0c;输入框在输入键盘弹出后&#xff0c; 需要在键盘的上方显示一个toolbar &#xff0c; 然后 toolbar 上面一个完成按钮&#xff0c;点完成按钮把键盘关闭。 如图&#xff1a; 直接上代码&#xff0c;这样写的好处是&#xff0c;把 TextField 给封装了&…...

SQL注入---05--跨站注入

1 权限说明 select * from mysql.user; 这里的Y表示我前面的命令权限为root&#xff0c;n表示不支持root权限 导致结果&#xff1a; 如果为root的话&#xff0c;我就可操作这些命令并且可以进行跨数据库攻击&#xff0c;但是如果不是高权限root就无法执行这些操作 2 root权限…...

Vue 学习随笔系列二十三 -- el-date-picker 组件

el-date-picker 组件 文章目录 el-date-picker 组件el-date-picker 只有某些日期可选 el-date-picker 只有某些日期可选 <template><div><el-form ref"form" size"mini":model"form" :rules"rules"label-width"8…...

【免费分享】虚拟机VM(适用于 Windows)17.6.3

—————【下 载 地 址】——————— 【​本章下载一】&#xff1a;https://drive.uc.cn/s/7c4da5cd2af64 【​本章下载二】&#xff1a;https://pan.xunlei.com/s/VOQDkRRKc5OUVTauZezaiDEHA1?pwdpybg# 【百款黑科技】&#xff1a;https://ucnygalh6wle.feishu.cn/wiki/…...

Oracle中的select1条、几条、指定范围的语句

在Oracle中&#xff0c;可以使用不同的方法来选择一条记录、多条记录或指定范围内的记录。以下是具体的实现方式&#xff1a; 1. 查询单条记录 使用ROWNUM伪列限制结果为1条&#xff1a; SELECT * FROM your_table WHERE ROWNUM 1;特点&#xff1a;Oracle会在结果集生成时分…...

2025 后端自学UNIAPP【项目实战:旅游项目】5、个人中心页面:微信登录,同意授权,获取用户信息

一、框架以及准备工作 1、前端项目文件结构展示 2、后端项目文件结构展示 3、登录微信公众平台&#xff0c;注册一个个人的程序&#xff0c;获取大appid&#xff08;前端后端都需要&#xff09;和密钥&#xff08;后端需要&#xff09; 微信公众平台微信公众平台&…...

校园网规划与设计方案

一、项目概述 校园网是学校实现信息化教学、科研与管理的重要基础设施,其性能与稳定性直接影响学校的整体发展。随着学校规模不断扩大、教学科研活动日益丰富,对校园网的带宽、可靠性、安全性以及智能化管理等方面提出了更高要求。本规划与设计方案旨在构建一个高速、稳定、…...

蓝桥杯算法题 -蛇形矩阵(方向向量)

&#x1f381;个人主页&#xff1a;工藤新一 &#x1f50d;系列专栏&#xff1a;C面向对象&#xff08;类和对象篇&#xff09; &#x1f31f;心中的天空之城&#xff0c;终会照亮我前方的路 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 P…...

配置VScodePython环境Python was not found;

Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases. 候试试重启电脑。 在卸载重装python后会出现难以解决的局面&#xff0c;系统变量&#xff0c;命令行&#…...

ollama 重命名模型

ollama 重命名模型 ollama list# 查看列表 ollama list # 生成原模型的Modelfile文件 ollama show --modelfile qwen3:32b > Modelfile # 从Modelfile文件创建新的模型 ollama create qwen3 -f Modelfile # 删除原模型 ollama rm qwen3:32b...

Qt信号槽机制与UI设计完全指南:从基础原理到实战应用

目录 前言一、信号槽1.1 传参1.2 Qt信号与槽的对应关系1.2.1一对多关系1.2.2 多对一关系 二、Designer三、Layout 布局3.1 基础用法3.2 打破布局3.3 贴合窗口3.4 伸展器&#xff08;Spacer&#xff09;3.5 嵌套布局 四、ui指针五、QWidget六、QLabel 标签使用指南总结 前言 本…...

Anaconda环境中conda与pip命令的区别

文章目录 conda与pip的基本区别在Anaconda环境中的实际差异安装包环境管理依赖解决示例最佳实践建议 常见问题解答 conda与pip的基本区别 包来源与生态系统 conda&#xff1a;从Anaconda默认仓库或conda-forge等渠道获取包 不仅管理Python包&#xff0c;还能管理非Python依赖&…...

XBL6501/02/03在POE设备上的应用方案

前言&#xff1a; 在当今数字化时代&#xff0c;POE&#xff08;Power over Ethernet&#xff09;设备因其能够通过以太网线同时传输数据和电力而被广泛应用。为了满足这些设备日益增长的电源需求&#xff0c;芯伯乐推出了XBL6501/02/03系列DC-DC电源芯片&#xff0c;为POE设备…...