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

Transformer的核心——注意力机制

本文是作者本人学习深度学习的理解,如有错误,劳烦指出,让我改正

文章目录

  • 前言
  • 一、注意力机制的动机:三个直观例子
    • 1. 一词多义:三个 "mole"
    • 2.精细化修饰:从 "Tower" 到 "Miniature Eiffel Tower"
      • 每一步,周围的词都在拉扯这个向量的含义。
    • 3.长距离信息传递
    • Transformer 的最终预测完全基于序列最后一个向量。它必须通过层层注意力,把整个上下文窗口中所有相关信息都编码进来。
  • 二、单头注意力:一步步拆解
    • 1.Query(查询)—— 提出"问题"
    • 2. Key(键)—— "回应"查询
    • 3.点积 + Softmax → 注意力模式
    • 4.Masking(掩码)—— 不能偷看未来
      • 这就是因果掩码(Causal Masking)——信息只能从前往后流动。
    • 5.Value(值)—— 实际传递的信息
    • 6.加权求和 → 更新嵌入
  • 三、多头注意力:多个视角并行
    • 1.为什么需要多个头?
      • 上下文影响含义的方式远不止一种:
    • 2.多头配置(以GPT3.0为例)
  • 总结

前言

为什么同一个词 “mole”,在 “鼹鼠”、“摩尔”、“痣” 三种语境下,模型能自动区分?答案就藏在注意力机制里。


一、注意力机制的动机:三个直观例子

1. 一词多义:三个 “mole”

“American shrew mole” → 一种鼹鼠
“One mole of carbon dioxide” → 摩尔(化学计量单位)
“Take a biopsy of the mole” → 痣(医学用语)

2.精细化修饰:从 “Tower” 到 “Miniature Eiffel Tower”

初始 “Tower” → 指向"高大建筑物"方向
前面出现 “Eiffel” → 注意力将向量推向"巴黎、钢铁、法国"方向
再前面出现 “miniature” → 进一步推离"高大",靠向"微缩模型"

每一步,周围的词都在拉扯这个向量的含义。

3.长距离信息传递

想象你给模型输入整本侦探小说,最后一句话是 “Therefore the murderer was ____”。那个空白位置的向量,必须跨越几十页的上下文,从前面所有人名中"回忆起"谁是凶手。

Transformer 的最终预测完全基于序列最后一个向量。它必须通过层层注意力,把整个上下文窗口中所有相关信息都编码进来。

二、单头注意力:一步步拆解

以 “A fluffy blue creature roamed the verdant forest.” 为例。假设我们追踪形容词如何更新名词 “creature” 的含义。

注意力机制的核心流程分五步:

每个 token 的嵌入

① 生成 Query(查询向量)—— “我在找什么?”
② 生成 Key (键向量) —— “我能提供什么?”
③ Q·K 点积 + Softmax → 注意力模式
④ 生成 Value(值向量) —— “如果被选中,传递什么信息?”
⑤ Value 加权求和 → ΔE → 加到原嵌入

1.Query(查询)—— 提出"问题"

每个 token 的嵌入向量 E 与一个可训练的查询矩阵 Wᴏ 相乘,得到查询向量 Q:

名词 “creature” 的 Q 向量像是在问 —— "我前面有形容词吗?

2. Key(键)—— "回应"查询

同样,每个 token 通过键矩阵 Wᴋ 产生键向量 K:

键向量和查询向量处于同一个低维空间。直觉上,形容词 “fluffy” 的 K 向量像是在回应 —— “是的!我是形容词,我在前面!”

3.点积 + Softmax → 注意力模式

计算所有查询向量与所有键向量的点积(dot product),得到一个 n × n 的网格。

点积衡量两个向量的对齐程度——值越大,表示"这个词与那个词越相关"。

然后对网格逐列做 Softmax,Softmax 将每列变成合法的概率分布(0~1,列和为 1)。

除以查询空间维度的平方根,是为了数值稳定性——防止点积值太大导致 Softmax 输出过于极端(梯度消失)。

这个归一化后的网格就是注意力模式(Attention Pattern)——它告诉我们每个词应该从其他词那里"听多少"。

4.Masking(掩码)—— 不能偷看未来

训练时有一个巧妙的设计:对每个位置,模型同时预测下一个 token。比如输入 “A fluffy blue creature roamed…”:

