Llama 模型架构解析:从 Pre-RMSNorm 到 GQA 的技术演进

前言

Llama(Large Language Model Meta AI)是由 Meta AI 团队研发的一系列开源大语言模型。与许多闭源商业模型(如 GPT 系列)不同,Llama 系列在发布时提供了模型权重和训练细节(尽管早期版本有使用限制),使得研究人员、企业和个人开发者都能在其基础上进行微调、部署和创新。

架构

Llama的架构整体上遵循了Transformer的Decoder-only设计,这与GPT系列类似。然而,它在一些关键组件上进行了重要的改进和优化。

以下是Llama模型架构的核心组成部分:

Pre-RMSNorm

Llama采用了**前置层归一化(Pre-Layer Normalization)**策略,即在每个子层(自注意力层或前馈网络)之前 进行归一化。同时,它使用了一种更高效的归一化方法------RMSNorm,来代替传统的LayerNorm。

  • 前置层归一化:将归一化层(如LayerNorm)放在子层(自注意力层或前馈网络)之前,而非传统后置归一化(Post-normalization)的输出后。这种策略能缓解梯度消失或爆炸问题,提升深层网络稳定性。

  • RMSNorm :一种轻量级归一化方法,仅通过输入特征的均方根(Root Mean Square, RMS)进行缩放,省略均值计算,提升了计算效率。公式如下:
    RMSNorm(x)=γ⊙xRMS(x)+ϵ \text{RMSNorm}(\mathbf{x}) = \gamma \odot \frac{\mathbf{x}}{\text{RMS}(\mathbf{x})+ \epsilon} RMSNorm(x)=γ⊙RMS(x)+ϵx

    其中:

    • RMS(x)=1d∑i=1dxi2\text{RMS}(\mathbf{x}) = \sqrt{\frac{1}{d}\sum_{i=1}^{d}x_i^2}RMS(x)=d1∑i=1dxi2 (输入向量的均方根)。
    • γ\gammaγ 为可学习参数向量。
    • ⊙\odot⊙ 表示逐元素相乘。

位置编码:旋转位置编码(RoPE)

  • LLaMA 没有使用原始 Transformer 中的绝对位置编码或可学习的位置嵌入。
  • 而是采用 RoPE,将 token 的绝对位置信息编码为旋转矩阵,并在计算注意力分数时以相对位置的方式作用于查询和键向量,从而有效建模长距离依赖。

分组查询注意力 (Grouped-Query Attention,GQA)

从 Llama 2 开始,模型引入了 GQA 来优化推理性能。GQA 通过将查询头分为若干组,每组内的所有查询头共享同一对键头和值头,实现计算量与模型质量的折中。具体而言:

  • MHA(多头注意力):每个查询头独立计算键值,捕捉丰富的语义信息,但参数量和计算成本过高。
  • MQA(多查询注意力):所有查询头共享同一套键值矩阵,显著提升推理速度,但因过度简化导致精度损失。
  • GQA(分组查询注意力):介于两者之间,通过分组共享键值,既减少计算量,又保留不同头之间的语义多样性。

SwiGLU激活函数

  • 在两层全连接网络中间,使用激活函数 SwiGLU(而非 ReLU 或 GELU)

  • 公式如下:
    SwiGLU(x)=(xW1)⊙Swish(xW2) \text{SwiGLU}(\mathbf{x})=(\mathbf{xW_1})\odot \text{Swish}(\mathbf{x}\mathbf{W_2}) SwiGLU(x)=(xW1)⊙Swish(xW2)

    其中,Swish(x)=x⋅σ(βx)\text{Swish}(\mathbf{x})=x\cdot\sigma(\beta \mathbf{x})Swish(x)=x⋅σ(βx),β\betaβ 为标量,通常为1,σ\sigmaσ 表示 Sigmoid 函数。

  • 优势:相比ReLU,能捕捉更复杂的特征模式,提升模型表达能力。

相关推荐
Lihua奏3 天前
从单核到多核:CPU为什么不能再只靠提频变快
深度学习
拾年2753 天前
大模型的"聪明"从哪来?聊聊 AI 数据集的那些事儿
人工智能·深度学习·机器学习
武子康5 天前
调查研究-200 llama.cpp b9754:一次很小但很关键的 Agent 工具调用修复
人工智能·agent·llama
饼干哥哥7 天前
开源Skills|搭建亚马逊动态关键词库系统,每天抓SSS级机会词
人工智能·深度学习·数据分析
武子康9 天前
调查研究-191 SenseVoice 不只是 ASR:把语音从“转文字“升级成“理解状态“
人工智能·深度学习·openai
武子康10 天前
调查研究-189 Kronos 调研:金融 K 线基础模型,是真突破,还是量化圈的新玩具?
人工智能·深度学习·openai
xiao5kou4chang6kai416 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理
renhongxia116 天前
世界模型作为AGI落地底层底座的作用
人工智能·深度学习·生成对抗网络·自然语言处理·知识图谱·agi
计算机科研狗@OUC16 天前
(cvpr26) AIMDepth: Asymmetric Image-Event Mamba for Monocular Depth Estimation
人工智能·深度学习·计算机视觉
大鱼>16 天前
大语言模型+物联网:LLM理解物理世界
物联网·struts·语言模型·多模态·aiot