HySparse:架构原理、推理流水线与有效性依据
HySparse:架构原理、推理流水线与有效性依据
整理日期:2026-10-06。范围:今天关于 HySparse、HySparse2 的全部三轮问答中与第一代相关的内容,并补充必要的公式、依赖关系和实验上下文。本文是新建文档,不修改已有 YOCO、DeepSeek 文档。两代名称分别为 HySparse 和 HySparse2,聊天中的 hyspase、hyspase2 均按对应名称理解。
配套文档:HySparse2 完整整理。为保证不遗漏任何历史答复,配套文档附录保存今天三轮完整问题及回答;本文附录另外保留第一轮中 HySparse 的直接讲解、理论推导和消融讨论。正文对历史表述的澄清不会通过删除原文来完成。
阅读导航
- 问题背景:稀疏计算不等于稀疏存储。
- 总体架构:FA 找资料,SA 复用资料并逐层加工。
- 数学与实现:块选择、共享 KV、独立 SWA 和门控。
- Prefill 与 Decode:哪些层必须运行。
- KV 生命周期、PD 分离与系统实现边界。
- 为什么作者会想到、有哪些经验依据。
- 条件化误差界及其不保证什么。
- 实验与第一代、第二代之间的取舍。
- 与 Writer–Reader、MLA–KDA CED 的关联。
- 聊天覆盖清单与历史段落附录。
1. 论文定位与证据口径
论文:HySparse: A Hybrid Sparse Attention Architecture with Oracle Token Selection and KV Cache Sharing,arXiv:2602.03560。
本文区分三种内容:
| 类型 | 含义 |
|---|---|
| 论文事实 | 架构、公式、配置和作者报告的实验 |
| 依赖关系推导 | 根据计算图推得的执行顺序、缓存交接要求 |
| 补充分析 | 误差界、实现建议和研究方向;不是论文已经证明或实现的成果 |
核心结论:HySparse 把少数全注意力层作为全局信息选择者,让后续稀疏层复用其 KV 和选择索引。第一代还保留各稀疏层自己的局部 SWA 分支,因此它减少全局注意力工作量和全局缓存副本,却没有让长 prompt 直接跳过模型后半段的能力。
2. 为什么需要 HySparse
2.1 普通全注意力的两类成本
设序列长度为 ,层数为 。忽略批量和维度常数,普通 Transformer 的注意力 Prefill 成本随 增长;KV 存储随 增长。
这里仅写 attention 核心的量级,没有把投影、FFN/MoE、通信等省略成“零成本”。
2.2 只选少数 token,不会自动减少持久缓存
动态稀疏注意力本轮只读少数位置,但下一轮 Query 可能想读其他位置。如果每层都维护自己的全局 KV,就算单轮只读取 个位置,仍可能需要保存全部 个位置。
因此必须分别考虑:减少读了多少数据、减少算了多少 attention、减少存了多少份 KV。这三者不是一件事。
2.3 稀疏选择器也可能昂贵或不准确
许多方法额外训练轻量 indexer,或根据压缩表示、静态模式估计重要位置。它们的预测有误差,也可能引入训练目标、辅助损失和额外 kernel。
HySparse 的问题意识是:既然混合模型仍保留少数 FA,而且 FA 已经算出了真实注意力分数,为什么不复用这些结果,而要让后面每层独立预测一次?
3. 总体结构:一层找信息,后面几层重复加工

