HySparse:架构原理、推理流水线与有效性依据

鱿鱼圈 Lv4

HySparse:架构原理、推理流水线与有效性依据

整理日期:2026-10-06。范围:今天关于 HySparse、HySparse2 的全部三轮问答中与第一代相关的内容,并补充必要的公式、依赖关系和实验上下文。本文是新建文档,不修改已有 YOCO、DeepSeek 文档。两代名称分别为 HySparse 和 HySparse2,聊天中的 hyspase、hyspase2 均按对应名称理解。

配套文档:HySparse2 完整整理。为保证不遗漏任何历史答复,配套文档附录保存今天三轮完整问题及回答;本文附录另外保留第一轮中 HySparse 的直接讲解、理论推导和消融讨论。正文对历史表述的澄清不会通过删除原文来完成。

阅读导航

  1. 问题背景:稀疏计算不等于稀疏存储。
  2. 总体架构:FA 找资料,SA 复用资料并逐层加工。
  3. 数学与实现:块选择、共享 KV、独立 SWA 和门控。
  4. Prefill 与 Decode:哪些层必须运行。
  5. KV 生命周期、PD 分离与系统实现边界。
  6. 为什么作者会想到、有哪些经验依据。
  7. 条件化误差界及其不保证什么。
  8. 实验与第一代、第二代之间的取舍。
  9. 与 Writer–Reader、MLA–KDA CED 的关联。
  10. 聊天覆盖清单与历史段落附录。

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. 总体结构:一层找信息,后面几层重复加工

HySparse 架构图:Full Attention 产生 KV 与块索引,后续 Sparse Attention 复用

一层 Full Attention 生成本组全局 KV,并按当前 Query 选出重要块;后面的多层 Sparse Attention 复用这份 KV 和块索引,同时各自保留局部 SWA 分支。

基本分组为:

FA 做三件事:生成本组全局 KV,执行本层全注意力,产生当前 Query 的重要历史位置索引。后面的 SA 共享前两类数据产物中的 KV 和索引,但不共享 FA 的输出。

flowchart TD H["本组输入 hidden"] --> F["FA:生成 KV,执行全注意力"] F --> M["本组共享 Global KV"] F --> I["按当前 Query 得到 Top-K 块索引"] F --> FF["本层输出投影、残差与 FFN / MoE"] FF --> S1["SA 1:自己的 Query、局部 KV、门控、MoE"] S1 --> S2["SA 2:自己的 Query、局部 KV、门控、MoE"] S2 --> SN["后续 SA,沿层串行"] M -.-> S1 M -.-> S2 M -.-> SN I -.-> S1 I -.-> S2 I -.-> SN SN --> NEXT["下一组 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,第一代通常要逐层处理所有位置:

  1. 某组 FA 对全部可见位置构建全局 KV,并执行全注意力。
  2. 为每个 Query 位置产生各自的块索引;不是整个 prompt 只有一份固定 Top-K。
  3. 第一个 SA 对全部位置生成 Query 和局部 KV,执行稀疏分支与局部分支,再执行 FFN/MoE。
  4. 后续 SA 继续逐层处理全部位置。
  5. 下一组 FA 用已经加工后的 hidden 生成新一组全局 KV。
  6. 最后位置的最终输出用于预测首个生成 token。

关键依赖为:

后面的全局 Writer 仍然需要前面各层 Reader/MoE 的结果;各 SA 自己的局部 Writer 也需要本层历史 hidden。所以共享组内 KV 不等于能让整个模型在前半段退出。

可以按 token chunk、不同请求或设备做流水线,但这只改变调度,不消除上述数学依赖。

7. Decode 计算流水线

对于当前新输入 token :

  1. 到达 FA 时,根据本层 hidden 生成新 K/V,追加到本组全局缓存。
  2. 当前 Query 读取全部因果历史,执行 FA,并选择当前 token 的 Top-K 块。
  3. 后续每个 SA 生成自己的 Query,复用本组全局 KV 和本轮索引。
  4. 每个 SA 同时为自身 SWA 窗口写入当前 K/V,并淘汰窗口外的活动条目。
  5. 执行门控、输出路径和 MoE,继续下一层。
  6. 到下一组 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 的关联

今天把两篇论文联系到此前的研究想法时,区分了三个独立问题:

  1. Writer 输入在哪里产生?从本层 hidden 改成 Encoder hidden,可以消除部分层间依赖。
  2. 有多少独立 Writer 和状态?共享输入不等于共享状态;HySparse 的组内 Reuse 才进一步减少记忆副本。
  3. 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. 来源与阅读顺序

  1. HySparse 原论文:架构、公式、FlashAttention 分数输出和第一代实验。
  2. HySparse2:第二代的重新接线和局部路径取舍。
  3. TidalDecode:跨层重要位置稳定性和刷新动机。
  4. CLA:跨层 KV 共享。
  5. YOCO:前半构建记忆、后半共享读取与 Prefill 早退。
  6. MiniCache:层间 KV 冗余的相关观察。
  7. SGLang PD 文档:阶段分离的系统背景,不表示原论文已集成此系统。

附录:今天第一轮问答中与 HySparse 直接相关的原始段落

以下保留原讲解的内容与段落结构,只统一数学分隔符和附录标题层级。原文中的第一人称仍指当时的讲解;技术边界以本文正文澄清为准。完整三轮原文保存在 HySparse2 文档,不会因为按主题分卷而删去其余内容。

原始问题

解读:arxiv.org/pdf/2609.26368 包括架构、pd计算流水线等等并且解释和hysparse的区别。并且分析作者是如何发现hysparse的架构是有效的?换句话说理论支持hysparse是啥?为啥能想到?

原文段落:第一代架构

一、先理解 HySparse:一层找信息,后面几层重复加工

HySparse 的基本单元是:

一个层若干层

Full Attention,下面简称 FA,做三件事:

  1. 构建本组的完整 KV。
  2. 正常执行全注意力,生成本层输出。
  3. 根据注意力分数,选出重要的历史位置。

后续 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 主要建立在经验观察、已有架构结果和消融实验之上,不是先证明了一个“共享之后一定不掉质量”的定理,再据此设计模型。

原文明确给出两条来源:

  1. 相邻层的重要 token 具有一定稳定性。
  2. 跨层共享 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 的合理性依赖于两个条件:

  1. 注意力本身足够集中;
  2. 一组层之间的关注分布变化不太大。

也解释了为什么要定期插入新的 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 给你的最直接启发不是“所有记忆都共享”,而是把三个设计问题分开:

  1. Writer 输入从哪里来?
    Bridging:从前半模型拿 hidden,让 Writer 提前可执行。

  2. 多少层共用一份记忆?
    Reuse:减少独立 Writer 和缓存副本。

  3. 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 进行许可。
评论
目录
HySparse:架构原理、推理流水线与有效性依据