LLaMA,LLaMA-2中的变化
LLaMA
-
预训练Token数量 1.4T
- CommonCrawl,C4:互联网网页
- github:代码
- wikipedia:百科
- books,arxiv:书籍论文
- StackExchange:科学问答
-
pre-norm + RMSNorm
- \(Pre Norm: x_{t+1}=x_t+F(Norm(x_t))\)
- \(Post Norm: x_{t+1}=Norm(x_t+F(x_t))\)
- 关于两者的讨论可以参考 博客
- RMSNorm:计算减少,效果不差
- layernorm:re-scale(方差)+ re-center(均值)
- RMSNorm:re-scale(方差)
-
FFN->SwiGLU
- FFN: $ max(0,xW_1 )W_2 $
- SiLU:$ x*sigmoid(x)$,零点附近梯度较为友好
- SwiGLU: $ (SiLU(xW_{gate}) ⊗ xW_1 )W_2 $
-
RoPE
-
上下文长度2048
- 当拓展到更长文本时,直接外插,外插的部分模型没见过,性能弱于ALiBi,
- 可以用内插值(Chinese-LLaMA做法)
- NTK-Aware Scaled RoPE
- 关于上下文长度的拓展详见我的另一个博客博客
LLaMA-2
- 预训练Token数量 2T
- pre-norm + RMSNorm(layerNorm的简化版)
- FFN->SwiGLU
- RoPE
- 上下文长度4096
- GQA(grouped-query attention)
-
MHA(Multi-head Attention)是标准的多头注意力机制,h个Query、Key 和 Value 矩阵。
-
MQA(Multi-Query Attention,Fast Transformer Decoding: One Write-Head is All You Need)是多查询注意力的一种变体,也是用于自回归解码的一种注意力机制。与MHA不同的是,MQA 让所有的头之间共享同一份 Key 和 Value 矩阵,每个头只单独保留了一份 Query 参数,从而大大减少 Key 和 Value 矩阵的参数量。
-
GQA(Grouped-Query Attention,GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints)是分组查询注意力,GQA将查询头分成G组,每个组共享一个Key 和 Value 矩阵。GQA-G是指具有G组的grouped-query attention。GQA-1具有单个组,因此具有单个Key 和 Value,等效于MQA。而GQA-H具有与头数相等的组,等效于MHA。
-