Decoder-only 模型结构
目前主流大语言模型都采用 Decoder-only 架构其核心流程如下图所示包括以下核心组件组件职责Embeddingtoken ID → d_model 维向量Attentiontoken 间信息交互建模上下文依赖FFN / MoE非线性变换增加模型表达能力RMSNorm归一化稳定数值Residual残差连接保证梯度流通LM Headhidden → 词表 logits其中 Attention 是唯一需要 KVCache 的模块。近年来围绕 Attention 的每一项改进几乎都在改变 KVCache 的形态和大小。2 大模型推理加速的本质三要素大模型推理的所有优化本质上都是围绕计算、存储、通信这三个核心资源维度进行的资源置换trade-off。我们的目标在保障推理效果的前提下于有限的物理约束内追求吞吐与延迟的最优解。存储换计算缓存 KVCache 或公共前缀用显存空间的增加换取计算量的减少。计算/存储换效率通过 FP8/FP4 量化或 GQA 结构在微小的效果损失下换取带宽的释放与计算吞吐的提升。通信换存储引入多级缓存用 PCIe/NVLink 的通信开销换取 GPU 显存的有效承载上限。通信换算力利用率采用 PD 分离架构通过增加系统通信开销换取计算集群在不同推理阶段Prefill/Decode更高的硬件利用率。结合本文的主题下面我们重点讨论 KVCache 的演进。3 近几年和 KVCache 相关的演进过去几年大模型 Attention 架构经历了 MHA、MQA、GQA、MLA再到稀疏注意力、线性注意力的演进。从 KVCache 的视角审视可以归纳为同一个目标让模型更强的同时让 KVCache 更小。3.1 压缩 KV 头数 —— MHA → MQA → GQA标准的 Multi-Head AttentionMHA中每个 Q 头都配有独立的 K 头和 V 头KVCache 大小与注意力头数成正比。MQAMulti-Query Attention, Shazeer 2019所有 Q 头共享一组 K/V 头KVCache 缩小到 MHA 的1/num_heads。效果极为显著但单组 KV 头的表达力不足模型质量有所下降。GQAGrouped-Query Attention, Ainslie et al. 2023折中方案——将 Q 头分组每组共享一对 KV 头。例如 Qwen2.5-72B 使用 64 个 Q 头 / 8 个 KV 头8:1 分组比KVCache 降至 MHA 的 1/8质量几乎无损。3.2 压缩 KV 表示 —— MLALatent 维度压缩3.1 的思路是减少 KV 头的数量而 MLA 换了一个角度——压缩每个 KV 头的维度。MLAMulti-head Latent Attention, DeepSeek V2/V3不存储完整的 K/V 向量而是将它们联合压缩到一个低维 latent 向量c。推理时只需缓存c维度 kv_lora_rank qk_rope_head_dim注意力计算时再解压还原。以 DeepSeek V3 为例传统 MHA 每 token 缓存 KV 维度为hidden_size × 2 7168 × 2 14336MLA 只需缓存kv_lora_rank qk_rope_head_dim 512 64 576维单层 KVCache 压缩约 96%且模型质量不降反升联合压缩提供了正则化效果3.3 稀疏注意力 —— 选择性保留压缩序列范围前两个思路压缩头数、压缩维度都是在缩小每个 token 的 KV 表示大小而稀疏注意力换了一个角度减少需要保留 KV 的 token 数量。其核心洞察是在长上下文场景中并非所有历史 token 都对当前生成同等重要。如果能识别并只保留关键token 的 KV便可以大幅缩减缓存规模同时保持模型质量。沿着这一思路业界经历了从固定窗口截断到动态稀疏选择再到分层混合策略的演进3.3.1 SWA —— 滑动窗口截断历史SWASliding Window Attention, Mistral 2023.10每个 token 只关注最近 W 个 token 的 KV窗口外的 KV 直接丢弃。KVCache 上限固定为窗口大小 W不再随序列增长。优势实现简单显存可控推理速度快局限窗口外的信息完全丢失长距离依赖能力受限SWA 提出了一个关键洞察并非所有历史 token 都同等重要近距离 token 的价值远高于远距离 token。但它的做法过于激进——对窗口外信息一刀切式丢弃。3.3.2 稀疏选择 —— 选择性保留关键信息滑动窗口简单高效但完全丢弃了窗口外的信息。能否不全部丢弃而是稀疏地选择最重要的 token 保留NSANative Sparse Attention, DeepSeek 2025.02率先验证了这一思路。它将注意力分解为三个并行分支压缩分支将 token 分块压缩为粗粒度表示捕获全局上下文精选分支通过 top-k 选择最相关的 token 块保留关键细节滑动窗口分支保留局部邻近信息三个分支输出加权融合以远少于全量的计算覆盖关键上下文。NSA 的设计强调硬件对齐——以连续块为粒度做稀疏选择匹配 GPU 的块状内存访问模式。 但 NSA 的三分支并行架构也带来了较高的工程复杂度。DSADeepSeek Sparse Attention, DeepSeek-V3.2 2025.09继承 NSA 稀疏核心思路做了轻量化的工程落地只保留精选分支的思路通过轻量级的 lightning indexer每个 query head 选择最相关的 KV 进行注意力计算。3.3.3 CSA HCA —— 分层混合集大成者CSA HCADeepSeek V4, 2026将 SWA 的近距离精确保留和 NSA 的远距离稀疏选择思想融合并推到极致形成分层混合注意力架构继承 SWA 的思想每层保留最近 128 token 的完整 KV滑动窗口继承 NSA 的思想对窗口外的历史不丢弃而是用不同粒度的压缩策略保留更进一步不同层使用不同的压缩比CSA 4:1HCA 128:1形成多尺度的信息覆盖不同距离的 token 分配不同的压缩策略。根据 DeepSeek V4 技术报告的等效对比在 1M token 的上下文设定下V4-Pro 的 KVCache 仅为 V3 的约 10%。以 V4-Pro 为例61 层前 2 层为 HCA之后 CSA 与 HCA 严格交替共 31 层 HCA 30 层 CSA。每一层的 KVCache 由两部分组成1滑动窗口所有层都有—— 存储最近 128 token 的完整 KV无论是 CSA 层还是 HCA 层都保留最近 128 个 token 的原始 KV不做任何压缩或丢弃。原因最近的 token 对当前生成贡献最大注意力权重随距离衰减近距离信息不能容忍任何精度损失HCA 的压缩需要凑满 128 个 token 才能执行未凑满的部分必须以原始形式保留2历史区域 —— CSA 层先压缩再稀疏选择CSA30 层的 4:1 压缩比通过两个阶段实现阶段一交错重叠压缩。不是简单的每 4 个 token 无重叠划分而是以4 token 为步长、8 token 为窗口交错压缩——每个 compressed KV 单元覆盖 8 个连续 token与前后各重叠 4 个最终序列长度变为 S/4原始历史: [t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, ...] c1 覆盖: [t1, t2, t3, t4, t5, t6, t7, t8 ] → 压缩为 1 个 c2 覆盖: [t5, t6, t7, t8, t9, t10, t11, t12] → 压缩为 1 个 c3 覆盖: [t9, t10, t11, t12, t13, t14, t15, t16] → 压缩为 1 个 步长 4窗口 8 → 等效压缩比 4:1论文将每个窗口拆为两路Cᵃ当前步长新进入的 4 token和Cᵇ前一窗口重叠的 4 token分别投影后联合加权融合。这样每个原始 token 被前后两个压缩单元共同覆盖边界信息不会割裂过渡更平滑。阶段二Top-k 稀疏选择。通过 Lightning Indexer轻量级相关性打分网络对所有 compressed KV 单元快速评分无需走完整注意力开销每个 query 只选出最相关的 top-k 个V4-Pro: k1024参与后续正式稠密注意力计算压缩后序列: [c1, c2, c3, c4, ..., c262144] (1M/4 256K 个 compressed KV 单元) Lightning Indexer 快速粗筛 → 选出 Top-1024 个最相关 → 仅这些参与正式 Attention3历史区域 —— HCA 层块级压缩 128:1不做稀疏选择HCA31 层将历史序列按 128 token 为一块通过 token compressor 将整块融合为 1 个 compressed KV 向量带 Softmax 的加权融合历史 Block (128 tokens): [t1, t2, ..., t128] → 可学习投影位置偏置 → Softmax加权聚合 → [c1]1个压缩向量与 CSA 的关键区别压缩方法相同压缩比不同CSA 是轻量级压缩4 token → 1保留更多细节HCA 是大块压缩128 token → 1压缩更激进丢失更多局部信息。后续处理不同CSA 压缩后还需 Lightning Indexer 做 top-k 稀疏选择HCA 压缩后不做 top-k直接对所有 compressed KV 做 dense attention——因为 128:1 的压缩率已经足够激进1M token → 约 8K 个 compressed KV全量计算开销也很小。4注意力计算两部分结果可学习融合推理时每一层为当前 token 计算注意力输出同时使用滑动窗口和历史区域的 KVCSA 层Q × [最近128 token 的 KV精确] Q × [Top-k compressed KV压缩稀疏选择] → 可学习融合 → 输出 HCA 层Q × [最近128 token 的 KV精确] Q × [全部 compressed KV压缩dense attention] → 可学习融合 → 输出两部分的注意力输出经过可学习的融合而非简单相加后得到最终输出。滑动窗口保证了近距离的精确性历史区域则以不同粒度覆盖远距离信息。5整体压缩比以 CSA 为例在 1M 上下文下滑动窗口128 个完整 KV固定开销历史区域100 万 token 压缩为 S/4 25 万个 compressed KV存储层面 4:1 压缩注意力计算时进一步稀疏每个 query 仅选 top-1024 个 compressed KV 参与计算存储上CSA 层的 KVCache 大小趋近原始的 1/4。HCA 层128:1 聚合趋近 1/128。3.4 线性注意力 —— 固定隐状态解除序列长度瓶颈无论是 GQA/MLA 压缩表示大小还是稀疏注意力减少保留数量KVCache 的规模终究还是与序列长度挂钩——只是从 O(n) 变成了更小系数的 O(n)。有没有办法彻底打破这层绑定线性注意力给出了一个激进的答案参考 RNN 的思路用固定大小的隐状态替代逐 token 增长的 KVCache将缓存大小从 O(n) 降为 O(1)从根本上解除显存与序列长度的线性关系。这一思路的演进经历了三个阶段纯 SSM 架构验证固定隐状态的可行性Mamba线性注意力在保持 O(1) 缓存的同时改善表达力DeltaNet最终混合架构在工程落地中找到纯注意力与线性机制的最佳配比Qwen3.5。3.4.1 Mamba / SSM —— 固定大小隐状态Mamba/SSMGu Dao, 2023是这条路线的开创者——用一个固定大小的隐状态向量替代逐 token 增长的 KVCache无论序列多长推理时的缓存大小恒定。1核心思想用递推代替检索传统 Attention 的做法是把所有历史 KV 存起来每次生成时回头查而 SSM 的做法更像边读边压缩成一个摘要每次生成时只看摘要传统 Attention: 存所有历史 → KVCache 随序列线性增长O(n) 显存 SSM: 压缩为隐状态 → hₜ Ā·hₜ₋₁ B̄·xₜO(1) 显存 输出: yₜ C·hₜ D·xₜ2Selective SSM —— 选择性记忆与遗忘早期 SSM 的参数是固定的对所有 token 一视同仁。Mamba 的关键创新是让 Ā 和 B̄依赖于当前输入——模型能选择性地决定这个 token 重要吗要不要写入记忆注Ā 和 B̄ 由连续参数 A、B 经离散化涉及一个输入相关的步长 Δ 和矩阵指数运算得到这里省略数学细节只关注其直觉效果。直觉上模型为每个 token 动态计算一个开关 Δ遇到重要 token → Δ 增大Ā 快速衰减为新信息腾空间B̄ 放大大量写入新信息遇到无关 token → Δ 缩小Ā≈1旧状态几乎不变B̄ 缩小新输入几乎不写入一句话总结Δ 大 关注当前Δ 小 忽略当前。3完整 Mamba Block 数据流┌─────────────────────────────────────────────────────────────────┐ x → Linear 投影 →├─ x 路: Conv1d(k4) SiLU → 投影出 Δ,B,C离散化→ Selective SSM ─→ ⊙ → Linear↓ → y └─ z 路: ────────────────────────────────────→ SiLU(z) ───────→↗各组件的作用Linear↑输入投影将 d_model 扩展到 2×d_innerd_inner expand × d_model默认 expand2一分为二——x 路进入 SSM 主计算z 路旁路保留用于门控Conv1d(k4)一维因果卷积窗口大小 4SSM 递推是逐 token 操作对相邻 token 的局部模式如 n-gram感知不足。Conv1d 先在相邻 4 个 token 上做卷积提取短程局部特征作为补偿投影 离散化从当前输入中产生 Δ、B、C再结合固定参数 A 得到 Ā 和 B̄即前文所述的输入依赖衰减/写入系数Selective SSM核心递推——hₜ Ā·hₜ₋₁ B̄·xₜ更新隐状态yₜ C·hₜ D·xₜ读取输出⊙ 门控合并y_ssm ⊙ SiLU(z)——z 路为每个维度提供缩放因子≈0 抑制≈1 保留同时提供更直接的梯度回传路径Linear↓输出投影映回 d_model4优劣势优势推理显存 O(1)生成速度恒定不随上下文变长而减速劣势固定隐状态本质是有损压缩——在需要精确回溯长距离细节的任务上如第 3 段第 2 句说了

