第四章 Attention(注意力机制):模型是如何"看懂上下文"的?
最近正好有空,打算抽时间复盘总结一下这些年零零散散学习的AI知识.
下面是目录
零基础认识大语言模型(LLM)工作原理目录 - GuZhenYin - 博客园
在上一章中,我们知道 Transformer 做了三件事:
- 把文字变成 Token(第二章)
- 把 Token 变成向量(Embedding)
- 让模型在生成每个词时"回头看前文"
但这里有一个关键问题:
模型到底是怎么"回头看"的?
人类阅读一句话时,其实会自动做一件事,把重要信息记住,把不重要信息忽略。
例如:
小明昨天去北京出差,今天他回来了。
我们几乎不会犹豫:
"他" = 小明
因为我们的大脑自动做了"关联"。
Transformer 的 Attention,本质上就是在模拟这件事。
4.1 先举个例子~
我们举一个普通生活中的例子
图书馆找书
假设我们在图书馆找一本书:
《Java 并发编程实战》
我们会怎么做?
我们不会把整个图书馆的书都认真读一遍。
我们会:
- 快速记住标题
- 找对应技术分类(Java / 并发)
- 忽略无关书籍(小说、历史)
然后我们会发现,某一排书架上面有相关类别.
于是我们集中注意力,主要从那一排书架上去找这本书。
Attention 其实做的事情完全一样,它不是"平均看所有信息",而是:
给每一段信息分配不同的重要性权重
4.2 在请出我们的小明
我们继续用经典例子:
小明昨天去北京出差,今天他回来了。
现在模型要预测:
"他"到底是谁?
模型会做一件事情:
它会把前面的 Token 全部拿出来:
小明
昨天
去
北京
出差
今天
然后问一个问题:
哪些 Token 和"他"最相关?
我们用人类方式模拟一下:
| Token | 相关性 |
|---|---|
| 小明 | ⭐⭐⭐⭐⭐ |
| 昨天 | ⭐⭐ |
| 去 | ⭐ |
| 北京 | ⭐⭐ |
| 出差 | ⭐⭐ |
| 今天 | ⭐ |
模型不会"理解",但它会做一件类似的事:
计算相关性分数
4.3 Attention 的核心思想
Attention 本质只有一句话:
当前 Token 会去"查询"前面所有 Token,并决定哪些最重要。
注意这句话:
- 当前 Token:正在预测的词
- 前面 Token:上下文
- 查询:比较相关性
- 最重要:权重更高
核心就是下面这张图:

4.4 Q、K、V 按角色理解
现在我们终于可以引入 QKV,但是我们不从数学角度去理解。
我们用一个简单的"会议室发言"理解 QKV
我们想象一个会议.每个人都有三种属性:
① Key(身份标签)
每个人都会说:
我是谁,我做什么的
例如:
- 小明:后端工程师
- 小红:产品经理
- 小李:数据库专家
② Query(提问者)
现在你问一句话:
谁懂 Redis?
这个问题就是 Query。
③ Value(真正的信息)
如果匹配成功:
数据库专家站起来回答
他说的内容就是 Value。
所以Attention 的计算流程可以简单理解为:
Query 去匹配 Key,匹配成功后拿 Value
4.5 回到 Transformer
现在我们回到刚才那句话:
小明昨天去北京出差,今天他回来了。
模型内部其实在做如下步骤:
步骤1:每个 Token 生成 Q/K/V
例如:
| Token | Q | K | V |
|---|---|---|---|
| 小明 | 查询能力 | 身份标签 | 信息内容 |
| 北京 | 查询能力 | 身份标签 | 信息内容 |
(不用管具体维度)
步骤2:计算匹配度
"他"会去问:
谁最像我在指代的人?
于是:
| Token | 匹配分数 |
|---|---|
| 小明 | 0.92 |
| 北京 | 0.31 |
| 昨天 | 0.10 |
步骤 3:加权汇总信息
模型不会只选一个,而是:
把所有信息按权重混合
结果:
0.92 × 小明
0.31 × 北京
0.10 × 昨天
最终得到:
"他"的语义 = 小明
4.6 Attention 的本质总结
如果只记一句话:
Attention = 给所有历史信息打分 + 加权融合
4.7 为什么 Attention 这么重要?
在 Transformer 出现之前,主流模型是:
- RNN
- LSTM
它们的问题是:
信息会"越传越弱"
例如:
一句很长的话:
我昨天在北京的一家咖啡店看到一个穿红衣服的程序员,他......
模型容易忘掉:
"我昨天"
Attention 解决了这个问题:
它每一步都可以直接回看全部历史信息
4.8 Attention 革命性的变化
Attention 做了一件革命性的事情:
❌ 不再"顺序记忆"
✅ 变成"全局检索"
你可以这样理解:
以前模型是:
纯用脑子记(容易忘)
现在模型是:
记下了小本本,可以随时翻整本书(随时查)
4.9 多头 Attention(多头注意力)
你可以把它理解成:
一个问题,有多个"专家同时看"
例如下面这句话:
我在银行存钱
不同头会关注:
- 金融语义
- 语法结构
- 指代关系
- 时间信息
所以模型不是一个人在思考,而是:
多个"注意力专家"在并行工作
4.10 本章核心总结
这一章最重要的内容只有四点:
① Attention 在做什么?
给每个 Token 分配"重要性权重"
② QKV 是什么?
- Q:我在问什么
- K:你是什么
- V:你提供什么信息
③ Attention 的本质
当前 Token 会去"查询"前面所有 Token,并决定哪些最重要。
④ 为什么它重要?
因为它让模型可以"随时回看所有上下文",而不是逐步遗忘**。**
下一章预告
下一章我们会讲Transformer另外一个非常核心的模块:
既然 Attention 已经这么强了,为什么还需要 Transformer 的FFN"前馈神经网络"?