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

掌握 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 ↓ 找到目标 ↓ 返回V

Self-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 是必须彻底掌握的核心知识。

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

相关文章:

  • 3分钟搞定Windows ADB环境:一键自动化驱动安装解决方案
  • GHelper深度解析:如何通过轻量级架构重新定义华硕笔记本性能管理
  • 郑州国窖回收技术全解析:鉴别、估价与合规交易推荐 - 优质品牌商家
  • 用CH32X035做个“万能钥匙”:手把手教你DIY一个PD/QC快充诱骗器(附源码)
  • 手把手复现:用Python仿真一个简易的RIS相位调控单元(附代码)
  • 2026年6月恒温恒湿箱厂家权威榜单发布:专业实力与真实口碑双重认证 - 品牌推荐
  • Nacos 5问挑战:答不上别说你懂
  • 老java 程序学习ai 第一步-LLM开发,ollama +LLM+Langchain4 开发ai智能客服
  • Zotero Style:重塑文献管理体验的可视化增强神器
  • 终极无损音乐库构建指南:用qobuz-dl轻松获取24位高解析度音频
  • 3分钟掌握:免费使用Cursor Pro功能的完整教程与终极指南
  • Figma中文界面本地化:为什么专业翻译比机器翻译更能提升设计效率?
  • GanttProject深度解析:如何用开源架构实现企业级项目管理
  • MC9S12XE XGATE硬件信号量:嵌入式多核并发编程实战指南
  • ArkTS 严格类型系统:我答错 2 道题后才真正搞懂的几条规则
  • 如何用700欧元预算将随机割草机升级为RTK GPS智能机器人?
  • 如何快速搭建个人付费墙绕过工具:13ft Ladder终极指南
  • 用FPGA驱动WS2812B灯带:手把手教你从Verilog状态机到动态图像显示
  • 别再只会写一种了!用Verilog的三种描述方式搞定三人表决器(附完整代码)
  • 2026年6月,国产PCB行业迎来新一轮技术升级与市场洗牌
  • 编写程序汇总智能跑步机运动数据,计算运动强度,卡路里消耗,评估运动达标率。
  • 南宁旧金首饰回收多少钱一克 内行避坑实操指南 - 余生黄金回收
  • 青岛旧金回收怎么算价 2026行情与防踩坑完整攻略 - 余生黄金回收
  • 别再硬啃公式了!用Simscape Multibody从SolidWorks到MATLAB,手把手复现一阶倒立摆LQR控制
  • 掌握多头自注意力机制(Multi-Head Self-Attention)——Transformer 强大表达能力的核心来源
  • 2026苏州地坪翻新公司推荐榜:聚焦专业服务与品质保障 - 品牌排行榜
  • 2026年6月国产PCB厂家综合实力排行榜评测
  • 如何在非Windows系统上完美编辑Visio文件?drawio-desktop为您提供专业解决方案
  • 用51单片机和Proteus仿真,手把手教你做一个自己的RLC测量仪(附完整代码)
  • 南充黄金回收行情报价 本地变现避坑完整实用攻略 - 余生黄金回收