MHA(多头注意力)让模型能从多个视角理解上下文,通过并行处理不同关系(如语义、句法、指代等),提升模型表达力。文章详细解析了MHA的核心原理、Self-Attention与Cross-Attention的区别,并结合GPT-2说明其在生成任务中的应用。同时探讨了MHA在推理阶段的性能挑战,如访存压力和KV Cache问题,以及MQA/GQA等优化方法,帮助初学者全面掌握这一大模型关键能力。

如果只用一句话概括 MHA(Multi-Head Attention,多头注意力),它做的事情是:让模型从多个视角同时理解同一段上下文。

在 Transformer 里,注意力机制决定了一个 token 在当前时刻应该重点看谁。单头注意力当然也能工作,但表达空间有限;MHA 会把输入投影到多个子空间,让不同的 head 并行建模不同关系,比如语义关联、句法依赖、指代关系和位置信息。对大模型来说,这不是“优化项”,而是基础能力。

一、先抓住核心:MHA 到底在做什么?

MHA 可以拆成两步:

    1. 把输入分别映射成多组 QKV
    1. 每个 head 独立做 attention,最后把多个 head 的结果拼接,再投影回原始维度。

可以把它理解成一组并行的“观察角度”:

  • Q(Query):我现在想找什么信息
  • K(Key):我这里有什么线索可供匹配
  • V(Value):真正被聚合和输出的信息

单个 head 像一个观察者,多头就是一组观察者同时看同一段上下文。这样模型不会只在一个投影空间里思考,而是能同时关注不同类型的关系。

标准写法如下:

head_i=Attention(Q_i,K_i,V_i)\text{head}\_i = \text{Attention}(Q\_i, K\_i, V\_i)head_i=Attention(Q_i,K_i,V_i)

MHA(X)=Concat(head_1,…,head_h)W_o\text{MHA}(X) = \text{Concat}(\text{head}\_1, \dots, \text{head}\_h)W\_oMHA(X)=Concat(head_1,,head_h)W_o

这里的 h 是 head 的数量,W_o 用来把多个 head 的输出重新映射回模型隐藏维度。

二、为什么一定要“多头”?

这是理解 MHA 最关键的问题。

如果只有单头 attention,模型也能算出“当前 token 应该关注谁”,但它只能在一个表示空间里做这件事。问题在于,自然语言里的关系不是单一的:

  • • 有的是局部搭配关系
  • • 有的是长距离依赖
  • • 有的是代词指代
  • • 有的是语义相似
  • • 有的是位置和顺序约束

把这些关系都压在一个 head 里,模型的表达会很吃力。多头的价值就在于:让不同 head 在不同子空间里各自学习擅长的模式,最后再把结果合起来。

所以,MHA 的重点不是“把一次 attention 复制很多份”,而是“把理解上下文这件事拆成多个并行视角”。

三、Self-Attention:序列内部自己看自己

Self-attention 是 MHA 最常见的形式。它的特点是:QKV 都来自同一个输入序列 X

设输入序列长度为 n,hidden size 为 d,则通过三组可训练参数把输入投影到 QKV

Q←W_qX+b_q1TQ \leftarrow W\_q X + b\_q1^TQW_qX+b_q1T

K←W_kX+b_k1TK \leftarrow W\_k X + b\_k1^TKW_kX+b_k1T

V←W_vX+b_v1TV \leftarrow W\_v X + b\_v1^TVW_vX+b_v1T

其中:

  • W_qd_q × d
  • W_kd_k × d
  • W_vd_v × d
  • Qn × d_q
  • Kn × d_k
  • Vn × d_v

这里有两个容易混淆的点:

    1. QK 要做点积,所以通常要求 d_q = d_k
    1. V 的维度不直接参与匹配分数计算,它决定的是“被取出的信息长什么样”。

attention 的本质,是用 Q 和所有 K 做匹配,再用得到的权重去加权 V。这意味着:模型先决定“看谁”,再决定“取什么”。

四、Cross-Attention:一段序列去看另一段序列

Cross-attention 和 self-attention 的区别不在计算公式,而在来源:

  • Q 来自当前序列
  • KV 来自另一段序列

最常见的场景是 encoder-decoder 架构。比如在机器翻译里,decoder 当前生成一个词时,会拿自己的隐藏状态作为 Q,再去“查询” encoder 输出的 KV,从而决定该从源语言输入中取哪些信息。

所以可以这样记:

  • • self-attention:自己看自己
  • • cross-attention:当前序列去看别的序列

五、放到 GPT-2 里看,MHA 在哪一层工作?