一层 Full Attention 生成本组全局 KV,并按当前 Query 选出重要块;后面的多层 Sparse Attention 复用这份 KV 和块索引,同时各自保留局部 SWA 分支。
基本分组为:
FA 做三件事:生成本组全局 KV,执行本层全注意力,产生当前 Query 的重要历史位置索引。后面的 SA 共享前两类数据产物中的 KV 和索引,但不共享 FA 的输出。
复用不是整层跳过。每个 SA 仍有独立 Query、注意力权重、输出投影、残差和 FFN/MoE。
第一代论文配置:
| 配置 | 7B Dense | 80B MoE |
|---|---|---|
| 总层数 | 36 | 49 |
| Query / KV heads | 32 / 8 | 64 / 4 |
| Head dimension | 128 | 128 |
| Hidden size | 4096 | 2048 |
| 名义 FA : SA 混合比例 | 1 : 3 | 1 : 11 |
| 局部窗口 | 128 | 128 |
| 选择块大小 | 64 | 64 |
| 全局选择 token 预算 | 1024 | 1024 |
混合模型最后一层使用 FA。49 层配置可理解为四组“1 FA + 11 SA”,最后再接 1 FA,共 5 FA、44 SA。这里是第一代原论文口径,不能把 HySparse2 对照实验中的 QK/V 维度直接抄成第一代原论文的维度。
4. FA 如何同时做注意力和选择
4.1 标准因果全注意力
以下使用列向量表示单个 token,省略归一化、位置编码和多头下标:
这里只访问因果可见位置 。
4.2 以块为单位选择,而不是逐 token 选择
令块大小为 ,第 个块的可见位置集合为:
取块内最大注意力概率作为块分数:
如果全局预算为 个 token,则选择约 个块:
默认 、,对应 16 个块。序列较短、块不满或接近因果边界时,实际有效 token 数要按 mask 处理,不能机械理解成永远正好 1024。
在 GQA 中,对同一 Query group 的块分数取组内最大值,使这一组 Query heads 共用稀疏索引。这有利于降低索引开销和提高访问规整性。
4.3 为什么不保存完整注意力矩阵
如果额外保存全部 注意力概率,可能抵消 FlashAttention 避免大矩阵物化的收益。HySparse 只输出块级统计。
FlashAttention 本就需要在线 softmax 的最大值与归一化信息。设某行最终最大 logit 为 ,归一化和为:
设块内最大 logit 为 ,相应的块最大概率为:
这是根据概率定义写出的解释公式;实际 kernel 可使用等价的 log-space 表示。不要直接把 PDF 算法中的简写或文本抽取结果当成可运行代码。跨头聚合时还要保持分数口径可比。
论文强调可以通过改动 FlashAttention 输出块级分数,避免物化完整概率矩阵。但“额外统计较轻”不等于 FA 本身变成线性注意力;FA 仍进行完整全局计算。
5. SA 的两条分支必须分开理解
5.1 全局稀疏分支:复用前面 FA 的 KV
设本组源 FA 生成 ,选出 。第 个 SA 的 Query 来自本层输入:
全局分支输出为:
复用同样的 KV 和候选集合,不代表使用同样的权重,因为各层 Query 不同。
5.2 局部 SWA 分支:本层自己的 KV
局部 K/V 为:
局部位置集合:
局部分支用同一个本层 Query ,但读取另一套 KV:
5.3 独立归一化,再通过门控融合
再接输出投影、残差和 FFN/MoE。这里省略多头结构及论文所用 attention sink 等实现细节,不把它们误写成不存在。
与 HySparse2 的关键区别:第一代两条分支使用不同 KV、各自 softmax、最后门控相加;第二代局部位置和远程位置来自同一份 KV,进入一次稀疏 attention。两种操作一般不等价。
5.4 同一 token 出现在两条路径中,算重复吗
在 token 位置意义上可能重叠,但两套 K/V 是不同层、不同投影生成的表示。最近位置的全局 KV 不自动等于本层 SWA 的局部 KV。因此不能以“都是最近 128 个 token”为由直接删掉局部缓存。
第一代的实验恰好显示,强迫局部路径也使用源 FA 的 KV,在其配置下损伤质量。这是第二代必须重新训练和验证局部设计的原因。
6. Prefill 计算流水线
对一个冷启动 prompt,第一代通常要逐层处理所有位置:
- 某组 FA 对全部可见位置构建全局 KV,并执行全注意力。
- 为每个 Query 位置产生各自的块索引;不是整个 prompt 只有一份固定 Top-K。
- 第一个 SA 对全部位置生成 Query 和局部 KV,执行稀疏分支与局部分支,再执行 FFN/MoE。
- 后续 SA 继续逐层处理全部位置。
- 下一组 FA 用已经加工后的 hidden 生成新一组全局 KV。
- 最后位置的最终输出用于预测首个生成 token。
关键依赖为:
后面的全局 Writer 仍然需要前面各层 Reader/MoE 的结果;各 SA 自己的局部 Writer 也需要本层历史 hidden。所以共享组内 KV 不等于能让整个模型在前半段退出。
可以按 token chunk、不同请求或设备做流水线,但这只改变调度,不消除上述数学依赖。
7. Decode 计算流水线
对于当前新输入 token :
- 到达 FA 时,根据本层 hidden 生成新 K/V,追加到本组全局缓存。
- 当前 Query 读取全部因果历史,执行 FA,并选择当前 token 的 Top-K 块。
- 后续每个 SA 生成自己的 Query,复用本组全局 KV 和本轮索引。
- 每个 SA 同时为自身 SWA 窗口写入当前 K/V,并淘汰窗口外的活动条目。
- 执行门控、输出路径和 MoE,继续下一层。
- 到下一组 FA 时,进行新的全局读取与选择。
选择索引通常是本轮、当前 Query 的临时结果,可以在组内复用;下一 token 到来后一般需要重新计算。不能把某轮未入选的位置永久删掉。
在 49 层、5 FA、44 SA 的结构下,仅从访问位置数量估计 attention 核心工作量:
这里只是省略头数、维度和其他模块后的示意,不是 GPU 延迟模型。FA 部分仍随上下文增长,因此 Decode 不是完全固定成本。
8. KV 生命周期和内存收益
8.1 哪些状态是长期的
| 状态 | 增长方式 | 生命周期 |
|---|---|---|
| 每个 FA 的全局 KV | 随已处理 token 数增长 | 请求持续期间保留;如支持 prefix cache,可延长 |
| 每个 SA 的本层 SWA KV | 窗口容量有界 | Decode 时滚动更新 |
| 当前 Query 的 Top-K 索引 | 单轮产生 | 组内后续 SA 使用后可回收 |
| Gather 后的临时连续 KV | 取决于 kernel | 可不物化,也可暂存;不必成为另一套长期缓存 |
“逻辑上拼接所选块”不要求每次在 HBM 中复制成完整连续大数组。实际 kernel 可通过 block table、索引或 gather 访问;物理布局属于实现选择。
8.2 为什么可以接近十倍减少全局 KV
在各层 KV 头数、维度和精度相同的近似口径下,记每位置每层 KV 字节数为 :
长上下文 时:
这解释“接近十倍”的主要来源是减少层方向上的完整 KV 副本,不是把每份序列压缩十倍。短上下文、allocator 对齐、量化 scale、索引和临时 buffer 会影响实际值。
8.3 Prefix caching 不是论文自动附送的功能
持有请求内 KV 与跨请求 prefix caching 是两个概念。若实现后者,需要考虑源 FA 的 global pages、各 SA 的局部窗口状态、位置/模型版本及部分块边界。只命中 global pages,并不自动恢复局部 SWA hidden 所对应的缓存。
不能把“请求结束”简单等同于“所有 KV 永久持久化”:无 prefix retention 时引用释放,有 retention 时按缓存策略保留。原论文没有提供完整 prefix cache 管理器。
9. 第一代与 PD 分离
PD 是 Prefill–Decode disaggregation:按请求阶段分离服务资源,不是按层深度切模型。
对第一代,可以采用普通 PD:P worker 运行完整骨干处理 prompt,D worker 安装缓存后运行完整骨干处理新 token。每个 worker 可以是一组做张量并行或流水线并行的 GPU。
P 到 D 至少需要交接供后续执行使用的全局 KV、局部 SWA 状态和必要元数据;如果首 token 尚未计算,还需明确交接哪个 hidden、输出头在哪运行。这是系统设计推导,不是第一代论文给出的已实现网络协议。
第一代节省的是全局 KV 副本和稀疏层工作量,不能因此宣称 P 只需要部署半个模型。HySparse2 的特殊收益来自额外切断后半层历史记忆的生成依赖。
论文也提出过 KV offloading 的潜力:FA 阶段读取全局 KV,后续 SA 只使用选中的部分。但把未选 KV 移到外部内存,意味着下一 FA 仍可能要访问它们;必须计算传输开销。这是探索方向,不是“已经验证无限上下文高吞吐”的结论。
10. 作者为什么能想到:两条经验发现的组合
10.1 跨层重要位置有一定稳定性
TidalDecode、OmniKV 等相关研究观察到,相邻层经常关注相似位置。抽象写为:
这提供“选择一次,多层复用”的动机。它不是任何层距、任何 Query 都成立的定理,因此模型需要定期插入 FA 重新选择。
注意稳定性讨论的是同一 Query 位置沿深度的相关性,不意味着后续所有生成 token 都使用同一套索引。
10.2 跨层 KV 有冗余,共享记忆在训练中可行
CLA、YOCO、Gemma 3n 等架构展示了共享 KV 的可能性;MiniCache 从已有模型压缩角度观察层间 KV 相似性。由此可以进一步问:既然共享“去哪里找”,能否共享“被查询的资料”?
于是把两条观察组合成:
但已有模型 KV 相似,不证明任意投影可以直接替换。HySparse 是原生训练的架构,模型有机会适应共享约束。不能从这些证据推出无需训练的任意模型改造。
10.3 为什么共享以后深度仍有作用
即使所有 SA 读取同一份 ,也仍有不同的 、、FFN/MoE 和残差变换。其过程类似围绕同一批资料进行多轮加工,之后由下一 FA 根据更新后的表征重新全局检索。
保留的是多层计算,减少的是每层独立构建全长记忆和独立决定检索位置的自由度。
10.4 Oracle 究竟是什么意思
Oracle 指选择分数来自源 FA 的真实注意力,而不是另一个近似 indexer 对源 FA 的预测。
它不意味着源 FA 的 Top-K 对后续每个 SA 都是最优的,更不意味着它知道任务答案。后续层 Query 改变,最适合的位置也可能改变。共享索引的合理性仍依赖经验相关性和训练适应。
11. 数学解释:条件化误差界,不是论文的无损定理
11.1 固定 Query、固定 KV 下,稀疏误差取决于漏掉的概率质量
设:
保留位置集为 ,漏掉的质量:
保留部分重新归一化:
假设 。当 时,定义被删除位置的归一化输出 ,则:
当 时误差为零。这个界的意思是“保留大部分质量即可控制单次读取误差”,不是“任何 Top-K 都可靠”。
11.2 复用前一层索引,还要求层间分布变化受控
设源层分布为 ,后续层在相同历史位置集合上的假想完整分布为 :
对任何集合,概率质量差至多为总变差,因此:
若后续层在保留集合上具有正质量,可以使用同样的重新归一化推导:
这个版本明确了上界最多为 。它解释为什么要检查注意力集中程度和层间变化,而不只是统计 Top-K 的重叠率。
11.3 这没有覆盖哪些误差
- 用共享 KV 替换原本独立 KV 带来的表示变化;
- 多头聚合、门控、attention sink 与输出投影;
- 深层非线性和残差的误差传播;
- 选择错误对离散采样和最终任务答案的影响;
- 原生训练后与另一个全注意力模型之间的差异。
因此这只是今天聊天中补充的解释性推导,不是 HySparse 论文宣称的理论保证。尤其不能把“共享方案可精确执行”与“共享模型和原全注意力模型质量完全等价”混为一谈。
12. 实验如何支持、又如何限制结论
12.1 主实验说明稀疏全局路径弥补纯局部混合的不足
原论文 80B、1:11 的设置中,Hybrid SWA 的若干指标相对全注意力下降明显。HySparse 加入稀疏全局读出后恢复或超过不少指标。例如 GSM8K 为全注意力 53.8、Hybrid SWA 45.3、HySparse 54.1;32k RULER 分别为 82.1、69.5、87.4。
但不是每个指标都获胜:例如 80B 的 16k RULER,HySparse 90.6 低于全注意力 93.6。结论应是给定训练设置下总体具有竞争力,而不是“逐项严格优于”。
12.2 独立局部路径为什么被保留
第一代 Table 4 的两组消融需要分开看:
| 组别 | 设计 | DROP | GSM8K | MMLU | MMLU-Pro | BBH |
|---|---|---|---|---|---|---|
| Oracle 选择,未启用跨层 KV sharing | 无层内 SWA | 46.4 | 29.7 | 57.1 | 25.0 | 48.2 |
| 同一组实验 | 有层内 SWA | 52.2 | 37.7 | 56.1 | 26.5 | 52.4 |
| KV sharing,保留局部路径 | SA 与 SWA 都共享源 KV | 47.9 | 30.2 | 52.8 | 23.2 | 47.2 |
| 同一组实验 | 只有 SA 共享,SWA 独立 | 51.9 | 36.7 | 58.4 | 29.0 | 53.9 |
第一组回答“局部路径有没有价值”,第二组回答“局部路径需要什么表示来源”。不能把 37.7 和 36.7 当成同一个控制变量下的两次数字来任意混用。
12.3 第一代与第二代不矛盾
第一代发现独立 SWA 有价值;第二代仍承认删除独立局部表示会在部分任务损失质量,但接受这种取舍,以换取更少投影、局部缓存和后半模型历史依赖。
第二代 Forced SWA 不是第一代两分支的代数等价重写。它改变了 KV 来源与归一化结构,需要重新训练和验证。
13. 与 MLA–KDA CED 的关联
今天把两篇论文联系到此前的研究想法时,区分了三个独立问题:
- Writer 输入在哪里产生?从本层 hidden 改成 Encoder hidden,可以消除部分层间依赖。
- 有多少独立 Writer 和状态?共享输入不等于共享状态;HySparse 的组内 Reuse 才进一步减少记忆副本。
- Reader 是否依赖本层历史 hidden?若有 Q 短卷积或独立 SWA,仍可能需要尾部执行。
第一代主要解决第 2 项以及选择结果复用;HySparse2 又解决第 1 项并改变第 3 项。
此前的 KDA 方案把各层 Writer 接到同一 ,各层状态仍独立。若保留宽度 的 Query 卷积,后半有 个此类层,理想化局部依赖下的最后位置输入覆盖长度为:
例如 时为 100。这个数字是先前特定方案的依赖推导,不是 HySparse 的参数,也不是所有混合模型通用常数。HySparse2 后半没有这种本层历史 Query 卷积或独立 SWA KV 依赖,所以不能把 100-token 规则套给它。
14. 可落地的系统检查项
以下是由计算图提出的工程检查,不是原论文性能承诺:
- 检查 FA 输出块分数的额外写流量与 Top-K 开销。
- 检查 GQA 共享索引和 paged KV 的物理映射是否一致。
- 检查 SA 重复读取同一组 KV 时能否复用 staging buffer,而不错误复用 Query 或输出。
- 区分持久 KV、局部环形缓冲、临时索引和临时 gather 的内存峰值。
- 对比 Prefill FLOPs、实测 TTFT、单 token 延迟、吞吐和网络流量,不能只报一个理论倍率。
- 长上下文测试应测保留注意力质量与输出误差,而不只看 token overlap。
- 若做跨请求 prefix cache,必须保存或正确恢复独立 SWA 状态。
- 若做 offload,必须计入 FA 再次全局访问的代价。
15. 今天聊天的覆盖映射
| 原始讨论 | 本文位置 | 配套文档 |
|---|---|---|
| 第一代的架构、共享 KV 与索引 | §3–5 | 第二代对照章节 |
| Prefill 与 Decode 流水线 | §6–7 | 第二代早退与生成章节 |
| 为什么作者会想到、理论支持是什么 | §10–11 | 保留共同原理与历史全文 |
| 独立 SWA 的意义和消融 | §5、§12 | Forced window 的替代与取舍 |
| PD 不是模型前后切分 | §9 | 从基础定义到完整交接 |
| SA 的缓存来源是不是 Self FA + SWA | §5 的第一代背景 | 第二代问答直接回答 |
| 没有 SWA 为什么还选两类位置 | §5、§12 的对照 | 第二代局部窗口专节 |
| 与 100-token、Writer–Reader 的关联 | §13 | 第二代对照与完整历史 |
16. 来源与阅读顺序
- HySparse 原论文:架构、公式、FlashAttention 分数输出和第一代实验。
- HySparse2:第二代的重新接线和局部路径取舍。
- TidalDecode:跨层重要位置稳定性和刷新动机。
- CLA:跨层 KV 共享。
- YOCO:前半构建记忆、后半共享读取与 Prefill 早退。
- MiniCache:层间 KV 冗余的相关观察。
- SGLang PD 文档:阶段分离的系统背景,不表示原论文已集成此系统。
附录:今天第一轮问答中与 HySparse 直接相关的原始段落
以下保留原讲解的内容与段落结构,只统一数学分隔符和附录标题层级。原文中的第一人称仍指当时的讲解;技术边界以本文正文澄清为准。完整三轮原文保存在 HySparse2 文档,不会因为按主题分卷而删去其余内容。
原始问题
解读:arxiv.org/pdf/2609.26368 包括架构、pd计算流水线等等并且解释和hysparse的区别。并且分析作者是如何发现hysparse的架构是有效的?换句话说理论支持hysparse是啥?为啥能想到?
原文段落:第一代架构
一、先理解 HySparse:一层找信息,后面几层重复加工
HySparse 的基本单元是:
Full Attention,下面简称 FA,做三件事:
- 构建本组的完整 KV。
- 正常执行全注意力,生成本层输出。
- 根据注意力分数,选出重要的历史位置。
后续 Sparse Attention,简称 SA,复用:
但每个 SA 层仍然生成自己的 Query、重新计算注意力权重,并执行自己的输出投影与 FFN/MoE。
因此:
复用的是记忆和候选位置,不是复用 attention 输出,更不是跳过整层。
1. 同一份记忆,可以被不同层反复读取
设 FA 生成:
并为当前位置 选出索引:
后续第 个 SA 层执行:
虽然 一样,但:
所以各层可以从相同候选资料中提取不同信息。
2. 第一版还保留独立 SWA 分支
第一版每个 SA 层实际包含两条路径:
- 全局稀疏路径:读取前面 FA 的 KV。
- 局部 SWA 路径:使用本层自己生成的局部 KV。
两条路径分别计算注意力,再通过门控融合。
第一版默认选择 16 个、每个包含 64 token 的块,合计 1024 个全局 token;局部窗口为 128。
这个独立的局部 KV 分支,后来成了完整 Prefill 早退的障碍。 HySparse §3
原文段落:设计依据、数学解释和实验取舍
八、作者为什么能想到 HySparse?它的理论依据是什么?
先直接回答:
HySparse 主要建立在经验观察、已有架构结果和消融实验之上,不是先证明了一个“共享之后一定不掉质量”的定理,再据此设计模型。
原文明确给出两条来源:
- 相邻层的重要 token 具有一定稳定性。
- 跨层共享 KV 在已有实验中可行。
下面把这条思路展开。
1. 第一条观察:相邻层经常在看相似的资料
假设某个 query 在第 层主要关注:
- 函数定义;
- 某个变量;
- 前面一段关键证据。
下一层虽然继续加工 hidden,但不一定立刻换成完全不同的资料。
因此可能存在:
这不是 HySparse 首次观察到的。它引用了 TidalDecode、OmniKV 等工作。
例如 TidalDecode 直接分析了层间高分 token 的重叠,并发现需要在中间层重新选择;远距离层之间并不保证一直稳定。这支持的是“在一段层范围内复用,然后刷新”,不是“整个模型永远用同一组选中 token”。 TidalDecode §3.1
由此自然产生一个问题:
既然少数 FA 层已经付出全局扫描成本,为什么不让后面几层复用它找到的位置?
2. 第二条观察:不仅索引有冗余,KV 表示也有冗余
如果只共享索引,每个 SA 层仍然保存全长 KV:
那主要减少的是读取计算,缓存容量不一定下降。
CLA、YOCO 等工作说明,可以在训练中让多个层共享记忆,仍保留不同的 Query 和后续变换;MiniCache 则从压缩角度观察到相邻中深层 KV 的相似性。 CLA、MiniCache
于是设计进一步变成:
不仅重复使用“去哪找”,还重复使用“被查询的那份资料”。
但注意:**原模型 KV 相似,只是设计启发,不证明直接替换一定无损。**原生训练允许模型主动适应共享约束,这是很重要的一步。
3. 为什么共享 KV 后,深度仍有意义?
因为记忆不变,并不意味着查询过程不变。
可以把一组层理解成:
- 第一个 FA:全局找资料;
- 后续 SA:围绕这些资料进行多步加工;
- 下一组 FA:根据已经更新的 hidden,重新全局检索。
每一步仍然有独立的:
所以保留下来的是:
被限制的是:
是否值得这个取舍,最终需要训练结果回答。
4. “Oracle”不能理解成对所有后层绝对正确
FA 得到的是:
对它自己的 Query 和 KV,精确计算出来的注意力分数。
但是下一层 Query 已经变化,所以前一层的 Top-K 不一定是下一层的最优 Top-K,更不保证它是任务答案的最优证据集合。
因此,Oracle 更准确的含义是:
不使用额外近似 indexer 去预测源 FA 的注意力,而是复用源 FA 实际计算的分数。
它没有消除跨层复用本身的近似和限制。
九、可以怎样用数学解释“为什么可能有效”?
下面是我补充的条件化解释,不是 HySparse 论文给出的定理。
1. 稀疏读取是否准确,关键看漏掉多少注意力质量
先看单头、固定 K/V 的普通 attention:
选择位置集合 ,丢掉的概率质量为:
对保留位置重新归一化:
若:
则可得:
它的直观含义是:
若被保留的少量 token 已经承载了绝大部分 attention 权重,那么去掉其余位置,对当前 attention 输出的影响可以很小。
这只是当前算子的界,不是整个模型最终答案的保证。
2. 跨层复用索引,需要再加一个“分布变化不大”的条件
设源层注意力分布为 ,后续层假想的完整注意力分布为 。
如果两者的总变差距离满足:
而源层选出的集合漏掉的质量是 ,那么后层在同一集合外的质量至多为:
因此,类似地可以得到:
这说明 HySparse 的合理性依赖于两个条件:
- 注意力本身足够集中;
- 一组层之间的关注分布变化不太大。
也解释了为什么要定期插入新的 FA:重新全局选择,限制选择结果随层深变得不合适。
但真实模型还有多头聚合、KV 共享引入的表示变化、门控和后续非线性,这个小推导并不能覆盖全部误差。需要测量的是实际保留质量、输出偏差和任务指标,而不只是 Top-K 集合重叠率。
十、作者通过什么实验确认设计?哪些结论不能过度解读?
1. 第一版不是“一开始就知道局部路径可以省”
HySparse 的消融显示,在相关 7B 实验中:
- 加入独立 SWA,GSM8K 从 29.7 到 37.7;
- 让 SA 和 SWA 都共享 KV,相比只让 SA 共享,GSM8K 从 36.7 降到 30.2。
所以第一版得到的是:
在当时的配置中,独立局部路径有价值,最大化共享会损害质量。
这属于受配置限制的实验结论,不是“局部 KV 永远不能共享”的定理。 HySparse 表 4
2. 第二版并没有证明删除独立 SWA 完全无损
HySparse2 对比独立 Gated SWA 与 Forced SWA:
- Forced SWA 在部分检索、图推理指标更好;
- 但 GSM8K 下降 5.08 点;
- MRCR-v2 下降 4.99 点。
作者认为,换来更少参数、更简单缓存和完整 Prefill 早退,这是可以接受的取舍。
因此,两篇论文并不矛盾:
第一版验证了独立局部表示的价值;第二版选择牺牲一部分局部表达自由度,换取更大的系统收益。
3. token-level 的优势来自更细的预算分配
固定选择 1024 个全局 token:
- block-level:最多选 16 个长度 64 的块;
- token-level:可以把预算分散给大量不同位置。
若多个重要标识符、角色边界、工具结果分散在不同块里,block-level 会把预算花在大量邻居上。
论文的消融支持 token-level 在相关长上下文任务上更好,但这并不意味着所有一般能力指标都同步上升。
4. 为什么选 FA 输入 hidden 做 Bridging?
作者给出的解释是:
FA 的训练梯度通过全局可见的注意力连接传播,使其输入表示受到更全局的监督;SWA 的直接连接范围更局部。
这是一个机制假说。Bridging 相比 KV Mirror 的实验支持这个连接选择,但没有排除所有其他因素。
特别注意:
“FA 的输入 hidden 受到全局训练监督”,不等于“它在本次前向中已经经过这个 FA 的全局聚合”。
输入和输出不能混淆。
5. “有效”也不等于全面无代价
HySparse2 的结果主要支持:
- 更低的 Prefill 计算预算;
- 更小的缓存;
- 在其长上下文、Agent 数据与评测设置中更强的表现;
- 一般能力整体接近,但存在任务间得失。
它没有证明:
- 任意已有模型都能无训练改成这个架构;
- 任意共享比例都有效;
- FLOPs 降低必然转化为同倍延迟降低;
- 当前 PD、异步投机解码方案已经获得端到端系统实测加速。
原文段落:与 MLA–KDA CED 的联系
最后,联系你的 MLA–KDA CED 想法
HySparse2 给你的最直接启发不是“所有记忆都共享”,而是把三个设计问题分开:
-
Writer 输入从哪里来?
Bridging:从前半模型拿 hidden,让 Writer 提前可执行。 -
多少层共用一份记忆?
Reuse:减少独立 Writer 和缓存副本。 -
Reader 是否还依赖本层历史 hidden?
这决定能否只算最后位置,还是需要 100-token 之类的依赖补齐。
你的原方案保留本层 Q 短卷积,所以第三项依赖仍在。
HySparse2 则把后半段的局部信息需求也改成了读取前半段生成的记忆,从计算图上去掉这条历史 hidden 依赖。
可以把整条研究思路概括为:先利用层间冗余少建记忆、少做检索,再切断历史 hidden 对未来缓存构建的依赖,最终让大部分历史 Reader 变成真正可以不执行的计算。
- 标题: HySparse:架构原理、推理流水线与有效性依据
- 作者: 鱿鱼圈
- 创建于 : 2026-10-06 19:20:00
- 更新于 : 2026-10-06 20:11:53
- 链接: https://yuyanqi.com/2026/10/06/HySparse解析/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。