LLM常见问题(位置编码部分)-灵析社区

算法无限

1. 什么是位置编码?

位置编码分为绝对位置编码相对位置编码,绝对位置编码就是直接按照函数公式或者可学习参数得到每个 token 的位置编码加到 token 的输入表征上。相对位置编码(Relative Position Embedding,RPE)是在 self-attention 的时候关注当前 token 的时候,其他 token 按照和当前 token 的相对位置编码其位置信息。

2. 什么是绝对位置编码?

绝对位置编码是一种基于位置嵌入的方法,其中每个位置都被分配了一个唯一的位置向量。 这些向量是固定的,与输入序列的内容无关。 这种编码方式对于处理较短的序列效果较好,但在处理长序列时可能会存在问题,因为序列的长度超过了模型能够处理的位置编码的范围。

3. 什么是相对位置编码?

相对位置编码是一种基于相对位置的方法,其中每个位置被编码为一个偏移量,表示该位置与其他位置之间的相对距离。相对位置编码可以通过在输入嵌入中添加额外的信息来实现。这种编码方式可以处理长序列,并且能够在不同的上下文中保持一定的一致性。

4. 旋转位置编码 RoPE 思路是什么?

RoPE 基本思路是通过绝对位置编码的方式,使得模型可以注意到相对位置

5. 旋转位置编码 RoPE 如何计算?

6. 旋转位置编码 RoPE 有什么优点?

旋转编码RoPE 可以有效地保持位置信息的相对关系,即相邻位置的编码之间有一定的相似性,而远离位置的编码之间有一定的差异性。 这样可以增强模型对位置信息的感知和利用。

7. 旋转位置编码 RoPE 被哪些 LLMs 应用?

RoPE 旋转位置编码是苏神提出来的一种相对位置编码,之前主要用在自研的语言模型 roformer 上,后续谷歌 Palm 和 meta 的 LLaMA 等都是采用此位置编码,

8. 什么是长度外推问题?

长度外推性是一个训练和预测的长度不一致的问题。 具体来说,不一致的地方有两点:

  1. 预测的时候用到了没训练过的位置编码(不管绝对还是相对)。
  2. 预测的时候注意力机制所处理的token数量远超训练时的数量。

9. 长度外推问题的解决方法有哪些?

  1. Alibi:这种方法较为粗暴,是直接作用在attention score中,给 attention score 加上一个预设好的偏置矩阵,相当于 q 和 k 相对位置差 1 就加上一个 -1 的偏置。其实相当于假设两个 token 距离越远那么相互贡献也就越低。
  2. KERPLE:该方法主要针对 Alibi 做了一些微小改进,将内积的 bias 由之前自然数值幂函数或指数函数,并且改成可学习参数。
  3. Sandwich:该方法将ALiBi的线性bias改为正弦编码的内积pm*pn,上述编码也是对于正余弦三角式的一种改进。

10. ALiBi (Attention with Linear Biases) 思路是什么?

ALiBi 的做法其实和T5 bias类似,直接给 q*k attention score 加上了一个线性的bias,不给词向量加入位置嵌入向量,而是用一个和query, key之间的距离成比例的一个“惩罚项”来偏置query-key的注意力得分:

11. ALiBi (Attention with Linear Biases) 的偏置矩阵是什么?有什么作用?

相对距离的矩阵,例如 q1, k1 之间的距离是 0,所以对应位置就是 0;q2 和 k1,是相对位置偏移为 k 的索引 1 - q 的索引 2,得到 1 - 2 = -1,就对应到了中间矩阵的取值为 -1 了。该偏置矩阵用于计算两个 token 之间的贡献度。

12. ALiBi (Attention with Linear Biases) 有什么优点?

这种简单的相对位置编码使得模型即使在很长的文本输入序列中也能保持高性能。

13. ALiBi (Attention with Linear Biases) 被哪些 LLMs 应用?

由MosaicML团队开源出来了英文预训练大模型 MPT 以及 BLOOM 都使用了这种编码方法。

阅读量:1507

点赞量:0

收藏量:0