相关新闻

识本草承国粹!李良济爱心公益,以百年匠心助力中医药文化传承与启蒙

识本草承国粹!李良济爱心公益,以百年匠心助力中医药文化传承与启蒙

中医药是中华优秀传统文化瑰宝,文化传承始于童心启蒙。为推动传统国粹走进校园、浸润童心,今天上午,由姑苏区教育体育和文化旅游委员会主办、苏州市李良济健康产业承办的“传承中医药国粹萌娃探秘中草药”中医药文化进幼儿园活动启动仪式&…

2026/6/26 9:43:35阅读更多 →
测试转大模型:用小项目验证核心能力

测试转大模型:用小项目验证核心能力

聊《测试转大模型:用小项目验证核心能力》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要本文概述文章目标、核心观点和实践价值。很多做传统功能测试或者自动化测试的同学,最近都在问同…

2026/6/26 9:43:35阅读更多 →
MyComputerManager技术深度解析:Windows Shell Extension管理与注册表操作实战指南

MyComputerManager技术深度解析:Windows Shell Extension管理与注册表操作实战指南

MyComputerManager技术深度解析:Windows Shell Extension管理与注册表操作实战指南 【免费下载链接】MyComputerManager 管理“此电脑”里删不掉的流氓“快捷方式”(包括侧边栏),同时可自己添加这类“快捷方式” 项目地址: http…

