输入“/”快速插入内容

LLM细节盘点(2):位置编码

2024年7月25日修改
作者:咸鱼王
01 概览
目前一些主流开源模型所使用的位置编码如下表,可以看出:
1.
RoPE已经成为LLM的标配;
2.
随着数据质量、数量及训练最大长度的增加,RoPE的 base base 也逐渐从早期的经典配置 104 10^4 ,普遍增加至 106 10^6 的数量级,以获得更好的长文本处理能力;
3.
外推方法从早期的PI,逐渐演变成NTK系列(Yi/chatglm3-4)和YARN(DeepSeek-v2、Qwen2-128K)。
位置编码
Model
Version
base
Alibi
Baichuan
7B-base/chat
13B-base/chat
Baichuan2
13B-base/chat/V2
RoPE
Baichuan2
7B-base/chat
10,000
LLaMA
7B/13B/30B/65B
10,000
LLaMA2
7B-base/chat
13B-base/chat
70B-base/chat
10,000
LLaMA3
8B-base/chat
70B-base/chat
500,000
chatglm
6B-chat
10,000
chatglm2
6B-chat
10,000
6B-32K
10,000(PI外推/16)
chatglm3
6B-base/chat
10,000
6B-32K
500,000(NTK)
6B-128K
5,000,000(NTK)
glm4
9B-base
10,000
9B-chat
5,000,000(NTK)
9B-1M
100,000,000(NTK)
Yi
9B-base/chat
10,000
6B-base/chat 34B-chat
5,000,000(NTK)
9B-200K 34B-200K
10,000,000(NTK)
Yi-1.5
6B-base/chat
9B-base/chat/16K/32K
34B-base/chat/16K/32K
5,000,000
Qwen
1.8B-base/chat
7B-base/chat
14B-base/chat
10,000
72B-base/chat
1,000,000
Qwen1.5
0.5B-base/chat
1.8B-base/chat
7B-base/chat
14B-base/chat
32B-base/chat
72B-base/chat
110B-base/chat
A2.7B-base/chat
1,000,000
4B-base/chat
5,000,000
Qwen2
0.5B-base/chat
1.5B-base/chat
7B-base/chat
72B-base/chat
57B-A14B-base/chat
1,000,000
DeepSeek-llm
7B-base/chat
67B-base/chat
10,000
DeepSeek-moe
base/chat
10,000
DeepSeek-V2
base/chat
400,000(YARN)
本文将简要介绍Alibi及RoPE两种算法,并重点针对RoPE的特性、外推方法、 base 选择做进一步分析。
02 Alibi
作为位置编码及外推的经典之作,Alibi的思路非常简洁朴素、易于实现([1])
(2.1)𝑞𝑚𝑇𝑘𝑛−𝜆|𝑚−𝑛|然而Alibi并不能算作严格意义上的位置编码:首先位置 |𝑚−𝑛| 只能感知距离、无法辨别方向,是结合了单向语言模型的因果mask才具备较准确的位置识别能力(实际上单向语言模型不加位置编码也能有不错的效果)。其次Alibi以mask的形式叠加, ⟨𝑞,𝑘⟩ 本质仍是位置不敏感的运算。但是由于多层结构的传递、及其提供的远程衰减特性,Alibi仍然是一个行之有效的方案。