收藏 | 轻松入门:一文读懂 MHA 多头注意力机制,大模型必备基础能力!

张开发
2026/4/18 20:57:53 15 分钟阅读

分享文章

收藏 | 轻松入门:一文读懂 MHA 多头注意力机制,大模型必备基础能力!
MHA多头注意力让模型能从多个视角理解上下文通过并行处理不同关系如语义、句法、指代等提升模型表达力。文章详细解析了MHA的核心原理、Self-Attention与Cross-Attention的区别并结合GPT-2说明其在生成任务中的应用。同时探讨了MHA在推理阶段的性能挑战如访存压力和KV Cache问题以及MQA/GQA等优化方法帮助初学者全面掌握这一大模型关键能力。如果只用一句话概括 MHAMulti-Head Attention多头注意力它做的事情是让模型从多个视角同时理解同一段上下文。在 Transformer 里注意力机制决定了一个 token 在当前时刻应该重点看谁。单头注意力当然也能工作但表达空间有限MHA 会把输入投影到多个子空间让不同的 head 并行建模不同关系比如语义关联、句法依赖、指代关系和位置信息。对大模型来说这不是“优化项”而是基础能力。一、先抓住核心MHA 到底在做什么MHA 可以拆成两步把输入分别映射成多组Q、K、V。每个 head 独立做 attention最后把多个 head 的结果拼接再投影回原始维度。可以把它理解成一组并行的“观察角度”•QQuery我现在想找什么信息•KKey我这里有什么线索可供匹配•VValue真正被聚合和输出的信息单个 head 像一个观察者多头就是一组观察者同时看同一段上下文。这样模型不会只在一个投影空间里思考而是能同时关注不同类型的关系。标准写法如下head_iAttention(Q_i,K_i,V_i)\text{head}\_i \text{Attention}(Q\_i, K\_i, V\_i)head_iAttention(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 最常见的形式。它的特点是Q、K、V都来自同一个输入序列X。设输入序列长度为nhidden size 为d则通过三组可训练参数把输入投影到Q、K、VQ←W_qXb_q1TQ \leftarrow W\_q X b\_q1^TQ←W_qXb_q1TK←W_kXb_k1TK \leftarrow W\_k X b\_k1^TK←W_kXb_k1TV←W_vXb_v1TV \leftarrow W\_v X b\_v1^TV←W_vXb_v1T其中•W_qd_q × d•W_kd_k × d•W_vd_v × d•Qn × d_q•Kn × d_k•Vn × d_v这里有两个容易混淆的点Q和K要做点积所以通常要求d_q d_k。V的维度不直接参与匹配分数计算它决定的是“被取出的信息长什么样”。attention 的本质是用Q和所有K做匹配再用得到的权重去加权V。这意味着模型先决定“看谁”再决定“取什么”。四、Cross-Attention一段序列去看另一段序列Cross-attention 和 self-attention 的区别不在计算公式而在来源•Q来自当前序列•K和V来自另一段序列最常见的场景是 encoder-decoder 架构。比如在机器翻译里decoder 当前生成一个词时会拿自己的隐藏状态作为Q再去“查询” encoder 输出的K、V从而决定该从源语言输入中取哪些信息。所以可以这样记• self-attention自己看自己• cross-attention当前序列去看别的序列五、放到 GPT-2 里看MHA 在哪一层工作以 GPT-2 Small 为例每个 Transformer block 里都包含一层 attention 和一层 MLP。图中的W_q、W_k、W_v、W_o是 attention 相关权重mlp_1、mlp_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 cache2. Decode 阶段进入生成阶段后模型每次只生成一个新 token。此时每一步都要为当前 token 计算新的Q/K/V把新的K/V追加到 cache用当前Q去和历史所有K做匹配再用权重对历史所有V做聚合这也是为什么输出越长decode 越慢。3. 为什么会引出 KV Cache 和 MQA/GQA原始 MHA 在每个 head 上都维护一份独立的K/V。这会带来两个后果• cache 体积大• 每一步都要从显存里反复读很多历史K/V所以后续才会有 Multi-Query AttentionMQA和 Grouped-Query AttentionGQA这样的变体本质目标都是一样的减少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 的K和V投影结果。这样做的原因很简单• 历史 token 的K/V一旦算出来后面不会再变• 下一个 token 到来时没有必要把整段历史重新投影一遍• 只要算当前 token 的Q再拿它去和缓存中的K/V交互即可这就是为什么 KV Cache 能显著降低重复计算但同时也把系统推向另一个瓶颈缓存越长读取成本越高。参考https://medium.com/joaolages/kv-caching-explained-276520203249九、把生成过程串起来看一遍假设输入是“潮水”模型接下来生成“退了就”。整个过程可以粗略理解为输入“潮水”经过多层 decoder。每一层内部都做 masked self-attention 和 MLP 计算。attention 过程中会得到并保存当前上下文的K/V cache。最后一层输出经过词表投影得到下一个 token 的概率分布。根据 greedy、top-k、top-p 等策略采样出“退了”。再把“退了”作为下一步输入重复同样的过程生成“就”。从工程角度看这个循环可以拆成两个阶段encode/prefill输入完整 prompt产出初始的k_cache、v_cache以及最后一个 token 的隐藏状态。decode每次输入一个新 token对 cache 追加一条记录并预测下一个 token。这也是为什么大模型的“首 token 延迟”和“后续 token 吞吐”往往要分开看。前者主要受 prefill 影响后者主要受 decode 阶段的 attention 访存影响。十、最后总结如果把这篇文章浓缩成三句话MHA 的本质是让模型从多个子空间并行建模上下文关系。在训练阶段MHA 是 Transformer 表达能力的关键来源之一。在推理阶段MHA 同时也是 KV Cache、显存占用和访存瓶颈的核心来源。所以理解 MHA不只是理解一个公式而是在理解大模型为什么能“看懂上下文”以及它为什么会在长序列推理时变慢。那么如何学习大模型 AI 对于刚入门大模型的小白或是想转型/进阶的程序员来说最头疼的就是找不到系统、全面的学习资源要么零散不成体系要么收费高昂白白浪费时间走弯路。今天就给大家精心整理了一份全面且免费的AI大模型学习资源包覆盖从入门到实战、从理论到面试的全流程所有资料均已整理完毕免费分享给各位核心包含AI大模型全套系统化学习路线图小白可直接照做、精品学习书籍电子文档、干货视频教程、可直接上手的实战项目源码、2026大厂面试真题题库一站式解决你的学习痛点不用再到处搜集拼凑扫码免费领取全部内容1、大模型系统化学习路线学习大模型方向比努力更重要很多小白入门就陷入“盲目看视频、乱刷资料”的误区最后越学越懵。这里给大家整理的这份学习路线是结合2026年大模型行业趋势和新手学习规律设计的最科学、最系统从零基础到精通每一步都有明确指引帮你节省80%的无效学习时间少走弯路、高效进阶。2、大模型学习书籍文档理论是实战的根基尤其是对于程序员来说想要真正吃透大模型原理离不开优质的书籍和文档支撑。本次整理的书籍和电子文档均由大模型领域顶尖专家、大厂技术大咖撰写涵盖基础入门、核心原理、进阶技巧等内容语言通俗易懂既有理论深度又贴合实战场景小白能看懂程序员能进阶为后续实战和面试打下坚实基础。3、AI大模型最新行业报告无论是小白了解行业、规划学习方向还是程序员转型、拓展业务边界都需要紧跟行业趋势。本次整理的2026最新大模型行业报告针对互联网、金融、医疗、工业等多个主流行业系统调研了大模型的应用现状、发展趋势、现存问题及潜在机会帮你清晰了解哪些行业更适合大模型落地哪些技术方向值得重点深耕避免盲目学习精准对接行业需求。值得一提的是报告还包含了多模态、AI Agent等前沿方向的发展分析助力大家把握技术风口。4、大模型项目实战配套源码对于程序员和想落地能力的小白来说“光说不练假把式”只有动手实战才能真正巩固所学知识将理论转化为实际能力。本次整理的实战项目涵盖基础应用、进阶开发、多场景落地等类型每个项目都附带完整源码和详细教程从简单的ChatPDF搭建到复杂的RAG系统开发、大模型部署难度由浅入深小白可逐步上手程序员可直接参考优化既能练手提升技术又能丰富简历为求职和职业发展加分。5、大模型大厂面试真题2026年大模型面试已从单纯考察原理转向侧重技术落地和业务结合的综合考察很多程序员和新手因为缺乏针对性准备明明技术不错却在面试中失利。为此我精心整理了各大厂最新大模型面试真题题库涵盖基础原理、Prompt工程、RAG系统、模型微调、部署优化等核心考点不仅有真题还附带详细解题思路和行业踩坑经验帮你精准把握面试重点提前做好准备面试时从容应对、游刃有余。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%免费】

更多文章