2026/6/26 9:43:35阅读更多 →
MPC8560 PCI/PCI-X总线核心机制与工程实践详解

MPC8560 PCI/PCI-X总线核心机制与工程实践详解

1. 项目概述:深入MPC8560的PCI/PCI-X总线核心在嵌入式通信和网络设备的设计中,高速、可靠的外设互连总线是系统性能的基石。飞思卡尔(现恩智浦)的MPC8560 PowerQUICC III处理器,作为一款经典的集成通信处理器&#xff…

2026/6/26 10:53:55阅读更多 →
MPC8560 I2C总线协议深度解析与嵌入式驱动开发实战

MPC8560 I2C总线协议深度解析与嵌入式驱动开发实战

1. I2C总线协议深度解析:从两根线到复杂通信 搞嵌入式开发这么多年,I2C总线绝对是绕不开的一个基础协议。别看它只有两根线——一根时钟线SCL,一根数据线SDA——其背后蕴含的通信哲学和硬件智慧,足以让很多刚入行的工程师头疼一阵…

2026/6/26 10:53:55阅读更多 →
MPC860 AAL2微码实现:ATM适配层硬件加速与嵌入式通信协议栈优化

MPC860 AAL2微码实现:ATM适配层硬件加速与嵌入式通信协议栈优化

