← 返回题库
基础理论中等

Transformer 的注意力机制原理?Self-Attention 如何计算?

#Self-Attention#Q/K/V 计算#多头注意力#位置编码

题目

请说明 Transformer 中 Self-Attention 的计算过程,并解释多头注意力(Multi-Head Attention)的作用。

参考答案

Self-Attention 计算流程

  1. 输入序列 XX 经三个线性投影得到 Q(查询)、K(键)、V(值)Q=XWQ, K=XWK, V=XWVQ = XW_Q,\ K = XW_K,\ V = XW_V
  2. 计算注意力得分:scores=QKT/dk\text{scores} = QK^T / \sqrt{d_k}dk\sqrt{d_k} 缩放防止点积过大)。
  3. softmax 归一化得到权重:A=softmax(scores)A = \text{softmax}(\text{scores})
  4. 加权求和:Output=AV\text{Output} = AV

完整公式:Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

多头注意力(MHA)的作用

  • 将 Q/K/V 沿深度切分成 hh 个头,每个头独立做注意力,再拼接投影。
  • 不同头可关注不同子空间的信息(如语法、语义、共指等),增强模型表达力。
  • 计算量与单头相近(总维度不变),但表征更丰富。

位置编码:由于 Self-Attention 本身无位置感知,需注入位置编码(正弦、可学习、RoPE 旋转位置编码等)。现代大模型多采用 RoPE,因其对长上下文外推更友好。

出处:牛客网大模型面经、开源仓库 wdndev/llm_interview_note

内容来源

整理自牛客网大模型面经及开源仓库 wdndev/llm_interview_note

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。