目录一、前言二、什么是 Self-Attention一Attention是什么二什么是 Self-Attention三、为什么需要 Self-Attention一RNN存在的问题二长距离依赖问题三无法并行计算四Self-Attention优势四、Self-Attention核心思想一每个词都看所有词二建立词与词之间的关系五、Q、K、V是什么一Query查询二Key键三Value值四生活中的例子六、Self-Attention计算流程一生成Q、K、V二计算相关性三缩放处理四Softmax归一化五加权求和七、Self-Attention完整公式八、Self-Attention工作示例九、Self-Attention结构图十、多头注意力机制一为什么需要多头二Multi-Head思想三工作流程十一、Self-Attention的优势一捕获长距离依赖二支持并行训练三全局感知能力强四适合大规模训练十二、Self-Attention的缺点一计算复杂度高二显存消耗大三推理成本较高十三、PyTorch实现Self-Attention十四、Self-Attention在大模型中的应用一GPT系列二BERT三ChatGPT四DeepSeek十五、Self-Attention对AI发展的意义十六、总结如果要评选近十年来人工智能领域最重要的技术那么 Self-Attention自注意力机制一定榜上有名。从 Google 提出的 Transformer到如今火爆全球的GPT系列ChatGPTClaudeGeminiDeepSeekQwen其核心都建立在 Self-Attention 机制之上。2017年Google 在论文《Attention Is All You Need》中提出了 Transformer 架构。这篇论文有一个非常大胆的观点不再使用 RNN 和 CNN仅依靠 Attention 机制完成自然语言处理任务。事实证明这个观点彻底改变了人工智能的发展方向。而 Transformer 最核心的组件就是Self-Attention可以说理解 Self-Attention就等于掌握了 Transformer 和大模型的核心基础。本文将从原理、结构、计算过程、代码实现等多个角度深入讲解 Self-Attention 机制。二、什么是 Self-Attention一Attention是什么Attention 翻译过来叫注意力机制其核心思想非常简单关注重要信息 忽略无关信息例如阅读一句话小明喜欢打篮球。当看到篮球时。我们会自然联想到小明 喜欢而不会重点关注无关内容。这就是注意力机制。二什么是 Self-AttentionSelf-Attention即自注意力机制所谓“自”。指的是自己关注自己换句话说输入序列中的每个元素。都会与序列中的所有元素建立联系。例如我 喜欢 深度 学习当处理学习时。模型会同时关注我 喜欢 深度 学习并自动计算谁对当前词更重要。三、为什么需要 Self-Attention一RNN存在的问题在 Transformer 出现之前。NLP主要依赖RNNLSTMGRU结构如下输入 ↓ RNN ↓ RNN ↓ RNN ↓ 输出这种结构存在明显缺陷。二长距离依赖问题例如小明在北京工作多年 后来他回到了家乡。这里他实际上指代小明但两者距离较远。RNN 很难建立联系。容易出现信息丢失。三无法并行计算RNN 必须一个词一个词处理例如我 喜欢 深度 学习只能顺序执行。无法充分利用 GPU 并行能力。训练效率较低。四Self-Attention优势Self-Attention所有词同时计算因此训练更快长距离依赖更强表达能力更好四、Self-Attention核心思想一每个词都看所有词例如输入句子我 喜欢 深度 学习传统RNN我 → 喜欢 → 深度 → 学习Self-Attention我 ↔ 全部词 喜欢 ↔ 全部词 深度 ↔ 全部词 学习 ↔ 全部词即每个词都能够获取全局信息。二建立词与词之间的关系例如北京是中国的首都处理首都时。模型会重点关注北京 中国而降低对其他词的关注。五、Q、K、V是什么Self-Attention最重要的三个概念一Query查询表示我想找什么记作Q二Key键表示我有什么信息记作K三Value值表示真正输出的信息记作V四生活中的例子假设你去图书馆查书。QueryPython编程Key书籍目录Value书籍内容过程Q匹配K ↓ 找到目标 ↓ 返回VSelf-Attention的原理与此类似。六、Self-Attention计算流程一生成Q、K、V输入Embedding经过线性变换X ↓ WQ ↓ Q X ↓ WK ↓ K X ↓ WV ↓ V得到Q K V三个矩阵。二计算相关性计算Q 与 K 的相似度。公式Q × Kᵀ例如学习 与 深度关系越强。得分越高。三缩放处理为了避免数值过大。Transformer提出(QKᵀ)/√dk其中dk表示向量维度。四Softmax归一化将分数转换为概率。例如0.8 0.1 0.05 0.05表示80% 10% 5% 5%注意力权重。五加权求和最后Attention Weight × V得到最终输出。七、Self-Attention完整公式Self-Attention最经典公式Attention(Q,K,V) Softmax( QKᵀ/√dk ) V这是 Transformer 的核心公式。也是整个大模型时代最重要的公式之一。八、Self-Attention工作示例假设句子小明喜欢打篮球处理篮球时。可能得到小明 → 0.3 喜欢 → 0.5 打 → 0.15 篮球 → 0.05说明模型认为喜欢与篮球关系最强。因此给予最高权重。九、Self-Attention结构图整体流程Input ↓ Embedding ↓ Linear ↓ Q K V ↓ Q × Kᵀ ↓ Softmax ↓ Attention Weight ↓ Weight × V ↓ Output这就是标准 Self-Attention 模块。十、多头注意力机制一为什么需要多头单个 Self-Attention只能学习一种关系。例如语法关系或者语义关系表达能力有限。二Multi-Head思想同时建立多个 Self-Attention。例如Head1 Head2 Head3 Head4 Head5 Head6 Head7 Head8每个头学习不同信息。三工作流程Input ↓ Multi Head ↓ Concat ↓ Linear ↓ Output这就是Multi-Head Attention十一、Self-Attention的优势一捕获长距离依赖任何两个词都能直接建立联系。二支持并行训练所有词同时计算。训练速度远超RNN。三全局感知能力强每个词都能获取全局信息。四适合大规模训练非常适合GPTBERTTransformer等大型模型。十二、Self-Attention的缺点一计算复杂度高复杂度O(n²)序列长度翻倍计算量增长四倍。二显存消耗大长文本场景显存压力明显增加。三推理成本较高相比CNN计算资源需求更高。十三、PyTorch实现Self-Attention下面实现一个简化版 Self-Attention。import torch import torch.nn as nn class SelfAttention(nn.Module): def __init__(self, dim): super().__init__() self.q nn.Linear(dim, dim) self.k nn.Linear(dim, dim) self.v nn.Linear(dim, dim) def forward(self, x): Q self.q(x) K self.k(x) V self.v(x) scores torch.matmul( Q, K.transpose(-2, -1) ) scores scores / ( Q.size(-1) ** 0.5 ) attention torch.softmax( scores, dim-1 ) output torch.matmul( attention, V ) return output该代码完整实现了Q生成K生成V生成Softmax计算Attention输出过程。十四、Self-Attention在大模型中的应用目前几乎所有主流大模型都基于 Self-Attention。一GPT系列例如GPT-2GPT-3GPT-4核心Transformer Decoder二BERT采用Transformer Encoder结构。三ChatGPT本质上仍然建立在 Self-Attention 之上。四DeepSeek其核心架构同样依赖Self-Attention进行上下文建模。十五、Self-Attention对AI发展的意义Self-Attention 的出现。彻底改变了深度学习的发展路线。推动诞生了TransformerBERTGPTChatGPTClaudeGeminiDeepSeek等现代AI系统。可以说没有 Self-Attention就没有今天的大模型时代。十六、总结Self-Attention 是 Transformer 架构的核心也是现代人工智能最重要的基础技术之一。本文重点掌握了1、什么是 Self-Attention2、为什么需要 Self-Attention3、RNN存在的问题4、Q、K、V 的含义5、Self-Attention计算流程6、核心公式解析7、多头注意力机制8、PyTorch实现方式9、Self-Attention优势与不足10、在GPT、BERT等模型中的应用。可以将 Self-Attention 理解为“让每个输入元素主动寻找与自己最相关的信息并根据重要程度进行加权融合的机制。”正是这种机制让 Transformer 具备了强大的上下文理解能力也奠定了大模型时代的技术基础。对于学习 NLP、Transformer、ChatGPT 和大语言模型的开发者而言Self-Attention 是必须彻底掌握的核心知识。