关于位置编码,我感觉应该我需要知道点啥?
-
0、需要知道什么知识?
-
multi head atten 计算
-
复数的常识
-
1、embedding 是什么?
-
position embedding常识、概念,没有会怎样?
-
交换token位置,没有PE的话,atten怎么变化?
-
2、PE如何实现?需要什么特性?
-
sin, cos 频率、周期、波长、如何转换?
-
为什么这么设计?是如何演进的?
-
三角位置编码有哪些重要特性?代码如何实现?
-
3、绝对位置编码&相对位置编码的 定义与分类
-
绝对位置编码
-
相对位置编码
-
ROPE原理推导、外推长度?
-
4、ROPE的具体实现代码
-
实现方式1
-
实现方式2
什么是position_encoding:
Positional encoding 是在 transformer 模型中用于表示单词位置信息的一种技术。它的主要作用有:
-
在 transformer 模型中,由于attention机制是并行计算的,输入的词向量不包含顺序信息,需要positional encoding来表示单词位置。
-
让模型学习单词之间的相对位置关系,从而明确上下文语义。
-
允许模型学习词序信息,判断词语顺序是否重要。比如"little boy"和"boy little"在语义上是不同的。
-
通过在词向量中加入位置信息,可以帮助注意力机制学习句子中单词的相关程度。位置邻近的单词更可能有关联。
-
Positional encoding一般通过在词向量中加入正弦曲线来实现。通过不同频率的正弦曲线来表示词语的相对位置。
-
Positional encoding使得模型对词序变化更加鲁棒,能处理词序调整后的句子。
总之,Positional encoding为transformer模型提供了顺序信息,是实现transformer表征能力的重要组成部分。它让模型明确单词顺序和上下文关系,从而更好地理解语义。
参考链接:
1、十分钟读懂旋转编码(RoPE)
2、RoPE引起的长度外推思考
3、六种位置编码的代码实现及性能实验
4、图解Transformer系列一:Positional Encoding(位置编码)
5、Transformer中的位置编码(Position Encoding)
6、【OpenLLM 009】大模型基础组件之位置编码-万字长文全面解读LLM中的位置编码与长度外推性(上)
7、开源LLM大模型位置编码探索
文章首发在“小晨的AI工作室”
因为无法上传高清大图,请公众号回复“rope”进行下载原图。