0
点赞
收藏
分享

微信扫一扫

大语言模型学习(二)LlaMA模型架构,什么是LlaMA?


一、LlaMA

1)什么是LlaMA?

LLaMA的全称是Large Language Model Meta AI,直译为“大语言模型元AI”。由于“Llama”在西班牙语中意为“羊驼”,因此社区也将其昵称为羊驼系模型。

LLaMA于2023年2月由Meta AI发布,是该系列的初代模型。随后,Meta AI又相继推出了LLaMA2和LLaMA3等升级版本。

1. 训练数据:LLaMA的训练数据来源于公开数据集,无任何定制数据集,确保了其工作的开源兼容性和可复现性。整个训练数据集在token化之后大约包含1.4T的token。随着版本的迭代,训练数据的规模不断增加,LLaMA3甚至基于超过15万亿个token的数据进行预训练。

2. 模型规模:LLaMA提供了多种规模的版本,包括7B、13B、70B和405B(4050亿)等不同参数量的模型。这些模型可以根据具体的应用场景和计算资源进行选择。

3. 性能优异:LLaMA在多个基准测试上表现出色,甚至能够媲美或超越一些参数量更大的模型。例如,具有130亿参数的LLaMA模型在大多数基准上可以胜过GPT-3(参数量达1750亿)。

大语言模型学习(二)LlaMA模型架构,什么是LlaMA?_学习

2)LlaMA的架构:

LLaMA模型的整体架构与GPT-2等Transformer模型类似,但针对稳定性和性能进行了多项改进。它采用了前置层归一化(Pre-normalization)、RMSNorm归一化函数、SwiGLU激活函数以及旋转位置嵌入(RoPE)等关键技术。**

大语言模型学习(二)LlaMA模型架构,什么是LlaMA?_人工智能_02

1. 前置层归一化(Pre-normalization)

为了提升训练时的稳定性,LLaMA将归一化操作从Transformer子层的输出移到了输入。具体地,第一层归一化被设置在多头注意力层之前,第二层归一化被移动到全连接层之前。同时,残差连接的位置也调整到了多头注意力层与全连接层之后。这种设计有助于减少梯度消失或爆炸的问题,从而提高训练稳定性。

2. RMSNorm归一化函数

LLaMA在归一化过程中使用了RMSNorm(Root Mean Square Layer Normalization),这是一种基于均方根(RMS)的归一化方法。RMSNorm不依赖于均值,而是通过计算特征向量的RMS值来进行归一化。这种方法在计算上更为简洁,且在某些情况下可以提供类似甚至更好的性能。在LLaMA中,RMSNorm还加入了可学习的缩放因子和偏移参数,以进一步提高模型的灵活性。

3. SwiGLU激活函数

LLaMA使用了SwiGLU(Swish-Gated Linear Unit)激活函数,这是Shazeer在文献中提出的一种激活函数,并在PaLM等模型中得到了广泛应用。相较于传统的ReLU函数,SwiGLU在很多评测数据集上表现出了更好的性能。在LLaMA中,全连接层使用了带有SwiGLU激活函数的计算方式,这有助于提升模型的非线性处理能力。

4. 旋转位置嵌入(RoPE)

LLaMA没有使用传统的绝对位置编码(如BERT中的sin/cos位置编码),而是采用了旋转位置嵌入(RoPE)。RoPE借助了复数的思想,通过绝对位置编码的方式实现了相对位置编码的效果。这种方法能够更有效地捕捉序列中的位置信息,从而提升模型在处理序列数据时的性能。

举报

相关推荐

0 条评论