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,能捕捉更复杂的特征模式,提升模型表达能力。

相关推荐
拜小白9 小时前
【论文解读】DMH-Net:用深度曼哈顿霍夫变换从全景立方图估计3D房间布局
深度学习·计算机视觉·全景图
ViperL111 小时前
[智能计算]AutoDiffusion-基于进化NAS的扩散模型
人工智能·深度学习·计算机视觉
薛定e的猫咪12 小时前
(ICLR 2020)MAML 靠的不是快速学习,而是特征复用
人工智能·深度学习·学习·算法·机器学习
薛定e的猫咪13 小时前
(ICLR 2026)DF-META:面向 FJSP 的无导数元学习实例自适应调度
人工智能·深度学习·学习·算法·机器学习
tellmewhoisi13 小时前
深度学习1:基本概念,感知机,激活函数(阶跃,sigmoid,Tanh函数)
人工智能·深度学习
云舜言传15 小时前
Bloom 手势演示操作 · 录屏指南
javascript·深度学习·机器学习
jay神16 小时前
基于 YOLOv8 与 Faster R-CNN 的盲道障碍检测系统
人工智能·深度学习·yolo·计算机视觉·cnn·课程设计·计算机毕业设计
打不了嗝 ᥬ᭄17 小时前
Swin Transformer 详解:窗口注意力如何成为新一代视觉 backbone
深度学习·计算机视觉·自注意力机制·swintransformer
落雪snowflake17 小时前
论文精讲:A Language-Informed Loss for Visual Generation中文题目:一种面向视觉生成的语言信息引导损失函数
人工智能·深度学习·计算机视觉
葫三生17 小时前
关于三生原理系列被技术开发社区批量收录或引发策展边界讨论的一种思考
大数据·人工智能·深度学习·算法·机器学习·数据挖掘·开源