站点标志Map the AI
  • 每日短课
  • AI 新闻
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图

自注意力图解

每个词如何判断其他哪些词对自己重要。query、key、value——每个语言模型最核心的那套机制。

本页目录
  • 核心动作
  • 四个步骤
  • 为什么它胜过其他方案
  • 因果掩码
  • 自注意力与交叉注意力
  • 成本花在哪儿
  • 要点回顾
模型内部5 / 17可视化讲解

先读这些

  • 什么是 AI 中的 token?
  • 什么是 embedding?
  • transformer 是怎么工作的?

对各级别的必要程度

各目标级别的推荐分
新手45 分中的 4 分
进阶45 分中的 4 分
专家55 分中的 5 分

主线上的下一篇

什么是 KV cache?

主题

AI 如何工作

it 对 animal 的注意力最高。it 这个词没变——但句子以 tired 结尾,它的指代就变成了 the animal。注意力权重对每个输入都重新计算,这才让它对上下文敏感。

看这个句子:

The animal didn't cross the street because it was too tired.

it 指的是什么?显然是那只动物。换掉一个词:

The animal didn't cross the street because it was too wide.

现在 it 变成了那条街。it 这个词没有变,而解开它的那个词在六个位置之外。

自注意力(self-attention)就是让 it 能跨过整句话、从正确的地方取来含义的机制。它是现代语言模型里最重要的一个想法,而且比它的名声所暗示的要好懂。

核心动作

每个 token 都能提一个问题,说明自己需要什么;拿这个问题去比对其他每个 token 提供的东西;然后对找到的最相关内容做一个加权混合。

三种角色,各自由一个单独学习出来的投影矩阵从每个 token 的 embedding 变换而来:

  • Query——我在找什么?
  • Key——我能提供什么?
  • Value——如果被选中,我实际贡献的内容。

图书馆这个类比很贴切。你的 query 是你想找的主题。每本书的 key 是书脊上的标签。value 是书里的内容。你拿自己的 query 和每一根书脊比一遍,然后按比例去读——主要是最匹配的那几本,也翻一点接近的。

四个步骤

**1 · 打分。**取一个 token 的 query,和每个 token 的 key 算点积。点积大意味着两个向量指向相近的方向,也就是说这个 key 对这个 query 是相关的。对一个 10 个 token 的序列,每个 token 会产出 10 个分数。

**2 · 缩放。**除以 key 维度的平方根。不做这一步,维度一大点积就很大,softmax 会饱和,梯度随之消失。一个小细节,后果却实实在在。

**3 · Softmax。**把分数转成加起来等于 1 的权重。现在 it 可能给 animal 0.7 的权重、给 street 0.1,剩下的 0.2 摊给其他所有 token。

**4 · 混合。**把每个 token 的 value 向量乘以它的权重再求和。输出是 it 的一个新向量,里面现在装进了大量来自 animal 的信息。

每个 token 同时做这件事。整个操作就是几次矩阵乘法,这正是它能在 GPU 上跑得高效的原因——也是这份并行性让 transformer 真正可用。

为什么它胜过其他方案

**任何距离都能直接访问。**第 500 个位置关注第 3 个位置是一次操作,代价和关注第 499 个位置完全相同。更早的架构只能一步步接力传递信息,一路传一路损耗。

权重是算出来的,不是固定的。it 指向 animal 还是 street,取决于句子结尾是 tired 还是 wide。注意力权重对每个输入都重新计算,这才让它对上下文敏感,而不是一次静态查表。

**在某种程度上可解释。**你可以查看这些权重,看哪些 token 关注了哪些。注意力图常常呈现出可辨认的结构:代词找到先行词、动词找到主语、括号找到另一半。但要加一句提醒——注意力权重显示的是信息流向了哪里,而不是为什么,把它们当成模型推理过程的解释,是夸大了它们能证明的东西。

因果掩码

在语言模型里,第 5 个 token 不能看到第 6 个——它正在试图预测第 6 个。

所以在 softmax 之前,所有指向未来位置的分数都被设成负无穷。softmax 把它们变成 0。每个位置只关注它自己和它前面的内容。

这就是因果掩码,也是这种架构被称为 decoder-only 的原因。它还带来一个很大的优化空间:既然过去的 token 永远不需要关注未来的 token,它们算出来的 key 和 value 在生成过程中就不会变,可以存起来反复使用。这就是 KV cache。

自注意力与交叉注意力

自注意力指 query、key、value 全部来自同一个序列——token 在互相打量。

交叉注意力则从一个序列取 query,从另一个序列取 key 和 value。当模型要以另一路输入为条件时使用,比如翻译或图像描述。decoder-only 的语言模型全程用的都是自注意力。

成本花在哪儿

每个 token 都要和每个 token 打分:n 个 token 就是 n² 次比较。上下文翻倍,注意力部分的计算量就变成四倍。

这是上下文长度的根本约束,也是长上下文请求定价如此的原因。长上下文为什么这么贵详细讲了这件事,以及人们用来缓解它的各种近似方法。

要点回顾

  • 每个 token 生成一个 query,拿它去匹配每个 token 的 key,再按相关度混合它们的 value。
  • 四个步骤:用点积打分、缩放、softmax 变成权重、混合 value。
  • 权重对每个输入重新计算,这才让注意力对上下文敏感。
  • 因果掩码挡住未来位置,也是 KV cache 得以成立的前提。
  • 成本随序列长度的平方增长。

下一篇: 为什么要多个注意力头?——一次注意力不够用。

本页目录

  • 核心动作
  • 四个步骤
  • 为什么它胜过其他方案
  • 因果掩码
  • 自注意力与交叉注意力
  • 成本花在哪儿
  • 要点回顾
站点标志Map the AI

AI 不断向前,学习有路可循。

地图
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图
公司
  • 关于我们
  • 联系我们
法律
  • Cookie 政策
  • 隐私政策
  • 服务条款
© 2026 Map the AI。由 NeatSeed LLC 运营。保留所有权利。