大模型 · 底层原理

大模型的「注意力机制」到底是啥?

不堆公式、不绕弯子。用类比、流程图、和三个可交互演示,把注意力机制从名词变成你脑子里的画面。

一、一句话答案

注意力机制(Attention)是一种「动态加权平均」的方法: 对当前正在处理的词,先算它和所有词(包括自己)的相关度,再把相关度变成一组权重, 最后按权重把每个词的信息融合成这个新词的表示。

简单说:读一句话时,每个词都能「转头看全场」,自己决定该重点看谁、看多少 —— 这就是 Attention 的「注意」二字。

二、为什么需要它:RNN 的痛点

在 Transformer(2017)之前,序列建模靠 RNN/LSTM:一个词一个词地读,把「记忆」塞进一个固定大小的隐藏状态。

❌ 老办法 RNN 的问题

  • 长距离遗忘:句首的信息要一路传递,越往后越淡。
  • 必须串行:第 t 步必须等第 t-1 步,没法并行,训练慢。
  • 感受野有限:每个词只看「上一个状态」,全局关系难捕捉。

✅ 注意力机制的突破

  • 一步看全局:每个词直接和所有词算相关度,远近一视同仁。
  • 天然并行:所有词的注意力可同时算,GPU 吃得饱。
  • 可解释:权重矩阵就是「谁看了谁」的地图。
RNN:信息沿链条传递,越远越弱 苹果 注意力:每个词直连全场 苹果

三、形象直觉:一场「检索 + 取内容」

注意力干的事,和人类查资料一模一样 —— 用三个角色理解它(更细的 Q/K/V 拆解见同目录 qkv-explained.html):

🔎 Query 查询

「我当前想找些什么信息?」—— 对应正在处理的那个词发出的需求。

🏷️ Key 键

「每个词贴着什么标签,方便被匹配?」—— 用来和 Query 算相似度。

📦 Value 值

「每个词真正携带的内容」—— 按匹配度高低把内容加权取回。

一句话流程:拿 Query 去和每条 Key 比相似度 → 相似度高的,就把对应的 Value 多取一些(加权求和) → 得到「看过全场后」的新表示。

四、核心原理:相似度 = 相关性 = 权重

注意力的「灵魂」只有一句话:谁和 Query 越像(相似度高),谁就贡献越多

注意力权重 = softmax( 相似度(Query, 每个 Key) )

「相似度」在 Transformer 里最常用的就是点积(两个向量越同向,点积越大):

score = Q · Kᵀ   (点积越大 → 越相关 → 权重越高)
点积衡量「方向是否一致」:夹角越小,点积越大 Q K₁(同向→高相似) K₂(反向→低/负相似) 原点 Q · K₁ ≈ 大正数 → 高权重 Q · K₂ ≈ 小/负数 → 低权重 softmax 把它们变成一组 加起来 = 1 的概率分布

五、核心实现:四步法(Scaled Dot-Product Attention)

Transformer 用的标准形式,经典「缩放点积注意力」,就四步:

Q · Kᵀ ÷ √dₖ(缩放) softmax × V
Attention(Q,K,V) = softmax( (Q·Kᵀ) / √dₖ ) · V
Q,K,V 点积 Q·Kᵀ ÷√dₖ softmax × V 输出 缩放:维度越大点积越大,会把 softmax 推平 → 梯度消失,除以 √dₖ 抵消
为什么除以 √dₖ? 点积的数值随维度 dₖ 增大而变大,softmax 进饱和区后梯度趋零。把分数缩到合适量级,训练才稳。

六、交互1:注意力热力图(点词看它「在看谁」)

下面是一句中文。点任意一个橙色 Query 词,下方会显示它对所有词的注意力权重(柱状图 + 句子高亮)。

句子:小明 打 了 小红 , 因为 他 生气

七、交互2:分步计算器(亲手算一遍)

选一个 Query 词,看它如何一步步得到「融合全场后的新向量」。维度 d=3,句子 4 个词。

八、交互3:Softmax 温度(注意力有多「专注」)

同一组原始分数,调温度 T:T 大 → 权重平均、雨露均沾T 小 → 权重集中、只盯最相关的。这解释了「注意力该如何聚焦」。

温度 T(0.2 ~ 4):

T = 1.0

九、多头注意力(Multi-Head Attention)

单个注意力只能学一种「关注模式」。Transformer 把 Q/K/V 拆成 h 组(头),并行算 h 次注意力,各自关注不同子空间(语法 / 语义 / 指代 …),最后拼接。

把表示切成 h 份,每份独立做注意力,关注不同关系 输入 头1 语法 头2 语义 头3 指代 拼接+线性 输出
常见配置:BERT-base 12 头、GPT-3 96 头。头数越多,模型能同时捕捉的关系类型越丰富。

十、在 Transformer 里处在什么位置

词向量 自注意力 Attention 这里 +Norm 前馈 FFN 激活函数在里

十一、它到底解决了什么问题(收口)

  • 长距离依赖:句首和句尾直接相连,不再逐层衰减。
  • 全局上下文:每个词都能融合全句信息,不是只看局部。
  • 并行计算:注意力矩阵可一次性算完,训练飞快。
  • 可解释 + 可学:注意力权重是「看了谁」的显式地图,且由数据自动学习。
一句话收尾:注意力机制 = 让每个词「按相关性,动态融合全场信息」。它就是 Transformer 乃至现代大模型「能听懂上下文」的真正秘密。

十二、小结速记

问题答案
注意力是啥?动态加权平均:按相关度融合所有词的信息
核心原理?相似度(点积)→ softmax 权重 → 加权求和 Value
怎么实现?Q·Kᵀ → ÷√dₖ → softmax → ×V
为啥要缩放?点积随维度增大,softmax 会饱和 → 除以 √dₖ 稳住梯度
多头干嘛?并行学多种「关注模式」(语法/语义/指代…)
解决啥问题?长依赖、全局上下文、并行、可解释
配套阅读:同目录 qkv-explained.html(深入 Q/K/V)、activation-function-explained.html(激活函数)、transformer-explained.html(整体架构)。
《大模型工作原理图解系列》之一 · 本目录还包含 Transformer / QKV / 参数 / 幻觉 等可视化文档。