以 GPT-2 Small 为例,每个 Transformer block 里都包含一层 attention 和一层 MLP。图中的 W_qW_kW_vW_o 是 attention 相关权重,mlp_1mlp_2 是前馈网络的线性层权重。

对于 GPT 这类 decoder-only 模型,主体使用的是 masked self-attention。它能保证当前位置只能看到自己以及之前的 token,看不到未来 token,因此可以用于自回归生成。

换句话说,MHA 不只是“理解输入”的模块,也是“按顺序生成输出”的核心模块。

六、MHA 为什么在推理阶段这么贵?

训练时大家更关心算力,到了线上推理,MHA 的另一个问题会变得非常明显:访存压力大。

原因很直接。生成下一个 token 时,当前 query 需要和历史所有 key 做匹配,还要把历史所有 value 再读一遍做加权求和。序列越长,历史 K/V 越大,内存带宽越容易成为瓶颈。

1. Prefill 阶段

也可以叫 context 阶段。第一次输入整段 prompt 时,所有 token 一起计算 attention,同时完成 KV Cache 的预填充。

这个阶段的特点是:

  • • 输入是一整段序列
  • • 计算量高,但并行度也高
  • • 会一次性生成整段上下文的 K/V cache

2. Decode 阶段

进入生成阶段后,模型每次只生成一个新 token。此时每一步都要:

    1. 为当前 token 计算新的 Q/K/V
    1. 把新的 K/V 追加到 cache
    1. 用当前 Q 去和历史所有 K 做匹配
    1. 再用权重对历史所有 V 做聚合

这也是为什么输出越长,decode 越慢。

3. 为什么会引出 KV Cache 和 MQA/GQA?

原始 MHA 在每个 head 上都维护一份独立的 K/V。这会带来两个后果:

  • • cache 体积大
  • • 每一步都要从显存里反复读很多历史 K/V

所以后续才会有 Multi-Query Attention(MQA)和 Grouped-Query Attention(GQA)这样的变体,本质目标都是一样的:减少 K/V 的存储和读取成本,让推理更高效。

七、用一段最小伪代码看清计算过程

如果只保留 MHA 的骨架,它大概就是下面这几步:

def multi_head_attention(X, W_q, W_k, W_v, W_o):    Q = split_heads(X @ W_q)    K = split_heads(X @ W_k)    V = split_heads(X @ W_v)    scores = softmax((Q @ K.transpose(-1, -2)) / sqrt(d_k))    O = scores @ V    Y = merge_heads(O) @ W_o    return Y

真正实现里会有多头拆分、mask、缩放因子、batch 维度等细节,但核心逻辑没有变化:

  • • 先投影得到 Q/K/V
  • • 再算注意力权重
  • • 最后把信息从 V 里取出来

如果从推理角度看,一步增量生成还要多做一件事:把当前步得到的 K/V 追加到缓存里,供下一步继续使用。

八、KV Cache 到底缓存了什么?

KV Cache 缓存的不是最终输出,而是每一层 attention 里历史 token 的 KV 投影结果。

这样做的原因很简单:

  • • 历史 token 的 K/V 一旦算出来,后面不会再变
  • • 下一个 token 到来时,没有必要把整段历史重新投影一遍
  • • 只要算当前 token 的 Q,再拿它去和缓存中的 K/V 交互即可

这就是为什么 KV Cache 能显著降低重复计算,但同时也把系统推向另一个瓶颈:缓存越长,读取成本越高。

参考:

https://medium.com/@joaolages/kv-caching-explained-276520203249

九、把生成过程串起来看一遍

假设输入是“潮水”,模型接下来生成“退了就”。

整个过程可以粗略理解为:

    1. 输入“潮水”,经过多层 decoder。
    1. 每一层内部都做 masked self-attention 和 MLP 计算。
    1. attention 过程中会得到并保存当前上下文的 K/V cache
    1. 最后一层输出经过词表投影,得到下一个 token 的概率分布。
    1. 根据 greedy、top-k、top-p 等策略,采样出“退了”。
    1. 再把“退了”作为下一步输入,重复同样的过程,生成“就”。

从工程角度看,这个循环可以拆成两个阶段:

    1. encode/prefill
      输入完整 prompt,产出初始的 k_cachev_cache 以及最后一个 token 的隐藏状态。
    1. decode
      每次输入一个新 token,对 cache 追加一条记录,并预测下一个 token。

这也是为什么大模型的“首 token 延迟”和“后续 token 吞吐”往往要分开看。前者主要受 prefill 影响,后者主要受 decode 阶段的 attention 访存影响。

十、最后总结

