当前位置: 首页 > news >正文

大语言模型中的注意力机制详解 - 教程

大语言模型中的注意力机制详解

一、什么是注意力机制?

Transformer 架构的核心就是注意力机制(Attention Mechanism)组成部分,它允许模型在处理信息时动态地关注输入序列中最相关的部分。这种机制极大地提升了模型对长距离依赖关系的理解能力,成为现代大语言模型(LLM)的关键技术之一。

核心公式回顾(Scaled Dot-Product Attention):

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dkQKT)V

其中:


二、常见的注意力机制详解

1. Self-Attention(自注意力)

原理:

Self-Attention 是最基础也是最常用的注意力机制。它通过 Query (Q)、Key (K) 和 Value (V) 向量之间的点积来衡量输入序列中不同位置之间的相关性。

公式:

Self-Attention ( X ) = softmax ( Q K T d k ) V \text{Self-Attention}(X) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VSelf-Attention(X)=softmax(dkQKT)V

其中:

特点:
  • 全连接结构,建模全局依赖
  • 计算复杂度为 $ O(n^2) $
  • 可解释性强,支持可视化分析
应用场景:
优点:
  • 并行化能力强
  • 支持长文本建模
  • 可解释性强
缺点:

2. Cross-Attention(跨注意力)

原理:

Cross-Attention 发生在 Encoder-Decoder 架构中,用于解码器关注编码器输出的信息。

Query 来自 Decoder 输入,而 Key 和 Value 来自 Encoder 输出。

公式:

Cross-Attention ( Q d e c , K e n c , V e n c ) = softmax ( Q d e c K e n c T d k ) V e n c \text{Cross-Attention}(Q_{dec}, K_{enc}, V_{enc}) = \text{softmax}\left(\frac{Q_{dec} K_{enc}^T}{\sqrt{d_k}}\right)V_{enc}Cross-Attention(Qdec,Kenc,Venc)=softmax(dkQdecKencT)Venc

特点:
  • 实现编码器与解码器之间的信息交互
  • 在图像到文本生成、机器翻译中广泛应用
应用场景:
优点:
  • 高效结合两个模态的信息
  • 提升模型对输入的理解能力
缺点:

3. Multi-Head Attention(多头注意力)

原理:

Multi-Head Attention 将输入映射到多个不同的子空间,并独立地进行多次 attention 操作,最终拼接结果并线性变换。

公式:

MultiHead ( Q , K , V ) = Concat ( head 1 , . . . , head h ) W O \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^OMultiHead(Q,K,V)=Concat(head1,...,headh)WO

其中:
head i = Attention ( Q W i Q , K W i K , V W i V ) \text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)headi=Attention(QWiQ,KWiK,VWiV)

特点:
  • 多个 head 学习不同角度的语义
  • 增强表达能力和泛化能力
应用场景:
优点:
  • 捕捉多样化的语义关系
  • 提升模型表现
  • 可扩展性强
缺点:

4. Local Attention / Sliding Window Attention(局部/滑动窗口注意力)

原理:

Local Attention 只在固定大小的窗口内进行 attention 计算,而不是整个序列。

Sliding Window 则允许窗口在序列上滑动,从而覆盖更多上下文。

公式(简化):