1. 项目概述与背景在嵌入式通信系统的开发中,尤其是在构建电信级的接入网关、无线基站控制器或综合业务接入设备时,我们常常需要处理一种名为ATM(异步传输模式)的底层传输技术。ATM的核心魅力在于其面向连接和固定长度信元&#x…

2026/6/26 10:53:55阅读更多 →
从标记图到超度量空间:基于MST的层次结构生成与GH空间判定

从标记图到超度量空间:基于MST的层次结构生成与GH空间判定

1. 项目概述:从标记图到空间几何的探索最近在整理一些关于离散结构与几何分析的老项目时,重新审视了“基于标记图的超度量空间生成与GH空间判定”这个课题。这听起来可能有些抽象,但它实际上是一个连接图论、度量几何与算法设计的交叉领域&am…

2026/6/26 10:53:55阅读更多 →
深入解析SCC透明模式:帧检测、同步与CRC在嵌入式通信中的应用

深入解析SCC透明模式:帧检测、同步与CRC在嵌入式通信中的应用

1. 项目概述:深入解析SCC透明模式 在嵌入式系统,尤其是那些基于Freescale(现NXP)PowerQUICC系列处理器的通信设备开发中,串行通信控制器(SCC)是连接外部世界的核心枢纽。我们常常需要处理各种非…