如果把这篇文章浓缩成三句话:

    1. MHA 的本质,是让模型从多个子空间并行建模上下文关系。
    1. 在训练阶段,MHA 是 Transformer 表达能力的关键来源之一。
    1. 在推理阶段,MHA 同时也是 KV Cache、显存占用和访存瓶颈的核心来源。

所以,理解 MHA,不只是理解一个公式,而是在理解大模型为什么能“看懂上下文”,以及它为什么会在长序列推理时变慢。

那么如何学习大模型 AI ?

对于刚入门大模型的小白,或是想转型/进阶的程序员来说,最头疼的就是找不到系统、全面的学习资源,要么零散不成体系,要么收费高昂,白白浪费时间走弯路。今天就给大家精心整理了一份全面且免费的AI大模型学习资源包,覆盖从入门到实战、从理论到面试的全流程,所有资料均已整理完毕,免费分享给各位!

核心包含:AI大模型全套系统化学习路线图(小白可直接照做)、精品学习书籍+电子文档、干货视频教程、可直接上手的实战项目+源码、2026大厂面试真题题库,一站式解决你的学习痛点,不用再到处搜集拼凑!

👇👇扫码免费领取全部内容👇👇

在这里插入图片描述

1、大模型系统化学习路线

学习大模型,方向比努力更重要!很多小白入门就陷入“盲目看视频、乱刷资料”的误区,最后越学越懵。这里给大家整理的这份学习路线,是结合2026年大模型行业趋势和新手学习规律设计的,最科学、最系统,从零基础到精通,每一步都有明确指引,帮你节省80%的无效学习时间,少走弯路、高效进阶。
在这里插入图片描述

2、大模型学习书籍&文档

理论是实战的根基,尤其是对于程序员来说,想要真正吃透大模型原理,离不开优质的书籍和文档支撑。本次整理的书籍和电子文档,均由大模型领域顶尖专家、大厂技术大咖撰写,涵盖基础入门、核心原理、进阶技巧等内容,语言通俗易懂,既有理论深度,又贴合实战场景,小白能看懂,程序员能进阶,为后续实战和面试打下坚实基础。

在这里插入图片描述

3、AI大模型最新行业报告

无论是小白了解行业、规划学习方向,还是程序员转型、拓展业务边界,都需要紧跟行业趋势。本次整理的2026最新大模型行业报告,针对互联网、金融、医疗、工业等多个主流行业,系统调研了大模型的应用现状、发展趋势、现存问题及潜在机会,帮你清晰了解哪些行业更适合大模型落地,哪些技术方向值得重点深耕,避免盲目学习,精准对接行业需求。值得一提的是,报告还包含了多模态、AI Agent等前沿方向的发展分析,助力大家把握技术风口。

在这里插入图片描述

4、大模型项目实战&配套源码

对于程序员和想落地能力的小白来说,“光说不练假把式”,只有动手实战,才能真正巩固所学知识,将理论转化为实际能力。本次整理的实战项目,涵盖基础应用、进阶开发、多场景落地等类型,每个项目都附带完整源码和详细教程,从简单的ChatPDF搭建,到复杂的RAG系统开发、大模型部署,难度由浅入深,小白可逐步上手,程序员可直接参考优化,既能练手提升技术,又能丰富简历,为求职和职业发展加分。

img

5、大模型大厂面试真题

2026年大模型面试已从单纯考察原理,转向侧重技术落地和业务结合的综合考察,很多程序员和新手因为缺乏针对性准备,明明技术不错,却在面试中失利。为此,我精心整理了各大厂最新大模型面试真题题库,涵盖基础原理、Prompt工程、RAG系统、模型微调、部署优化等核心考点,不仅有真题,还附带详细解题思路和行业踩坑经验,帮你精准把握面试重点,提前做好准备,面试时从容应对、游刃有余。

img

6、四阶段精细化学习规划(附时间节点,可直接照做)

结合上述资源,给大家整理了一份可直接落地的四阶段学习规划,总时长约2个月,小白可循序渐进,程序员可根据自身基础调整节奏,高效掌握大模型核心能力,快速实现从“入门”到“能落地、能面试”的跨越。

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型

  • 带你了解全球大模型

  • 使用国产大模型服务

  • 搭建 OpenAI 代理

  • 热身:基于阿里云 PAI 部署 Stable Diffusion

  • 在本地计算机运行大模型

  • 大模型的私有化部署

  • 基于 vLLM 部署大模型

  • 案例:如何优雅地在阿里云私有部署开源大模型

  • 部署一套开源 LLM 项目

  • 内容安全

  • 互联网信息服务算法备案

👇👇扫码免费领取全部内容👇👇

在这里插入图片描述

3、这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
在这里插入图片描述
在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