今天跑在生产环境里的大模型,越来越多是"混合架构":少数几层 softmax 注意力,加上大量线性注意力或状态空间层。Qwen3.8-Flash-Next、Kimi-Linear、GLM-5.3-Flash、Nemotron 系列,都是这个路子。
混合架构本来是为了省成本,但真正部署起来有个刺眼的问题:预填充(prefill)阶段要烧大量算力,解码(decode)阶段又被高带宽显存(HBM)的带宽死死卡住。 以 Qwen3.8-Flash-Next 为例,解码时一个请求要在显存里维护数千个循环状态,这些状态占用的字节,和注意力缓存一样多。
NVIDIA 最近放出的论文 Shallow Encoding Emits Deep Memories(arXiv:2611.06084,2026-11-03),提出方法 SEED,要解决的正是这件事。它在完全冻结原始权重、不压缩注意力缓存的前提下,把 prefill 的参数 FLOPs 省下 71%,把循环状态压缩到原来的 1/2 到 1/3.9,而在 11 个官方考试上几乎无损,服务吞吐还能提升 1.2–1.4 倍。
这篇文章不讲复杂公式,只理清三件事:NVIDIA 发现了训练好的混合模型哪两个结构性特征,SEED 怎么把这两个特征变成推理方法,以及它的证据和边界到底有多硬。
---
01 先搞清楚:推理的钱花在了哪
一个混合模型处理请求分两个阶段。
Prefill(预填充):一次性处理全部输入 prompt。每个 prompt token 都要走完整网络,模型权重被反复读取,所以这是一个计算密集(compute-bound)环节——瓶颈是算力。
Decode(解码):逐个生成输出 token。此时模型权重和驻留的循环状态都要在每一步读进显存,瓶颈是 HBM 带宽(HBM-bound)。线性注意力或状态空间层会把每个 token 写进一个固定大小的循环状态(recurrent state),随着生成进行,这些状态不断被读出、写回。
问题在于,固定大小并不等于小。论文给出一个数字:在 Qwen3.8-Flash-Next 上,单个请求的循环状态有 113.2 MB,相当于约 4.5K 个 token 的注意力缓存(见论文 Table 2)。
SEED 的判断是:这种浪费不是工程实现问题,而是结构性的。训练好的混合模型在两个阶段各有一个特性,让"记忆"远比服务这些记忆所需的计算和存储简单。这两个特性,一个对应 prefill,一个对应 decode。
---
02 发现一:写记忆,比读记忆容易得多
一层深度网络在一个 prompt token 上其实干两件事。
写(write):把这个 token 的记忆写进注意力缓存或循环状态,它只需要读取进入这一层的残差流(residual stream)。读(read):预测下一个 token,这需要注意力和前馈模块的全部计算。
论文发现,这两件事的成本极不对称,并把它命名为写读不对称(write-read asymmetry)。
关键在一个特殊位置:锚点层(anchor layer)。在五个模型上,锚点层位于网络 63%–89% 的深度处,锚点层(k−1 层)的输出记为 h^(k)。这个 h^(k) 有个很强的性质:不需要任何训练,直接把它喂给深层的写路径,它对下一个 token 分布的改变,KL 散度就低于 0.1 nats/token。换句话说,深层写记忆所需要的信息,在很浅的锚点层输出里已经基本齐备。
作为对照,在同样深度放一个未经训练的早期出口、直接接输出头,结果会差 6.8–11.1 nats/token。差距非常大。
上图把这件事画得很清楚。绿色曲线是 prompt token 跳过某层(记忆仍在写),黑色曲线是生成 token 跳过某层。可以看到:prompt token 跳过大部分深层,KL 依然很低;而生成 token 对深层高度依赖,最深的那些层几乎不能动。 右侧子图进一步显示,未经训练时,深层写路径直接吃 h^(k)(绿点)的 KL,远小于未经训练出口接输出头(黑块)。
为什么会这样?逻辑很直接:在 prompt token 处,唯一持久的产物就是它写下的记忆,一个被跳过的层仍会写记忆,所以跳过层只通过后续层的写路径影响结果;而生成 token 时,深层还必须产出下一个 token 的完整分布,这是"读",省不掉。
---
03 发现二:循环状态里,藏着一个"汇聚点"
第二个发现针对 decode 阶段的循环状态。
论文对状态做奇异值分解(SVD)后发现:能量高度集中在一个方向上。 在 Qwen3.8-Flash-Next 上,最大的奇异项(rank-one 项)承载了状态约 85% 的 Frobenius 能量;这个方向几乎与 prompt 无关,在不同输入上高度一致,论文称之为状态汇聚点(state sink)。
剩下的部分叫内容(content),是低秩的工作记忆,能量只摊在少数几个方向上。
这张图信息量很大。左上角三个 128×128 的热力图分别是完整状态(100%)、汇聚点(94%)和内容(6%)——汇聚点几乎就是状态本身,内容只剩 6%。下方的奇异谱图显示,状态的能量在少数几个奇异值后快速衰减,而 SEED 保留的秩 R=16(虚线)已经覆盖了绝大部分有效内容。
在五个模型上汇总,汇聚点承载的状态能量占比达 69.9%–99.7%。论文还给出一个直观结论:汇聚点持有能量,内容持有 prompt。 实验里,把汇聚点替换成随机数会带来明显误差,而把内容替换成随机 token 的影响小得多;汇聚点的系数只依赖键、衰减和写强度,并不依赖具体 prompt 内容。
这意味着,一个庞大的 d_k×d_v 循环状态,本质上可以拆成"一个固定方向的汇聚点 + 一小段低秩工作记忆"。
---
04 SEED:让 prefill 在深度上变浅,让状态在表示上变浅
两个发现拼起来,就是 SEED(Shallow Encoding Emits Deep Memories)。它由两部分组成,正好对应两个阶段的瓶颈。
第一部分:浅 prefill(shallow in depth)。 前 N−1 个 prompt token 不再跑完整网络,只跑到锚点层(0..k−1),然后由一组发射器(emitter)负责写深层记忆。发射器是深层写路径的架构副本,经过训练,从锚点层输出 h^(k) 直接写出每个深层注意力缓存和循环状态。最后一个 prompt token 仍然跑全部 L 层,保证第一个回复 token 的分布与原模型一致。
此外还有一个可选的提示码(prompt code):对 h^(k) 做有损压缩,用一个向量就能在节点间转移或恢复一个 prompt 的深层记忆,用于前缀缓存和分离式部署。
第二部分:浅状态(shallow in representation)。 每个循环状态不再存成稠密矩阵,而是存为汇聚点加上秩 R 的低秩因子,即 S = a·v̄ᵀ + U·Vᵀ。在 Gated DeltaNet、Kimi Delta Attention 和 Mamba-2 的更新规则下,这种形式是闭合的:每一步更新汇聚点系数、衰减 U、给因子追加一列,更新精确成立;只有每隔 W 步把因子压缩回秩 R 时,才引入唯一的近似。
论文给出了误差界:压缩误差在开环下不会复合累积,最大单次压缩误差停留在头部的衰减视界内。实测中,从相同起点出发,最后 4K 个 token 的漂移仅 1.2–1.4 倍,哪怕压缩次数增长到 4 倍。
整个过程,原始权重始终冻结,注意力缓存完全不压缩。 论文在五个生产模型上验证了这些结构,它们的循环层分别是 Gated DeltaNet、Kimi Delta Attention 和 Mamba-2。
---
05 证据:考试近无损,漂移比官方量化还小,吞吐实打实
SEED 的评估覆盖六个检查点、五个生产混合模型,参数规模从 30B 到 300B 以上,包括 Qwen3.8-Flash-Next(bf16 与 NVFP4 两版)、Nemotron-3.5-Lightning、Nemotron-3.5-Super、Kimi-Linear、GLM-5.3-Flash。
考试精度。 在 11 个官方考试(含 GPQA-Diamond、MMLU、AIME 2025、MATH-500、IFEval、LiveCodeBench v6、HumanEval+、LongBench v2、RULER 等)的 66 个"检查点—考试"组合中,63 个的分数落在原模型两个标准差之内或更高。SEED 答错的频率和原模型相当,回复也没有变得更啰嗦。
分布漂移。 fp32 下,浅状态的解码漂移只有 0.002–0.007 nats/token,原模型回复的困惑度变化不到 0.6%。一个有说服力的对比是:NVIDIA 自己的官方 NVFP4 检查点(4-bit 权重)漂移要大 1.9–3.5 倍,困惑度提升 1.2%–2.1%。也就是说,浅状态比官方量化更贴近原模型。在长达 16K 步的解码中,漂移增长得相当缓慢,且始终低于官方 NVFP4。
服务性能。 用 SGLang 在 NVIDIA GB300 GPU 上、基于真实的 agentic-coding 轨迹(InferenceX)测试,Qwen3.8-Flash-Next 的单 GPU 峰值吞吐达到原模型的 1.16–1.42 倍,并能多承载 8–16 个并发会话。
具体看三种部署:聚合式 NVFP4 TP1 峰值 1.20 倍,聚合式 bf16 TP2 为 1.16 倍,分离式 bf16 1P:1D 达 1.42 倍。在每用户 40 tokens/s 的同等速率下,三者分别做到 1.23、1.26、1.42 倍。越到高并发、原模型显存池被状态占满时,SEED 的优势越大——在 1P:1D 的 64 会话场景,原模型每用户速率已跌到 4 tokens/s 以下,SEED 仍能做到 3.0 倍吞吐。
训练成本方面,SEED 只新增 0.11B–0.71B 个参数(发射器加提示码编解码器),以冻结模型为唯一教师,分两阶段蒸馏。bf16 的 Qwen 套装,阶段一在 16 节点、每节点 4 GPU 上训练 160 分钟,阶段二再花 111 分钟。论文表示将开源代码、组件和训练轨迹。
---
06 局限:哪些场景它帮不上忙
论文单设了局限章节,边界讲得比较清楚。
- 不碰注意力缓存。
对那些长上下文记忆主要由少数注意力层主导的混合模型,浅状态能带来的节省会明显缩水。KV-cache 的量化、驱逐和卸载,SEED 都留给了其他方法,原封不动。 - 锚点深度靠探针、逐模型设定。
锚点不是学出来的,而是用廉价的未训练探针在每个检查点上确定,最终落在 63%–89% 深度;一个残差流能被压到多深,取决于具体架构,这个问题仍是开放的。 - 误差界是最坏情况。
开环误差界给出的是上界,而实测的闭环漂移要慢得多,论文也承认,目前还没有一个关于重复压缩的闭环理论能干净解释这一点。 - MoE 上的增益主要来自容量。
服务测试都在混合专家(MoE)检查点上进行,小状态主要通过腾出更多显存、容纳更多请求来提升吞吐;在稠密(非 MoE)模型上,小状态的每步字节节省才会直接体现为单步流量下降。论文也说明了 fp16 等更低精度下的额外取舍。
---
结尾:判断推理加速是不是"无损",看它动了什么
SEED 最值得带走的思路,是它没有去改模型最敏感的部分:权重冻结、注意力缓存不压缩、最后一个 prompt token 走完整网络,只在"写记忆"和"状态的低秩结构"这两个被证明可以简化的地方动手。
它的两个发现也提供了一把理解混合模型的尺子:写记忆比读记忆容易,所以 prefill 可以在深度上变浅;循环状态有一个与 prompt 无关的汇聚点,所以状态可以在表示上变浅。 这两个特性都不是工程师设计进去的,而是从训练好的模型里测出来的——这也是论文反复强调的一点。
更稳妥的结论是:在五个生产模型、30B 到 300B 以上的规模上,SEED 已经用近无损的考试分数和比官方量化更小的漂移,证明了这套简化的可行性;但它并不解决注意力缓存压缩,在注意力主导的模型和稠密架构上,收益要重新评估。把记忆算清楚,往往比把记忆做大更重要。