2026/6/26 10:53:55阅读更多 →
VMware vSphere 8.0最佳实践:从零搭建高可用私有云的7步落地清单(附真实生产环境调优参数)

VMware vSphere 8.0最佳实践:从零搭建高可用私有云的7步落地清单(附真实生产环境调优参数)

更多请点击: https://codechina.net 第一章:VMware vSphere 8.0高可用私有云架构全景概览 VMware vSphere 8.0标志着企业级虚拟化平台向云原生与自治运维的重大演进。其高可用私有云架构以统一控制平面为核心,深度融合vCenter Server 8.0、v…

2026/6/26 10:48:53阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/25 9:39:54阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/26 4:15:25阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/26 9:29:01阅读更多 →
HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

一、前言:企业运维痛点与资源价值自博通收购 VMware 之后,原 VMware 公开免费下载渠道全面关闭,企业运维人员想要获取适配 HPE 慧与服务器的 ESXi 9 原厂镜像,必须注册博通账号、绑定有效授权才能下载,无授权账号无法获…

2026/6/26 0:02:15阅读更多 →
Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin作为一门现代编程语言,与Java的互操作性一直是其核心优势之一。为了让Kotlin代码能够无缝对接Java,Kotlin提供了多种注解来优化互操作体验,其中JvmStatic和JvmField是两个关键注解。它们分别用于解决静态成员和字段在Java中的访问问题&…

2026/6/26 0:02:15阅读更多 →
深入解析musl libc中的mmap实现源码

深入解析musl libc中的mmap实现源码

最近在阅读musl libc源码时,发现其mmap的实现非常精妙,特分享给大家。 一、代码整体结构 这段代码实现了__mmap函数,并通过weak_alias导出为mmap。这是典型的musl libc风格——提供弱符号以便用户可以重写。 weak_alias(__mmap, mmap); 二…

2026/6/26 0:02:15阅读更多 →