位置 1 预测位置 2
位置 1~2 预测位置 3
位置 1~3 预测位置 4

一把前向传播,同时训练所有位置——效率极高。

但有个问题:后面的 token 不能影响前面的 token,否则等于"看了答案再答题"。

做法很简单——在 Softmax 之前,把注意力网格的上三角区域全部设为 负无穷,这列依然归一化。

这就是因果掩码(Causal Masking)——信息只能从前往后流动。

5.Value(值)—— 实际传递的信息

有了"谁关注谁"的权重网格后,还需要真正的内容来更新嵌入。

通过值矩阵 Wᴠ 产生值向量 V:

值向量与嵌入向量同维,因为它要直接加到嵌入上。

直觉理解:值向量回答了 —— “如果我被选中去更新其他词,我应该往它的嵌入里加什么?”

6.加权求和 → 更新嵌入

用注意力权重对值向量加权求和,得到变化量 ΔE,最后加到原始嵌入上,“creature” 的新嵌入向量就从泛化含义,变成了包含 “fluffy” 和 “blue” 形容词信息的精炼含义。

三、多头注意力:多个视角并行

1.为什么需要多个头?

上下文影响含义的方式远不止一种:

模式例子
形容词 → 名词“fluffy creature”
语法结构暗示“they crashed the car”
跨句关联“Harry” + 前面提到 “wizard” → Harry Potter
复杂语义推理“Queen, Sussex, William” + “Harry” → Prince Harry

一个注意力头只能学一种模式。所以要多头并行。

2.多头配置(以GPT3.0为例)

GPT-3 每个注意力块有 96 个头,每个头有独立的:

Wᴏ(查询矩阵)
Wᴋ(键矩阵)
V↓ + V↑(值矩阵对)
所有 96 个头各自独立计算,产生 96 份 ΔE 提案,最后全部加总。


总结

本文主要是讲解Transformer的核心机制,注意力机制,这只是粗略的讲解,具体的实现以及公式在文章内未提及,可以去翻阅资料查询对应的公式和实现代码等。

http://www.gsyq.cn/news/1640435.html

相关文章:

  • 基于MATLAB图像处理的药片检测与计数系统设计与实现
  • 泳池设备品牌哪家好
  • 红外光伏板缺陷检测 光伏数据集 AI红外光伏板识别 训练模型
  • 终极指南:使用KMS智能激活脚本免费激活Windows和Office系统
  • 用Python写爬虫的常见陷阱与避坑指南
  • 3分钟上手NSC_BUILDER:Switch游戏文件管理的终极解决方案
  • 【Python工程化实战】Feature Flag 工程化:Unleash / LaunchDarkly 在 Python 服务中的集成实战
  • OpenDog V3:开源四足机器人的分布式运动控制架构解析与实践指南
  • 森林火灾识别数据集| 6200张YOLO火灾预警数据集 适用于森林火灾早期预警、无人机巡检与目标检测研究
  • Signal for LLM
  • 后端框架选型指南:SpringBoot与主流方案的对比分析
  • 探秘北京通州热门学画画画室,真实口碑究竟如何?
  • 东芝TC78H660FTG与NXP MKV42F128VLH16的电机驱动方案
  • SAA-spring ai alibaba
  • NLP 标注一致性:数据集质量不是靠人数堆出来
  • AgentAegis 智能体安全防御包括: skill投毒、记忆污染、意图对齐、恶意执行、资源耗尽
  • AeroScapes数据集实战:从数据解析到PyTorch Dataloader构建
  • AI专著写作秘籍大公开!AI写专著工具一键生成20万字专著,高效无忧
  • 项目管理的“三边六拍”!
  • C++课后习题训练记录Day148
  • 《欠你的那场婚礼》 台剧|在线观看|电视剧|夸克|下载|豆瓣
  • 少走弯路:2026年刚需首选的专业降AIGC软件
  • PIC18F4550单片机控制RGB灯带实现智能灯光效果
  • 让时间序列“开口说话”:TimechoAI 如何把工业数据变成安全可靠的智能洞察
  • MIAC部署指南:从源码编译到生产环境部署的完整流程
  • 大型系统设计面试题解
  • 数字控制振荡器(DCO)与STM32L4的精准频率控制方案
  • 工业安全装备检测数据集与YOLO模型实战指南
  • ONNX模型转换软件V1.0操作手册
  • 锚点的算术:拆解 RectTransform 背后的计算法则