拓客引流推广wordpress教程seo
2026/3/11 12:54:38 网站建设 项目流程
拓客引流推广,wordpress教程seo,潍坊专业舞蹈学校,鞍山做网站或本文解析大模型从传统多头注意力(MHA)转向MQA/GQA/MLA的底层逻辑。KV Cache虽解决了解码阶段的重复计算问题#xff0c;却引发了内存墙问题#xff0c;导致显存带宽瓶颈。随着上下文增长#xff0c;KV Cache占用剧增#xff0c;数据搬运时间远超计算时间。MQA/…本文解析大模型从传统多头注意力(MHA)转向MQA/GQA/MLA的底层逻辑。KV Cache虽解决了解码阶段的重复计算问题却引发了内存墙问题导致显存带宽瓶颈。随着上下文增长KV Cache占用剧增数据搬运时间远超计算时间。MQA/GQA/MLA通过减少键值头数量直接瘦身KV Cache是突破内存墙的关键架构优化在模型性能与推理效率间取得平衡。1 TL;DR本文的目标在于理清楚一个核心问题为什么主流大模型纷纷从传统的多头注意力转向了MQA、GQA、MLA等变体关键在于解码阶段的KV Cache及其引发的“内存墙”问题。内容如下Prefill与Decoding两阶段的本质区别。KV Cache如何以空间换时间解决重复计算。KV Cache 如何从“救星”变为“瓶颈”导致严重的显存带宽压力。MHA → MQA/GQA/MLA的演进逻辑通过减少需要缓存的键值头num_key_value_heads数量直接“瘦身”KV Cache是突破内存墙最直接的架构优化手段。这个系列的共计三篇。作为第一篇算个引子本篇主要还是先串一串逻辑把叙事部分讲好。另外我知道光看文字和公式[b, h, L, d]这些维度的变化在脑子里还是容易打结。为了让你更直观地看到数据在显存里到底是怎么流转的我特意让AI手搓了一个可视化页面建议配合本文食用我把这个维度变换的流程放在了MHA推理流程。更建议自己手动推一遍2 优化的目标从Attention的选择困难开始对于现代大模型架构各个transformer的组件已经逐渐被更新的模块替换。以attention为例可以看到千奇百怪的attention有从硬件和框架上优化的也有结构上优化的。不同模型选择各不相同比如Llama、Qwen3-Next都采用了GQADeepseek的MLA。抛开oLMO 2 这种研究性质模型minimax的M2这样的商业落地的模型反而采用了MHA这样的传统的结构。也就是说研究者对不同的模块选择依然有各自的见解和选择。这里先按下对不同Attention直接介绍我们先放出一个问题我们对Attention的优化到底在优化什么要理解这个问题我们先从推理的两个阶段开始。3 推理的两个阶段在大模型的推理阶段分为两个步骤Prefill 阶段当模型接收到用户的初始提示Prompt时它处于预填充阶段。此刻模型拥有完整的输入序列其任务是并行计算所有输入词元的中间表示并生成第一个输出词元。这一过程为矩阵与矩阵的乘法GEMM计算高度密集充分利用GPU的并行计算单元属于典型的计算受限场景。然而从生成第二个词元开始模型便进入了解码阶段。Decoding 阶段每生成一个新词元模型在注意力计算中都需要让当前词元的注意是向量而不是矩阵与之前生成的整个历史序列进行交互。如果不做任何优化那么每一步都需要为所有历史词元重新计算其键Key和值Value向量。问题在于历史词元的、在其自身被生成时就已经计算过了。于是生成序列越长为单个新词元所进行的重复计算就越多理论复杂度攀升至²。Note有点理解不来是吧我们手推一下。4 MHA的计算流程4.1 MHA的prefill整个MHA的prefill阶段可以凝练成下面这些内容模型接收到完整的输入序列其完整的序列可以写作。通过线性层 将整个序列投影得到矩阵经过权重投影与分头重塑数据维度演变为[b, h, L, d_h]以支持多头并行计算随后通过与的矩阵乘法生成一个[b, h, L, L]的完整注意力分数方阵用于计算序列内所有 Token 之间的相互关注程度。经过掩码处理与 矩阵聚合后各头输出被拼接还原回[b, L, d]并依次通过AddNorm及 FFN等 模块。虽然模型在各层并行计算了全量序列的表征但为了生成第一个预测词模型最终仅提取输出矩阵最后一行的[b, 1, d]向量同时将此阶段产生的全量 K 和 V 存入KV Cache作为后续增量计算的基础。用一个简化的例子来推一下如果我的输入是“别偷着学了带带我啊”可以表示为[“别”, “偷着”, “学了”“带带”“我”“啊”]。我们简化维度设为6。也就是一个token会被表示成一个[1, 4]的向量合起来就是一个[6, 4]的矩阵。在一个多头注意力下我们的head为2则会得到如下过程MHA的Prefill流程示意我们每个head都要执行一次attention的score计算在 Transformer 结构中每一层的输出向量Hidden State中只有最后一行即最新 Token 的向量会被传递到最终的LM Head或下一层对应的位置用于生成下一个预测结果。Prefill阶段因为所有的输入我们都没见过需要并行的计算整个Attention矩阵然后取最后一行进入LM Head进行下一个token预测。但是问题在于当我们第一个token出来之后进入decoding阶段我们需要计算下一个token。自回归的特性让我们生成第 个 token 时虽然我们需要 的 K 和 V 来计算注意力但这些历史 token 的 K 和 V 在生成第 个 token 时已经算过一遍了。4.2 MHA的decoding4.2.1 如果没有kv cache如果没有kv cache我们完整的迭代计算prefill之后的每一个next token其过程都是要完整的计算一遍所有内容和prefill阶段没有任何区别。MHA decodingno kv cache但是仔细观察一下就能发现QKV以及我们的attention score浅色的部分都是计算过的。在上面的流程中其实我们是重新计算了一遍。这种做法使得生成 个 token 的总计算复杂度飙升至 不包括矩阵乘法本身的复杂度仅看处理量级。随着 Context Length 的增加计算资源被大量浪费在“重复造轮子”上。• 当t100时我们重新计算了前 99 个 token 的 K 和 V。• 当t4096时为了这 1 个新 token我们重新计算了前 4095 个 token 的 K 和 V。很明显这是非常不合理的。prefill和decodingno cache比较Question既然 到 的 K 和 V 矩阵在之前的步骤中是固定的为什么不把它们存下来4.2.2 有kv cache对的既然我们已经计算过了K和V了我们只要把内容存下来等下一次decoding的时候再拿出来就好了。于是真正的计算流程就变成了这样对于K和V我们只要把新计算的K和V提出来和新计算的以及拼接上即可decoding cache流程现在生成第 个 token 的流程变了输入的完整序列加上了上一次生成的个token。表示为其中 是已经处理过的历史上下文我们不需要是当前步骤中模型唯一需要处理的新输入。这样避免了对历史 token 进行重复的 Embedding 和线性层计算接着用权重矩阵 和当前的仅为当前 token 计算其对应的向量此时生成的 是行向量而非大矩阵。当前的查询向量 与完整的 计算注意力分数并作用于很明显由于 是单行向量此步计算由矩阵-矩阵乘法GEMM退化为矩阵-向量乘法GEMV计算量减少了太多。将最新的追加写入显存中的 Cache 区域为生成第 个 token 做好准备这就是KV cache。我们再对比一下区别decoding的kv cache和no cache比较Note题外话这也正好回答了知乎上一个问题 ”为什么没有Q cache因为很多人没有实际理解模型输出的数据变化推理阶段的decoding的输入输出以及中间数据变化只要了解了就很直观。对于decoding我们拿t-1个token的embedding去计算。这是一个向量其操作是GEMV出来的也是一个向量之前Q矩阵的其他信息是不参与后续计算的之前Q的信息是完全不需要缓存。5 KV Cache 带来的问题KV Cache 的本质是空间换时间。KV Cache 节省了计算量但需要占用显存。5.1 KV Cache的显存占用每个 token 需要存储的显存量为其中•2代表 K 和 V 两个矩阵。•n_layers模型层数。•n_heads x d_head其实就是 模型的维度。•P_precision精度FP16 为 2 bytes。拿经典的MHA结构大模型算一下这里用Llama-2-7B新模型都大多已经换了GQA或者MLA了为例其config.json如下{ architectures:[ LlamaForCausalLM],bos_token_id:1,eos_token_id:2,hidden_act:silu,hidden_size:4096,initializer_range:0.02,intermediate_size:11008,max_position_embeddings:4096,model_type:llama,num_attention_heads:32,num_hidden_layers:32,num_key_value_heads:32,pad_token_id:0,pretraining_tp:1,rms_norm_eps:1e-05,tie_word_embeddings:false,torch_dtype:float16,transformers_version:4.30.2,use_cache:true,vocab_size:32000}这是一个标准MHA。•n_layers: 32•d_model: 4096 (即 n_head × d_head)•P_precision: FP32 (4 bytes)层头维这看起来不多让我们把context length加长如果Context 4096那就要占用 。2G看着也还行那如果并发上来呢。比如batch size是32呢。。也就是说如果投入到商用只要用户量稍微上来一张 80GB 的 A100 甚至塞不下 Batch 64 的 KV Cache。5.2 显存带宽除了显存问题不是主要问题更麻烦的其实是显存带宽。GPU中有两个部分一个是HBM显存也就是VRAM另一个是SRAM计算单元。我们的attention计算是在计算单元中的但是缓存的KV是在HBM里的。既然之前我们已经缓存过K和V但是去计算的时候是需要K和V的那就要把K和V从GPU的HBM移动到SRAM中进行计算。这时候KV cahce用空间换来的时间又迎来问题了。因为搬运也是要成本的。而决定是搬运效率的就是显存带宽。显存带宽结构显存带宽有大有小这里是大概的一个范围。具体可以参考nvidia-ada-gpu-architecture.pdf 或者其他Nvidia架构的官网资料。架构显卡显存带宽FP16/BF16 算力显存类型VoltaTesla V100900 GB/s~125 TFLOPSHBM2TuringTitan RTX672 GB/s~130 TFLOPSGDDR6Ampere (计算卡)A1002039 GB/s312 TFLOPSHBM2eAmpere (游戏卡)RTX 3090 Ti1008 GB/s~160 TFLOPSGDDR6XHopperH100 (SXM)3352 GB/s989 TFLOPSHBM3Ada LovelaceRTX 40901008 GB/s~330 TFLOPSGDDR6X看着不直观没法理解对吧老规矩算一遍。还是以LLaMA-7B为例假设我们现在用FP16也就是2Byte那么权重约为 14GB。假设 KV Cache 此时积累了 1GB。需要搬运的总数据量 15GB。一张 A100 的显存带宽约为 实际上达不到理论峰值这里按理想情况算。生成1 个 Token所需的时间搬运数据时间。计算时间7B 模型大约对应 14G FLOPS。A100 算力 312 TFLOPS。计算时间 。对比一下搬运时间/计算时间7.5/0.04187.5愣住好好好187.5倍也就是说。搬运的时候计算单元大部分时间是闲着的。这就真不能忍了我摸鱼也就算了显卡也摸鱼而且这只是1G的KV Cache如果你的KV Cache积累到10G、20G或者更多呢这种现象称为内存墙Memory Wall。可以通过下列公式计算Question架构的问题我能咋办要么加带宽买更贵的 HBM要么减少需要搬运的数据量尤其是 KV Cache。我们再来审视一下KV Cache的公式让我们用排除法一个个看•2这是 Attention 机制定义的基石。只要是自注意力就需要 K 和 V 两个矩阵来计算相关性这是物理底层动不得。•n_layers层数这是模型“深”度的体现直接决定了模型的推理能力和抽象层次。动了可能会降智要谨慎考虑。•d_head头维度通常是 128这决定了每个头能容纳多少特征信息砍了也会严重影响智力不好动。•P_precision精度从 FP16 (2字节) 降到 INT8 (1字节) 甚至 INT4 (0.5字节)这确实是个思路但那是另一个优化方向可以叠加使用这里先按下不表。现在比较好动的目光锁定在了 头数上。既然KV Cache缓存的是K和V而K和V是attention模块的更准确的说是Multi Head Attention。我们能不能对其进行优化这就引出了一个大胆的假设我们真的需要那么多 KV Head 吗终于我们回到了最初的问题。Question我们对Attention的优化我们到底在优化什么6 MQA 与 GQAMQA(Multi-Query Attention) 和GQA(Grouped-Query Attention)的核心机制是通过减少键值头的数量num_key_value_heads来降低Decoding阶段需要缓存和从显存中读取的KV Cache大小从而缓解“内存墙”带来的带宽瓶颈提升生成速度。MQA 通过让所有查询头共享单一组键值头来达成极致的缓存压缩但这通常会导致模型输出质量的可感知下降GQA 则通过将查询头分组并让每组共享一组键值头提供了一个可灵活配置的权衡点允许模型开发者在推理速度和模型质量之间进行更精细的平衡。MHA、GQA、MQA对比6.1 MQA让所有的 Query Head共享同一组 Key Head 和 Value Head。其直接结果就是。我们还是算一下如果Llama-2-7B换成MQA是多少层头维head的数量少了32倍对比MHA的版本KV Cache 大小直接少了32倍。6.2 GQA这里的 Group 数就是最终 KV Head 的数量即 。每个 KV Head 负责服务的 Query Head 数量为。我们算一下如果Llama-2-7B换成8 组Group8的 GQA 是多少层头维Head 的数量从 32 变成了 8每 4 个 Query 共享 1 个 KV对比 MHA 的版本KV Cache 大小少了4 倍。6.3 MLAMLAMulti-head Latent Attention代表了另一种优化思路。与MQA、GQA直接减少KV头的“物理”数量不同MLA的核心在于改变Attention的计算结构。MLA同样能有效缓解KV Cache的内存压力但其实现路径并非直接调整num_kv_heads而是在计算图层面进行了重构以达到类似的优化目的。如何系统的学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。一直在更新更多的大模型学习和面试资料已经上传带到CSDN的官方了有需要的朋友可以扫描下方二维码免费领取【保证100%免费】01.大模型风口已至月薪30K的AI岗正在批量诞生2025年大模型应用呈现爆发式增长根据工信部最新数据国内大模型相关岗位缺口达47万初级工程师平均薪资28K数据来源BOSS直聘报告70%企业存在能用模型不会调优的痛点真实案例某二本机械专业学员通过4个月系统学习成功拿到某AI医疗公司大模型优化岗offer薪资直接翻3倍02.大模型 AI 学习和面试资料1️⃣ 提示词工程把ChatGPT从玩具变成生产工具2️⃣ RAG系统让大模型精准输出行业知识3️⃣ 智能体开发用AutoGPT打造24小时数字员工熬了三个大夜整理的《AI进化工具包》送你✔️ 大厂内部LLM落地手册含58个真实案例✔️ 提示词设计模板库覆盖12大应用场景✔️ 私藏学习路径图0基础到项目实战仅需90天第一阶段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 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询