当前位置: 首页 > 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.zskr.cn/news/17264.html

相关文章:

  • 详细介绍:《云原生安全攻防》-- K8s网络策略:通过NetworkPolicy实现微隔离
  • 【Axure高保真原型】交通事故大屏可视化分析案例 - 指南
  • Flask中关于app.url_map属性的用法 - 详解
  • 算法设计与分析第一章作业
  • 114514
  • ZR 2025 十一集训 Day 8
  • 2025 云南旅游旅行社最新推荐排行榜:权威口碑榜单助你避开消费陷阱选靠谱服务商
  • DeepSeek+SpringAI完成流式对话
  • 2025 年冷水机厂家最新推荐排行榜:聚焦实力企业,解读技术服务优势与选购指南防爆/低温/水冷/螺杆/超低温冷水机厂家推荐
  • 2025 地坪研磨机厂家最新推荐榜单:盘点国产优质品牌核心优势及格力 / 宁德时代合作案例 固化剂/水磨石/遥控式/座驾式/小型/大型地坪研磨机厂家推荐
  • windows设置 exe 文件开机启动
  • 2025 年宠物托运服务最新推荐榜单:覆盖深港澳 / 高铁托运等场景,爱宠国际领衔优质公司港深宠物托运/珠澳宠物托运公司推荐
  • 2025 年豆腐机厂家最新推荐榜:权威解析企业实力,豆腐豆皮 / 豆干 / 成型设备选购指南厂家推荐
  • set查找和统计示例
  • Allegro 输出生产信息详解
  • 编程笔记 - C++ 完美转发
  • mysql复杂查询50题mysql面试题
  • Tailwind UnoCSS CSS框架选型
  • 2025 年电力金具厂家最新推荐排行榜:覆盖出口 / 玛钢 / 联板 / 横担 / 抱箍 / 线夹等品类,为采购提供权威参考
  • 编程笔记 - C++ 移动语义
  • 2025 年最新推荐压电陶瓷制造厂家:深度解析品牌价值、市场影响力及高性价比选型指南高D33/pzt/高性能/替代进口/高稳定性压电陶瓷厂家推荐
  • 对vue的疑惑
  • 2025 年最新保温装饰一体板厂家口碑排行榜:优选西宁及全国靠谱生产厂家,助力建筑项目精准选品装配式一体板 / 装配式复合一体板 / 珍珠岩复合保温一体板 / 免拆保温一体板厂家推荐
  • 浏览器标签管理
  • 洛谷9695 [GDCPC 2023] Traveling in Cells 题解(线段树+二分)
  • Axure 下拉框联动 - 实践
  • 题解:qoj6170 凸多边形正则划分问题
  • linux 中paste命令实现按照指定列数输出文件
  • 2025 年章丘二手磁选机服务公司最新推荐榜单:含回收置换 / 全型号设备及优质售后企业权威排行
  • 2025 年最新铝镁锰板厂商口碑排行榜:实力厂家推荐及 100 万㎡工程案例与 20 年质保深度解读铝镁锰板屋面板/保温板/卷/墙面板 铝镁锰板金属屋面板