掌握 Self-Attention(自注意力)机制——Transformer 与大模型的核心基础
目录
一、前言
二、什么是 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系列
ChatGPT
Claude
Gemini
DeepSeek
Qwen
其核心都建立在 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-Attention
Self-Attention:
即:
自注意力机制所谓“自”。
指的是:
自己关注自己换句话说:
输入序列中的每个元素。
都会与序列中的所有元素建立联系。
例如:
我 喜欢 深度 学习当处理:
学习时。
模型会同时关注:
我 喜欢 深度 学习并自动计算:
谁对当前词更重要。
三、为什么需要 Self-Attention
(一)RNN存在的问题
在 Transformer 出现之前。
NLP主要依赖:
RNN
LSTM
GRU
结构如下:
输入 ↓ 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(四)生活中的例子
假设:
你去图书馆查书。
Query:
Python编程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。
(三)全局感知能力强
每个词:
都能获取全局信息。
(四)适合大规模训练
非常适合:
GPT
BERT
Transformer
等大型模型。
十二、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-2
GPT-3
GPT-4
核心:
Transformer Decoder(二)BERT
采用:
Transformer Encoder结构。
(三)ChatGPT
本质上:
仍然建立在 Self-Attention 之上。
(四)DeepSeek
其核心架构同样依赖:
Self-Attention进行上下文建模。
十五、Self-Attention对AI发展的意义
Self-Attention 的出现。
彻底改变了深度学习的发展路线。
推动诞生了:
Transformer
BERT
GPT
ChatGPT
Claude
Gemini
DeepSeek
等现代AI系统。
可以说:
没有 Self-Attention,就没有今天的大模型时代。
十六、总结
Self-Attention 是 Transformer 架构的核心,也是现代人工智能最重要的基础技术之一。
本文重点掌握了:
1、什么是 Self-Attention;
2、为什么需要 Self-Attention;
3、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 是必须彻底掌握的核心知识。
