LLaMa模型是Meta开源的大模型,模型参数从7B到65B不等,LLaMa-7B在大多数基准测试上超过了GPT3-173B,而LLaMa-65B和Chinchilla-70B、PaLM-540B相比也极具竞争力。相比于ChatGPT或者GPT4来说,LLaMa可能效果上还有差距,但相比Closed AI,至少LLaMa论文和模型都开源出来了,目前hugging face已集成了LLaMa的代码实现和开源模型。学术界和工业界都可以在此基础上进行学习和研究。
LLaMa 模型介绍
LLaMa的模型架构使用的是Transformer Decoder结构,但LLaMa在细节上做了一些优化:
1)Pre-normalization
Pre-norm很早就被提出,原生的transformer中使用的是post-norm,也就是在每个子层输出后进行归一化,相比post-norm,pre-norm是在每个子层输入前对输入的数据归一化,pre-norm的训练会更稳定,甚至都可以不需要做warm-up也能很好地训练transformer大模型。除此之外,LLaMa还是用RMSNorm(Root Mean Square Layer Normalization)取代了Layer Norm,RMSNorm是Layer Norm的一种变体,和Layer Norm中减去均值、除以方差的归一化方式不同,RMSNorm是直接除以均方根。
2)SwiGLU激活函数
LLaMa使用SwiGLU激活函数替代了原有的ReLU激活函数。SwiGLU是Swish和GLU两个函数的结合
其中Swish=x⋅sigmoid(βx)Swish=x⋅sigmoid(βx),SwiGLU=Swish(Wx+b