LLM 中的 Attention(注意力机制)如何工作?
Attention(注意力机制) 通过动态计算输入序列中不同 Token 之间的重要程度,帮助 Transformer 建立上下文关系,是现代大语言模型理解和生成文本的核心机制。
相比传统神经网络只能按照顺序处理文本,Attention 能够同时观察整个输入序列,并根据当前 Token 自动决定应该关注哪些信息。这种设计使模型能够理解长距离依赖关系,也是 GPT、Claude、Gemini、Llama、DeepSeek 等现代大语言模型能够处理复杂文本的重要原因。
Attention 并不是独立存在的模块,而是 Transformer 架构中最核心的组成部分。它与 AI Token、Embedding、Context Window、Temperature 等技术共同构成现代大语言模型的推理流程。
什么是 Attention,它解决了什么问题?
在阅读一句话时,人类不会平均关注每一个词,而是会自动把注意力放在最重要的信息上。例如看到”法国的首都是巴黎”,人们更容易关注”法国”和”首都”之间的关系,而不会把所有词语看作同等重要。
早期的 RNN 和 LSTM 需要按照顺序逐个处理 Token,当文本越来越长时,前面的信息容易逐渐遗忘,导致模型难以理解长距离依赖关系。这也是传统神经网络处理长文本时准确率下降的重要原因。
Attention 的出现改变了这一问题。模型不再按照固定顺序传递信息,而是能够直接计算任意两个 Token 之间的关联程度,从而动态决定哪些内容更值得关注。这不仅提升了长文本理解能力,也为 Transformer 的并行计算奠定了基础。
Self-Attention 是如何工作的?
Self-Attention 是目前大语言模型中最常使用的 Attention 类型。”Self” 表示模型分析的是同一句文本内部不同 Token 之间的关系,而不是两个不同序列之间的信息交互。
例如输入:
The capital of France is Paris.
当模型处理 Paris 时,它不会只关注前一个单词 is,而是会同时分析整个句子,并发现 France 与 capital 才是最重要的上下文信息。
整个过程可以理解为:
Input Sentence│▼Split into Tokens│▼Generate Q / K / V│▼Calculate Attention Scores│▼Weighted Sum of Values│▼Updated Token Representations
经过一次 Self-Attention 后,每个 Token 都会获得新的语义表示。这意味着 Token 的含义会随着上下文不断更新,而不是保持固定不变。例如,同样是 “Apple”,在不同句子中可能表示水果,也可能表示科技公司,模型正是通过 Self-Attention 完成这种语义区分。
Q、K、V 分别代表什么?
Self-Attention 的核心计算依赖三组向量:Query(Q)、Key(K) 和 Value(V)。虽然名称看起来抽象,但它们分别承担不同职责。
可以把整个过程理解成一个搜索系统。当前 Token 首先生成 Query,用来表示”我正在寻找什么信息”;其他 Token 会生成 Key,表示”我能够提供哪些信息”;同时,每个 Token 还对应一个 Value,用来保存真正需要传递的内容。
模型首先计算 Query 与所有 Key 的相似程度,得到每个 Token 的 Attention Score。随后,这些分数会经过 Softmax 转换为权重,再对所有 Value 按照权重进行加权求和,最终生成新的 Token 表示。
| 向量 | 主要作用 | 可以理解为 |
|---|---|---|
| Query (Q) | 发起查询 | 我要找什么信息 |
| Key (K) | 提供匹配 | 我包含哪些信息 |
| Value (V) | 提供内容 | 我真正传递的信息 |
正因为采用了这种机制,模型才能根据不同上下文动态调整注意力,而不是固定关注相邻 Token。
Attention Score 是如何计算的?
当模型获得所有 Q、K、V 向量后,会首先计算 Query 与每一个 Key 之间的相似程度,这个结果就是 Attention Score。Attention Score 越高,说明当前 Token 与对应 Token 的关联程度越强。
不过,这些原始分数并不能直接作为权重使用。模型还会通过 Softmax 将所有分数转换为概率分布,使每个 Token 的注意力权重之和等于 100%。
最终,每个 Token 都会按照不同权重汇总所有 Value 信息,并生成新的语义表示。因此,Attention 并不是简单选择某几个 Token,而是综合利用整个上下文的信息,只是不同 Token 的影响程度有所不同。
为什么需要 Multi-Head Attention(多头注意力)?
如果模型每次只能从一个角度分析上下文,那么获得的信息会比较有限。现实语言往往同时包含语法关系、语义关系、实体关系以及长距离依赖,仅依靠一次 Attention 难以完整理解一句话。
因此,Transformer 引入了 Multi-Head Attention(多头注意力)。它会将输入向量拆分成多个子空间,由多个 Attention Head 同时进行计算,每个 Head 关注不同类型的信息,最后再将所有结果组合起来形成新的表示。
例如,在一句话中,一个 Attention Head 可能主要关注主谓关系,另一个 Head 更关注代词指代,还有一些 Head 会分析实体之间的联系。多个 Head 并行工作,使模型能够从多个角度理解同一段文本,而不是只得到单一视角的结果。
可以将整个过程理解为多人协作分析一份文档。不同成员分别负责语法、语义、逻辑和上下文等内容,最后综合所有人的分析结果形成更加完整的理解。这也是 Multi-Head Attention 比单一 Attention 表现更好的原因。
整个流程可以简化表示为:
Input Embeddings│▼Split into Multiple Heads│├───────────────┐▼ ▼Attention Head 1 Attention Head 2│ │├───────────────┤▼ ▼Attention Head 3 Attention Head 4│▼Concatenate Outputs│▼Linear Projection│▼Updated Representations
现代大语言模型通常包含数十甚至上百个 Attention Head,它们共同构成 Transformer 的上下文理解能力,也是模型能够处理复杂语言的重要原因。
Attention 与 Context Window 有什么关系?
Attention 能够分析 Token 之间的关系,但它能够分析的范围受到 Context Window(上下文窗口) 的限制。只有位于当前 Context Window 内的 Token,才能参与 Attention 计算。
例如,当一个模型支持 128K Context Window 时,Self-Attention 可以在这 128K 个 Token 之间自由建立关联关系。如果某段内容已经超出 Context Window,被模型”遗忘”,Attention 也无法再访问这些信息。
因此,Context Window 决定了模型一次能够”看到”多少信息,而 Attention 则决定了模型如何利用这些信息。两者共同影响模型的长文本理解能力和推理表现。
随着 Context Window 不断扩大,Attention 的计算规模也会同步增长。因此,长上下文模型虽然能够处理更多内容,但也需要消耗更多计算资源。这也是近年来出现 Sparse Attention、FlashAttention 等优化技术的重要原因,它们旨在降低长文本计算成本,提高推理效率。
Attention 有哪些局限性?
虽然 Attention 极大提升了 Transformer 的能力,但它并不是没有限制。其中最主要的问题来自计算复杂度。
标准 Self-Attention 需要计算所有 Token 两两之间的关系,因此计算量会随着 Token 数量增加而快速增长。当输入长度翻倍时,需要计算的 Attention Score 数量约增加四倍,这也是长文本推理成本较高的重要原因。
此外,Attention 更关注 Token 之间的统计关联,而不是逻辑推理本身。模型虽然能够发现不同 Token 之间的联系,但并不意味着真正理解事实或具备人类意义上的推理能力。因此,大语言模型仍可能出现事实错误、逻辑不一致或幻觉等问题。
近年来,研究人员提出了 FlashAttention、Sparse Attention、Linear Attention、Grouped Query Attention(GQA) 等多种优化方案,希望在保持模型性能的同时降低计算成本。这些技术已经逐渐应用于现代大语言模型,用于支持更长的 Context Window 和更高效的推理过程。
总结
Attention(注意力机制)是 Transformer 架构最核心的组成部分,它通过动态计算不同 Token 之间的重要程度,使模型能够建立上下文关系,并准确理解长距离语义依赖。
在整个计算过程中,模型首先生成 Query(Q)、Key(K) 和 Value(V),再计算 Attention Score 并形成概率分布,最终更新每个 Token 的语义表示。为了进一步提升表达能力,Transformer 采用 Multi-Head Attention 从多个角度分析文本,使模型能够同时学习语法、语义和实体关系。
随着生成式 AI 的不断发展,Attention 已成为现代大语言模型最重要的基础技术之一,并与 Transformer、Embedding、Context Window、AI Token、Temperature 等机制共同构成完整的推理流程,为自然语言理解、多模态 AI 和 AI Agent 提供了底层支撑。
FAQ
什么是 Attention(注意力机制)?
Attention 是一种用于计算不同 Token 之间重要程度的机制,帮助模型根据上下文动态建立语义关联,是 Transformer 的核心组成部分。
Self-Attention 与 Attention 有什么区别?
Attention 是一种通用机制,而 Self-Attention 专门用于分析同一输入序列内部不同 Token 之间的关系,是现代大语言模型最常使用的 Attention 类型。
Q、K、V 分别代表什么?
Query(Q)表示当前 Token 需要查询的信息,Key(K)用于匹配相关内容,Value(V)保存真正需要传递的信息,三者共同完成 Attention 的计算过程。
为什么需要 Multi-Head Attention?
Multi-Head Attention 能够让模型从多个不同角度分析同一段文本,同时学习语法、语义、实体关系和上下文信息,从而获得更丰富的语义表示。
Attention 与 Context Window 有什么关系?
Context Window 决定模型一次能够处理多少 Token,而 Attention 负责分析这些 Token 之间的关系,两者共同影响模型的上下文理解能力。
Attention 会影响模型推理速度吗?
会。标准 Self-Attention 的计算复杂度会随着输入长度快速增长,因此长上下文推理通常需要更多计算资源,这也是 FlashAttention 等优化技术出现的重要原因。


