GLM5.2技术报告解读-DSA

📅 2026/6/30 1:35:10
GLM5.2技术报告解读-DSA
之前发布的解读报告虽然没有深入但是也大致抛出一些概念今天就花点力气来试图和大家一起理解这些概念。全文大概10分钟左右的阅读时间如果不太想看这些长篇大论可以直接跳到结论部分。在智普最近的5、5.1、5.2等报告中可以看到智普一直在尝试落地DSA这是在 1M 上下文中节省成本的重要环节。DSA 核心原理DSADeepSeek Sparse Attention的核心机制是一个轻量级的索引器Indexer它对每个新生成的query token扫描整个前缀中的所有token给每个token打相关性分数然后只选取得分最高的token执行精细的注意力计算。MTPMTPMulti-Token Prediction核心机制是在主干网络之上附加一组轻量的 Transformer Block 和输出头用来并行预测未来多个 token智谱报告中是3个。这些预测出的 token 作为草稿送给主干网络目标模型逐个验证。验证通过的 token 被接受未通过的从第一个拒绝位置截断然后以验证后的结果作为下一轮输入重复上述过程直到生成结束。这里需要特殊说明下。MTP 整个预测多个草稿token → 拿去给目标模型验证的过程不是一个物理架构更贴切的描述应该是一个工作流。Indexer Share或者说 Indexer Cache我们看到 Share一定会想这里的 Share 指代的是什么为什么一定要有这个组件它做作用于主干网络的哪里要想理解这个概念我们得先了解在有这个组件之前的 Indexer 怎么部署的。标准的 DSA层 中 Indexer 是存在于 DSA 中的所有 Transformer 模块。之所以这样设计是因为不同 Transformer 层处于不同的处理阶段浅层主要捕捉局部语法和短距离依赖中层构建语义表示深层进行高层次推理和决策。这种功能分化导致各层的注意力焦点自然不同。而 Index Share 做的就是把每4层Transformer的Indexer合并成一个——保留第1层的Indexer让它计算top-k索引后面3层直接复用这个结果不再运行自己的Indexer。智谱能这样做的原因是DSA论文中通过实验验证了相邻层的top-k索引重叠率高达70%-100%——即相邻层选出的最相关token集合基本相同。We empirically verify this for DSA by computing thepairwise top-k index overlap across all layers (Appendix A): adjacent layers share 70-100%of their selected tokens, and the heatmap reveals distinct layer clusters with mutually highoverlap, suggesting that most indexer computations are redundant. This leaves a simplebut impactful opportunity: can we remove the majority of indexers in DSA and let most layersreuse top-k indices from a small number of retained indexer layers, without degrading quality?说明GLM 5 报告里的 Indexer Cache 其实就是5.2里的 Indexer Share。Indexer Share 在 MTP 层的作用除了上面说的在主干网络中降低重复的索引查询。在 5.2 中MTP 层也引入了它两边都是独立的不共享数据。衡量 MTP 好不好主要是看接受率接受率越高表示MTP的预测约准。假设假设输入是今天天气MTP Step 1预测下一个token t5比如很好Step 2预测t6比如啊的时候会参考前面的内容来生成这就导致了当前的草稿是基于输入前一个草稿的内容来生成越到后面 MTP 的接受率就会越低。MTP Step 2 在生成草稿时需要基于 Step 1 的输出 h5 作为输入——这是物理上无法避免的Step 2 天然依赖 Step 1 的结果。问题在于Step 2 做自注意力计算时会看到 h1, h2, h3, h4来自目标模型高质量和 h5来自 MTP 层低质量。h5 的低质量 KV 会污染注意力计算结果导致第二步草稿的接受率下降。Indexer Share 在这里起到的是限制注意力范围的作用复用 Step 1 的 mask而这个 mask 里不包含 h5Step 1 时 h5 还不存在。所以 Step 2 做注意力时只能看到 h1-h4h5 自己的 KV 被 mask0挡住。注意力计算只受高质量 KV 影响第二步草稿的接受率因此提升从 4.56 提升到 5.10。代价是 Step 2 看不到 h5 自己的信息少了一个信息源但实验表明这个代价值得。注意力计算质量更接近训练时的水平接受率从4.56提升到5.10KV ShareKV Share 作用在 MTP 层解决的是KV Cache 重复计算问题。MTP 层做自注意力时需要前面所有 token 的 KeyK和 ValueV向量。这些 KV 值在主干网络 forward 时已经计算过了。如果没有 KV ShareMTP 层需要重新计算一遍这些 KV造成大量的冗余计算和内存开销。KV Share 的做法是让 MTP 层直接复用主干网络已经算好的 KV Cache。只有在处理 MTP 新预测出的 token 时才需要计算新的 KV 值。这与 IndexShare 形成互补IndexShare 决定看哪些 token通过复用 top-k 索引KVShare 决定如何高效获取这些 token 的 KV 值通过共享 KV Cache。Rejection Sampling这是个算法层面的优化。在介绍之前需要先了解它的前任Target-Only。Target-Only只看大模型脸色假设我们现在要让模型生成一个词模型面前有3个候选词苹果、香蕉、西瓜。目标模型对这3个词的偏好程度如下候选词目标模型给出的概率苹果50%香蕉30%西瓜20%这个概率分布就是目标分布——它代表了大模型真正想说什么。现在草稿模型比如MTP头先快速猜了一个词猜的是香蕉。Target-Only的验证逻辑很简单大模型觉得香蕉是不是它最想要的那个大模型最想要的是苹果50%而草稿给的是香蕉30%不是最好的那个。结果拒绝。哪怕香蕉在大模型看来其实也不错有30%的概率但因为不是第一名就被打回去了。这就是Target-Only的问题——它的接受标准太苛刻了只有草稿词恰好是大模型的首选时才接受。如果大模型分布比较平坦比如三个词分别是35%、33%、32%没有明显赢家那Target-Only的接受率就会很低因为很难恰好命中第一名。Rejection Sampling看两个模型的默契程度Rejection Sampling的思路完全不同。它不只是看大模型的分布还同时看草稿模型的分布然后问这两个模型想的是不是一回事假设草稿模型自己的预测分布是这样的候选词草稿模型的概率苹果45%香蕉35%西瓜20%Rejection Sampling的逻辑是如果草稿模型和目标模型都挺看好某个词那这个词就应该被接受。具体来说它对每个词都取两个概率中的较小值苹果min(50%, 45%) 45%香蕉min(30%, 35%) 30%西瓜min(20%, 20%) 20%然后把这三个值加起来45% 30% 20% 95%。这就是接受率——有95%的概率Rejection Sampling会接受草稿模型生成的这个词。为什么Rejection Sampling更好回到刚才的例子草稿猜的是香蕉。Target-Only大模型首选是苹果香蕉不是首选 →拒绝Rejection Sampling大模型给香蕉30%草稿也给香蕉35%两者意见一致 →以很高的概率接受关键区别在于1. Target-Only只问一个问题这个词是不是大模型的最爱——如果大模型分布很分散没有明显最爱接受率就很惨。2. Rejection Sampling问的是草稿模型和大模型是不是在唱同一首歌——即使都不是很确定但只要两个模型的口味一致接受率依然可以很高。这也是为什么GLM-5.2要用Rejection Sampling替代Target-Only在RL训练过程中模型的输出分布会不断变化有时候很确定某个词概率90%有时候很犹豫几个词概率差不多。Target-Only在模型犹豫的时候接受率会暴跌而Rejection Sampling保持稳定因为它看的是两个模型的默契而不是某个词的绝对排名。End-to-End TV LossRejection Sampling 说的是主干模型怎么验证草稿模型的生成内容。这里讲的就是在训练草稿模型时训练目标也调整了从传统的猜对下一个词交叉熵损失改为直接优化分布重叠面积——也就是 Rejection Sampling 计算接受率时用的那个量Σ min(p, q)。这样训练出来的草稿模型其输出分布形状与目标模型更接近Rejection Sampling 的接受率自然更高。结论这四个概念可以分成两类。一类是架构层面的优化KV Share 与 Index Share。Index Share 的核心作用是降低稀疏注意力中索引计算的开销在主干网络中通过合并相邻层的Indexer节省75%的计算量在MTP层中通过复用前一步的mask限制注意力范围阻止MTP自产的低质量KV参与后续草稿的注意力计算从而提升第二步草稿的接受率。KV Share 则解决KV Cache的重复计算问题让MTP层直接复用主干网络已经算好的KV只在处理新预测出的token时才计算新的KV。另一类是算法层面的优化Rejection Sampling 和 End-to-End TV Loss。Rejection Sampling 改变了验证机制不再要求草稿token是目标模型的首选Target-Only而是比较草稿分布与目标分布的重叠程度——只要两个模型口味一致接受率就高。这使得验证过程对模型熵波动具有鲁棒性在RL训练中保持稳定。End-to-End TV Loss 则从训练端发力将草稿模型的优化目标从猜对下一个词改为直接最大化分布重叠面积让训练目标与Rejection Sampling的验证逻辑对齐从根本上提升接受率。两项架构优化IndexShare KVShare解决的是推理时计算质量和效率的问题两项算法优化Rejection Sampling TV Loss解决的是验证和训练目标不匹配的问题。四者叠加将GLM-5.2的MTP接受长度从4.56提升到5.47增幅达20%。--附录https://arxiv.org/pdf/2603.12201GLM-5技术报告:https://arxiv.org/html/2602.15763v1GLM-5.2技术报告https://z.ai/blog/glm-5.2