A i j = { q i k j T d k , ∣ i − j ∣ < w − ∞ , otherwise A_{ij} =

Aij={dkqikjT,,ij<wotherwise

其中 $ w $:窗口大小

特点:
  • 减少显存占用
  • 更适合处理长文本
  • 局部建模,降低冗余计算
应用场景:
优点:
  • 显存友好
  • 适合长序列建模
  • 推理速度快
缺点:

5. Sparse Attention(稀疏注意力)

原理:

Sparse Attention 仅选择部分位置进行 attention 计算,而非全连接。

例如:随机采样 key/value 或基于规则选择重要位置。

公式(示意):

SparseAttention ( Q , K , V ) = ∑ j ∈ S ( i ) α i j v j \text{SparseAttention}(Q, K, V) = \sum_{j \in S(i)} \alpha_{ij} v_jSparseAttention(Q,K,V)=jS(i)αijvj

其中 $ S(i) $:第 i 个 token 的稀疏采样集合

特点:
  • 降低计算复杂度
  • 支持更长的上下文
  • 可灵活设计稀疏策略
应用场景:
优点:
  • 显存占用低
  • 拥护任意长度输入
  • 可控性高(可设计稀疏模式)
缺点:

6. FlashAttention(高效注意力)

原理:

NVIDIA 提出的一种高效 attention 实现方式,通过优化内存访问顺序和减少中间缓存,显著提升 attention 的计算效率。就是FlashAttention

核心思想:
公式不变,但实现方式优化:

FlashAttention ( Q , K , V ) = Efficient softmax and matmul on GPU \text{FlashAttention}(Q, K, V) = \text{Efficient softmax and matmul on GPU}FlashAttention(Q,K,V)=Efficient softmax and matmul on GPU

特点:
应用场景:
  • PyTorch、HuggingFace Transformers 已支持
  • 所有需要加速 attention 的模型(LLaMA、ChatGLM、Phi-3 等)
优点:
缺点:
  • 依赖硬件(CUDA 加速)
  • 对非 GPU 用户支援有限

7. Grouped Query Attention (GQA)

原理:

将 Query 分成若干组,每组共享一组 Key 和 Value 向量。

公式(简化):

GQA ( Q , K , V ) = Grouped version of MultiHead \text{GQA}(Q, K, V) = \text{Grouped version of MultiHead}GQA(Q,K,V)=Grouped version of MultiHead

即:

  • Query 按 head 分组
  • 每组共用相同的 Key/Value
特点:
应用场景:
  • Llama 3、DeepSeek、InternLM
  • 推理部署优化
优点:
缺点:
  • 表达能力略弱于 MHA
  • 需要调整 head 分组策略

8. Multi-Query Attention (MQA)

原理:

所有 attention head 共享相同的 Key 和 Value 向量。

公式:

K = X W K , V = X W V ( 所有 head 共享 ) K = X W_K,\quad V = X W_V \quad (\text{所有 head 共享})K=XWK,V=XWV(所有 head 共享)

Q i = X W Q i Q_i = X W_{Q_i}Qi=XWQi

特点:
应用场景:
  • Google PaLM、Llama 3、DeepSeek
  • 大规模部署和推理服务
优点:
缺点:
  • 表达能力受限
  • 多样性降低

9. RoPE(Rotary Position Embedding)

原理:

RoPE 将位置信息以旋转矩阵的方式注入 Query 和 Key 向量中,使 attention score 自动考虑相对位置关系。

公式:

对于第 $ i $ 个 token,其向量表示为:

q i ′ = R i q i , k j ′ = R j k j q_i' = R_i q_i,\quad k_j' = R_j k_jqi=Riqi,kj=Rjkj

最终 attention score 为:

( q i ′ ) T k j ′ (q_i')^T k_j'(qi)Tkj

特点:
应用场景:
  • LLaMA、ChatGLM、InternLM、Phi-3、DeepSeek
  • 长文本生成、代码生成等
优点:
缺点:
  • 需要特定实现(如 CUDA kernel)
  • 对某些任务效果可能不如 learned PE

10. ALiBi(Attention with Linear Biases)

原理:

ALiBi 应用线性偏置引导 attention score,不利用显式的位置嵌入。

公式:

score i j = q i k j T d k + m ⋅ ( j − i ) \text{score}_{ij} = \frac{q_i k_j^T}{\sqrt{d_k}} + m \cdot (j - i)scoreij=dkqikjT+m(ji)

其中 $ m $ 是预设的缩放系数(通常取 1, 2, 4…),用于控制偏置强度。

特点:
应用场景:
  • BLOOM、Falcon、Pythia 等
  • 医疗、金融等需要长上下文的领域
优点:
缺点:
  • 偏置系数需要调参
  • 对短文本建模稍弱

三、注意力机制对比表

注意力类型是否支持长文本是否拥护 KV Cache 优化是否适合推理加速是否支持位置建模
Self-Attention
Multi-Head
Sparse
FlashAttention
GQA
MQA
RoPE
ALiBi

四、总结

注意力机制是大语言模型的核心组成部分,决定了模型如何理解和生成文本。随着模型规模的扩大和应用场景的丰富,越来越多的注意力机制被提出,以应对长上下文、推理效率、内存瓶颈等问题。

选择合适的注意力机制,不仅能提升模型表现,还能显著优化推理速度和部署成本。

http://www.jsqmd.com/news/10084/

相关文章:

  • 无需重新训练即可更新语音识别词汇
  • 深入解析:vscode中无法使用npm node
  • 第一次算法作业
  • AI元人文:新的评价与启示
  • Why is English commonly used in scientific literature?
  • 第二次课程
  • 详细介绍:《云原生安全攻防》-- K8s网络策略:通过NetworkPolicy实现微隔离
  • 考研系列—操作系统:冲刺笔记(1-3章) - 指南
  • 【Axure高保真原型】交通事故大屏可视化分析案例 - 指南
  • 2025工业网线优质厂家最新推荐榜:品质卓越与技术领先之选
  • 上海殡葬一条龙服务最新推荐:专业关怀与人性化服务口碑之选
  • 中空扳手实力厂家最新推荐榜:专业制造与耐用品质深度解析
  • 驾驭“人造太阳”:用 AI 来解锁聚变核能
  • Flask中关于app.url_map属性的用法 - 详解
  • sg.Multiline 和 sg.Output 有什么区别?怎么看起来一样?
  • 中科微GNSS卫星定位产品
  • 算法设计与分析第一章作业
  • Syncfusion重构Essential Studio套件,为开发者提供更灵活选择
  • vmware workstation17pro安装vmtools
  • 2025 年逸发粘接认证推荐:依托德系标准与全链条服务,打造粘接及复材技术解决方案优质选择
  • 114514
  • ZR 2025 十一集训 Day 8
  • Prj09--8088单板机C语言8253产生1KHz方波(1) - 详解
  • 2025 年杭州画室推荐:之江画室凭央清班十年口碑、突出设计学录取案例及特色教学空间脱颖而出
  • 2025 云南旅游旅行社最新推荐排行榜:权威口碑榜单助你避开消费陷阱选靠谱服务商
  • DeepSeek+SpringAI完成流式对话
  • Rocky9系统Grub修复实验
  • 2025 年冷水机厂家最新推荐排行榜:聚焦实力企业,解读技术服务优势与选购指南防爆/低温/水冷/螺杆/超低温冷水机厂家推荐
  • 2025 钢丝绳厂家最新推荐榜:行业标杆与新锐势力深度解析,5 大优质品牌适配场景全指南
  • 2025 地坪研磨机厂家最新推荐榜单:盘点国产优质品牌核心优势及格力 / 宁德时代合作案例 固化剂/水磨石/遥控式/座驾式/小型/大型地坪研磨机厂家推荐