有些是新模块,有些是新的执行方式
V4.1 的变化横跨四个层面:模型依赖关系(CED、CSA2)、计算与访存(稀疏索引、Engram、mHC、精度)、运行时策略(两种有界重放、DSpark),以及输入模态。仅补一个模型配置,无法覆盖这些变化。
本文延续讨论中的 10 项更新。“新增”表示 AISim 需要补上的 V4.1 语义,不表示每项技术都首次由 V4.1 发明:Engram、mHC、稀疏注意力与推测解码都有前序工作,V4.1 改变了它们的组合或实现。
b6b0a38618aa 为比较对象;不把并行开发分支中的工作视为已合入、已采集或已验证。表中的“首期 / 后置”沿用讨论中的范围,不是 PR 完成状态。| 更新 | 英文全称 / 名称 | 改变了什么 | AISim 基线中的类似功能 / 缺口 |
|---|---|---|---|
| 01 CED | Causal Encoder-Decoder | 后半网络的全局 KV 来自最终 Encoder 表示。 | 已有普通因果网络与视觉 Encoder;缺少这种语言主干分段依赖。 |
| 02 CSA2 | Compressed Sparse Attention 2 | 全局 KV、索引 key、Top-K 可按不同规则跨层共享。 | 已有 V4 CSA/HCA/SWA;缺少 Full / Reindex / Reuse 与共享归属。 |
| 03 层次化索引 | Hierarchical Sparse Indexer | 先扫描全局,再让深层索引只搜索候选池。 | 已有索引与 Top-K 路径;缺少候选池及分层成本。 |
| 04 Decoder 重放 | Decoder SWA Bounded Replay | prefill 末段只重放最近 128 token 来建立 Decoder 窗口。 | 已有 prefill/decode/mixed;缺少不同层处理不同 token 集合。 |
| 05 Engram | Engram · Conditional Memory | 用 N-gram 哈希查表补充记忆能力。 | 已有 Embedding / GEMM;缺少条件查表、门控与内容局部性。 |
| 06 Single-Pass mHC | Single-Pass Manifold-Constrained Hyper-Connections | 移动系数依赖,使残差混合能单次遍历完成。 | 已有 V4 mHC;需新语义、流量模型和融合测量。 |
| 07 混合精度 | 4-/8-bit Floating Point;Key–Value Cache | main KV、SWA、index、GEMM、专家使用不同格式。 | 已有多种低精度路径;缺少 V4.1 的 KV 布局与 FP8 block32 契约。 |
| 08 多模态 | DeepSeek Vision Transformer + MLP Projector | 原生图像编码、压缩后接入语言主干。 | 已有通用 ViT / projector;V4.1 专属接入后置。 |
| 09 DSpark | DSpark(专名,无需展开) | 并行草拟 5 个位置,再按置信度和负载选择验证长度。 | 已有 MTP/EAGLE 抽象;缺少 DSpark 的结构与调度。后置。 |
| 10 Encoder 重放 | Encoder SWA Bounded Replay | 复用持久化全局 KV,并重建丢失的局部窗口。 | 已有 prefix cache / offload;缺少双缓存域恢复协议。后置。 |
手机上可在表格内横向滑动。每项的详细解释和三种建模影响见下文。
SOL、OP、FPM,各自回答什么?
SOL
Speed of Light:给定执行计划、精度和硬件资源,最理想需要多少时间?核心是计算量、访存量、通信量及依赖关系。
OP
Operation-based modeling:实际有哪些算子或融合模块,各自多慢、怎样组合?本文的 OP 包含 SILICON 实测与 Hybrid 中的理论回退。
FPM
Forward Pass Metrics:这个后端在这个 workload 下,完整 forward 实际耗时多少?可形成离线查询 / 插值表,也可用于在线拟合。
在 AISim 中,forward_model 的 OP/FPM 路径与数据库的 SOL/SILICON/Hybrid 模式是两组概念。FPM 也会借用 SOL 作为插值或外推的理论参照;这要求两条路径共享同一份模型语义。
这个式子只是一种资源下界。各项必须使用匹配的精度、设备分片和计数口径;同一通信也不能重复计入。整个 forward 要沿真实依赖图组合:顺序阶段累加,能重叠的阶段按关键路径处理,融合后重新估算中间访存。
显示全部 30 张建模影响卡片;正文始终完整保留。
40 层,不再是 40 份独立全局缓存
主干由 20 层因果 Encoder 和 20 层 Decoder 组成。前两层只有 SWA;其余层共享“稀疏全局注意力 + 本层 SWA”的骨架,但是否生成全局 KV、是否重新选索引,各不相同。
选择一层,查看它的全局 KV 来源、Top-K 来源及工作量角色。
CED:把语言主干分成因果 Encoder 与 Decoder
CED = Causal Encoder-Decoder · 因果编码器—解码器
前半网络建立可共享的全局记忆,后半网络用自己的 query 读取这份记忆,从结构上为缩短 prefill 创造条件。
“Encoder”在这里是什么意思?
这里的 Encoder 是语言主干前 20 层,仍然使用因果注意力:位置 i 只能看到不晚于 i 的信息。它不是传统翻译模型中读取完整输入的双向 Encoder,也不是后文处理图片的 Vision Encoder。整个模型仍按自回归方式生成文本。
普通逐层网络通常从每一层自己的输入投影该层的全局 KV。CED 则让 Decoder 使用从最终 Encoder 隐状态投影出的全局 KV。这样,生成后续 token 所需的长程记忆可以在 Encoder 完成后准备好;Decoder 不必为了建立每层独立的全局 KV,把整个长 prompt 再走一遍。
为什么不是“后 20 层直接删除”?
Decoder 仍然存在,decode 时每个新 token 仍需经过它。prefill 时还必须建立后续生成所需的局部 SWA 状态,因此需要第 04 项的有界重放。CED 是结构前提,bounded replay 是利用这一结构的执行策略,不能把两者合并成一个无条件的“层数减半”。
对建模的影响 以下为建模分析与设计建议
SOL
将主干表示为带阶段和依赖的图:Encoder token 计算、全局 KV 投影、Decoder 局部状态初始化、正常 decode 分开计量。权重按物理模块清单统计,工作量按阶段的 token 集合统计。重复执行同一层不应重复增加常驻权重。
OP
保留跨层的生产者—消费者关系。Decoder 的全局 KV 投影必须覆盖需要建缓存的位置,而后面的 token-wise 操作可以使用较短尾部。把整组 Decoder 统一乘一个比例,会同时误缩减 KV 写入、GEMM 或 MoE 中本不该缩减的部分。
FPM
完整 forward 数据能记录具体实现的收益,但执行身份必须区分全量路径、Decoder 有界重放路径及其实现版本。查询前仍需知道真正运行的阶段;不能仅凭模型名或“Encoder/Decoder”标签选择一条曲线。
已有的 context/generation 列表和通用 Encoder 抽象可以提供接口基础,但视觉 encoder_ops 不能直接代表 CED 的前 20 个语言层。基线 V4 模型按压缩率聚合注意力,尚没有 V4.1 的阶段工作量与 KV 归属模型。
依据 论文第 8 页 · §2.1 架构概览;论文第 9 页 · §2.2;论文第 20 页 · §3.2.2;AISim V4 模型结构
CSA2:缓存共享和索引共享分开设计
CSA2 = Compressed Sparse Attention 2 · 第二代压缩稀疏注意力
有的层生成全局 KV,有的层只重选关注位置,还有的层连位置索引也复用;所有层仍保留自己的 query 与局部窗口。
四种执行路径,其中三种属于 CSA2
论文中的 CSA2 有 Full、Reindex、Reuse 三种模式;加上主干开头的纯 SWA,AISim 需要表示四种路径。模式决定“哪些中间结果要新算”,而不是简单指定一个 attention kernel 名称。
| 路径 | Main KV / index K | Index Q / 打分 / Top-K | 本层仍要执行 |
|---|---|---|---|
| SWA only | 无全局缓存分支 | 无全局检索 | 局部注意力及本层其他网络 |
| Full | 本层生成 | 本层生成;扫描可见全局范围 | 主 query、SWA KV、attention、输出投影、MoE、mHC |
| Reindex | 复用最近的 Full | 本层生成;Decoder 中可限于候选池 | 同上,仍有自己的 attention 与 MoE |
| Reuse | 复用最近的 Full | 复用与这组 KV 对应的最新 Top-K | 同上,不复用整个层的输出 |
KV 的 owner 和 Top-K 的 producer 不是同一个概念。 例如第 29 层的全局 KV 来自第 20 层,但它使用第 28 层刚重新选择的 Top-K。若只记录“复用上一层”,就丢失了真实归属、生命周期和依赖。
压缩器也改了,并非只增加一个 ratio
V4 的 CSA 通过有重叠的压缩块生成全局 KV:压缩率 m 对应约 2m 个来源位置,并有压缩内部的绝对位置表示。CSA2 去掉这种重叠及该位置表示,改成非重叠压缩;index K 从压缩后的 main KV 投影,而不再从隐藏状态走一套单独的压缩路径。
Encoder 使用 m=2,Decoder 使用 m=1;m=1 表示不压缩的全局分支,并不代表切换到 V4 的 HCA。共享减少的是 KV 存储和部分计算,不自动减少每个 Reuse 层实际读取被选 KV 的次数。
对建模的影响 以下为建模分析与设计建议
SOL
为每层列出生成项与复用项,分别计算 Full 的压缩 / KV / index 成本、Reindex 的 query / 打分成本和 Reuse 的读取成本。内存按 owner 去重;访存按实际消费者访问计数,并将跨层缓存命中视为另一个需要验证的层面。
OP
建立 SWA、Full、Reindex、Reuse 的独立测量契约,同时记录压缩率、序列边界、Top-K 来源及融合范围。旧 CSA/HCA 数据即使张量尺寸相似,也不能无条件替代 CSA2:压缩路径、索引投影与中间读写均已改变。
FPM
FPM 不必逐个拟合内部算子,但必须复用同一份层布局、KV owner 和内存接口。使用 SOL 辅助插值时,也必须能计算这四种路径;“整模型已有精确样本”并不证明稀疏区域的插值已经可用。
基线有 DeepSeek V4 的 CSA、HCA 与 SWA 建模,支持的压缩率集合是 {0,4,128},纯 SWA 的延迟还采用 HCA 代理。V4.1 的 {0,1,2}、跨层共享和四种路径需要新增,不能只放宽配置校验。
依据 论文第 10 页 · 图 4、§2.3;论文第 11 页 · §2.3.1;KV / index source 配置;AISim V4 ratio 与 SWA 代理
Hierarchical Sparse Indexer:先找区域,再细选位置
Hierarchical Sparse Indexer · 层次化稀疏索引器(描述性名称)
Decoder 第一次检索仍看全局,后面的 Reindex 层只在一个共享候选池中搜索,把重复全局扫描变成有上限的局部打分。
一次查询,两个集合
Decoder 的首个 Full 层先对所有因果可见的 main KV 位置打分。一方面,它选出本层注意力要用的 Top-512;另一方面,把位置按 8 个一组归为 block,每个 block 取其中最大得分,再选最多 2,048 个 block,得到最多 16,384 个候选位置。
之后四个 Decoder Reindex 层使用各自的 query,在这个候选池中重新评分,得到各自的 Top-K。因此,候选池共享不等于最终注意力位置完全相同。这种搜索限制在训练和推理中一致引入,属于模型机制的一部分。
到底哪部分不再随上下文增长?
固定候选池后,后续 Reindex 对单个 query 的打分数量有上限。但首个 Full 的全范围扫描仍存在,Encoder 的三个 Full 也仍需处理各自的压缩全局范围。不能把整个模型的索引成本改成常数,也不能把所有 attention 都当作 512 长度的密集计算。
对建模的影响 以下为建模分析与设计建议
SOL
区分全局首扫和候选内重扫。对每个 query 使用实际因果可见长度与候选上限;额外计入 block max、候选选择、gather 和 Top-K 的数据移动。候选 metadata 是工作区,不能混进每层长期 KV 或被完全忽略。
OP
采集全局评分、候选构造、受限评分及选取的实际融合模块;关注 gather 非连续读、短上下文未满池、长上下文首扫和 512 / block 边界。需用执行证据确认算子真的只计算候选位置。
FPM
采样网格覆盖短上下文、16K 附近、长上下文和不同 query 批量。仅用总 attention token 数的线性特征,可能把有界重扫与全局首扫混在一起;离线插值分区和在线回归特征都应尊重这些拐点。
已有稀疏 indexer、Top-K 与模块级计时基础;基线没有 V4.1 的共享候选池、受限 Reindex 以及对应 SOL / 实测数据身份。
Decoder Bounded Replay:prefill 只补尾部状态
SWA = Sliding Window Attention;Decoder SWA Bounded Replay = 解码器滑窗注意力有界重放
利用 CED 已建立的全局 KV,仅让最近 128 个 prompt token 通过 Decoder 尾部,初始化继续生成所需的局部状态。
为什么知道全局 KV 还不够?
Decoder 的 SWA KV 来自各层自己的隐藏状态。即使全局 KV 已由 Encoder 表示投影出来,首次 decode 仍需要最近窗口的局部状态。若要求与完整 forward 数学等价,SWA 的依赖会逐层累积:20 层、窗口 128 的 Decoder 可能需要从约 20×128 个尾部 token 开始重建。
论文采用近似有界重放:只取最近 128 个 prompt token,并在重放起点截断 SWA 的历史可见范围。这样,Decoder 的初始化工作被限制在固定尾部。论文报告这种近似对其测试质量影响很小,并做了训练适配;它与全量 Decoder forward 并非数学等价。
论文的复杂度与具体实现要分开
概念上,N 个输入 token、L=40 层、W=128 时,token×layer 工作量可从 NL 转为约 N·L/2 + W·L/2。这解释了长 prompt 下接近减半的计算趋势;它没有给出任意引擎、批量、GPU 的 2 倍加速保证。
所查 SGLang 快照的裁剪发生在最后一个 KV source 层之后:0–20 层按完整 extend 执行,21–39 层处理各请求 extend 的尾部。因此,下面用 21N + 19·min(N,128) 演示一个完整未缓存 prompt 的 token×layer 数量。第 20 层仍需建立全局 KV,不能按尾部层直接缩减。
工作量示意:同一个 prompt,两种执行策略
prefix、chunked、mixed 为什么容易算错?
对于多个请求,尾部长度应逐请求取值再求和。对于 chunked prefill,当前 extend 的尾部与整个 prompt 的尾部不是同一个概念;哪些块需要尾部处理、已有局部状态如何接续,取决于 runtime。混合批中,prefill 请求可能缩减 Decoder 工作,但 decode 请求的新 token 仍经过完整主干。
重放开关也不减少需要加载的 Decoder 权重,不能把显存容量乘上工作量比例。关闭 Decoder 优化的样本依然有效,但只能代表关闭路径;普通 prefix cache 的 SWA 恢复不能被当成这一优化已开启。
对建模的影响 以下为建模分析与设计建议
SOL
用每请求、每阶段、每层的 token 数驱动 attention、mHC、GEMM、MoE 与通信,而非只给 attention 加一个折扣。支持 prefill/decode/prefix/chunked/mixed 的执行账本;常驻权重清单独立于账本,边界至少检查 127、128、129。
OP
测量全量与有界两条真实 runtime 路径,确认裁剪点、metadata 构造、KV 投影与 MoE 的实际形状。验证模块组合中的融合和重叠,记录每请求尾部与整批聚合方式;用整模型 trace 检查单算子之和是否重复计时。
FPM
重放策略、裁剪点和后端版本必须进入数据身份;不在同一表内跨模式插值。使用真实 decode 和已初始化 KV 验证首步,prefix / chunked / mixed 按有效覆盖单独标记。没有可执行的开启路径时,明确保留缺口。
基线有阶段调度与 mixed batch,但普通非 attention 工作仍使用通用 token 规模。V4.1 需要共享的执行策略和阶段工作量接口;现有 prefix-cache 机制本身不代表已支持 Decoder 有界优化。
依据 论文第 9 页 · CED prefill 复杂度;论文第 20 页 · §3.2.2;SGLang 裁剪点;SGLang 每请求 extend 尾部逻辑
Engram:用条件查表增加记忆容量
Engram 是模块专名;Conditional Memory = 条件记忆;N-gram = 连续 N 个 token 的片段
从最近的 token 组合确定查表地址,取回少量向量,经上下文门控注入残差流;表很大,每次访问却很稀疏。
从文字到残差流,具体走哪几步?
- 构造 N-gram。 对 tokenizer 的词表进行压缩映射,再根据连续 2、3、4 个 token 的组合得到片段。地址依赖真实 token 及其历史,不只依赖张量形状。
- 多头哈希查表。 每个 N-gram 阶数使用 8 个 hash head,各查一行。每行 256 维,一个阶数共 2,048 维;每个模块每个 token 总共查 24 行、拼成 6,144 维。
- 投影与门控。 查回的向量投影成供 4 条 mHC 残差流使用的 key 和一个共享 value,根据当前隐藏状态计算门控,再写入各残差流。
两个 Engram 模块位于第 1、14 层,合计约 196B 参数。V4.1 沿用此前 Engram 的主要设计,但去掉短因果卷积,避免为收益较小的模块增加推理复杂度。Embedding 表和 key/value 投影都使用 FP8。
三个数字,分别代表三种成本
| 口径 | 按官方配置 / 参考布局推算 | 解释 |
|---|---|---|
| 常驻表容量 | (384,006,168 + 384,016,682) × 256 × (1 + 1/32) ≈ 202.758 GB ≈ 188.83 GiB | FP8 表值 + 每 32 元素一个 1 字节 scale;不含分片补齐、投影权重与工作区。 |
| 单模块逻辑查表 payload | 24 × 256 × (1 + 1/32) = 6,336 B / token | 是所需行数据的逻辑量;实际 HBM 事务、缓存、分布式中间结果可增加或改变流量。 |
| 后续投影 | 6,144 → 5,120 × (4 + 1) = 25,600 | 查表之后仍有实际线性层、归一化、门控和残差读写。 |
这些是从代码布局推导的字节数,不是测得的吞吐、显存峰值或延迟。两个模块合计的逻辑行读取量约为 12,672 B/token,但真实实现可能进行重复读取、通信、反量化或缓存命中。
为什么真实文本变得重要?
连续零 token、重复短句和自然语言长文本,即使长度相同,也会形成不同的哈希地址复用。全零合成输入容易产生异常热的缓存,测出偏乐观的 lookup 时间。prefix 命中之后,N-gram 还需要正确接续历史 token;不能只恢复 KV 而让哈希历史从零开始。
论文还利用确定性地址,从 host memory 提前取回 embedding,并通过后台传输与前面的计算重叠。全 HBM 分片与host 常驻 + 预取是不同部署策略:前者主要受 GPU 内存和分片通信约束,后者还受 host、链路、预取距离及缓存策略约束。首期可以选择全 HBM 分片,但不能拿它声称覆盖论文的 host 预取效果。
对建模的影响 以下为建模分析与设计建议
SOL
分别建常驻表、逻辑 lookup、量化 scale、反量化、6144→25600 投影、门控和通信。不能把 196B 当成每 token 都执行的 dense GEMM,也不能因为只查 24 行而不计表容量。host 方案需另建传输 / 计算重叠依赖。
OP
新增 hash / lookup / gather、分片聚合、投影与门控的测量契约。用真实文本、重复文本、冷热缓存做局部性对照;标明分片和缓存策略。即使采用融合 Engram 模块测量,也需解释包括哪些通信与预取。
FPM
whole-forward 会反映 Engram,但 shape 相同不保证耗时分布相同。给采样集记录文本语料身份、prefix 分布、N-gram 历史、缓存预热和 Engram 驻留策略;留出语料验证,不能仅在同一批重复 token 上验证插值。
基线的 Embedding、GEMM 和通信模型可复用部分计算,但没有 Engram 模块及内容相关 lookup 模型。完整内存应先覆盖全 HBM 分片;host offload / RDMA 预取作为独立后续策略。
Single-Pass mHC:改依赖,才真正少走一遍内存
mHC = Manifold-Constrained Hyper-Connections · 流形约束超连接;Single-Pass = 单次遍历
把本层输入混合改为使用前一块产生的系数,使残差更新、输入混合和下一组系数预测能够合并为单次遍历。
mHC 为什么比普通 residual 更复杂?
普通残差连接可以近似理解为一条隐藏状态流上的加法。mHC 同时维护 n 条残差流;V4.1 中 n=4、隐藏维度 d=5120。一个块需要把多条流混成该块的输入,运行 attention 或 MoE 等子模块,再把输出重新写回多条流。
这些混合系数依赖当前隐藏状态。旧结构中,输入混合系数 Al 需要先跨隐藏维度做归约才能得到,输入混合因此不能立刻与残差更新合并。即使 kernel 融合得更好,也可能还需再次读残差。
Single-Pass mHC:F_l(A_(l−1) · X_l)
V4.1 将输入混合使用的系数向后错开一个块:本块消费上一块已准备好的系数,同时预测下一块所需的系数。这样每个隐藏维度 tile 一旦产生,就能立刻用于输入混合及系数预测,不必等待本块新系数完成后再读一遍。
“流量减半”到底减的是哪一段?
| 实现口径 | 读写激活元素数 / token | n=4 时 |
|---|---|---|
| 论文的原始多 kernel mHC,含 input pre-norm | (4n + 4)d | 20d = 102,400 元素 |
| 常规 mHC 的两遍 Mega-mHC | (3n + 2)d | 14d = 71,680 元素 |
| Single-Pass Mega-mHC | (2n + 2)d | 10d = 51,200 元素 |
10d 是这段理想残差变换的元素读写下界,等于原始 20d 的一半。它不是整个层、整个模型、所有 HBM 字节的一半。实际 kernel 还融合 input pre-norm 和 FP8 conversion,字节数要逐张量结合其精度计算;归约、寄存器压力和 kernel 启动也会影响时间。
对建模的影响 以下为建模分析与设计建议
SOL
为 Single-Pass 建新的激活流量和归约工作量,并清楚标记已纳入的 pre-norm、量化和残差操作,防止被别的 SOL op 重复计费。不要直接沿用旧 mHC pre/post 流量再乘 0.5;两者边界未必相同。
OP
测真实 Mega-mHC 的输入输出与融合范围,记录流数、hidden size、token 数、precision、是否含 norm / FP8 conversion。模块级时间可以替换覆盖的子操作,但不能同时把这些子操作再加一次;重叠也需以 trace 为准。
FPM
FPM 可直接测到融合后的整机收益,但必须锁定 kernel / 后端版本,并让辅助 SOL 使用同样的融合边界。升级到新 mHC 内核后,旧表不是同一实现的可交换样本。
基线已有 V4 mHC 的 pre/post 模块、Rust SOL 和测量路径,是最接近的可复用基础。仍需新增 Single-Pass 的系数时序、统一融合契约和对应性能数据。
依据 论文第 12 页 · §2.4.1,式 2–5;论文第 13 页 · 式 6、Mega-mHC;AISim mHC 理论模型
混合精度:main KV 的 4-bit 是存储格式
FP4 / FP8 = 4-bit / 8-bit Floating Point;KV = Key–Value;RoPE = Rotary Position Embedding
不同张量使用不同量化规则:main KV 用近似 NVFP4 的存储布局,SWA 保留 FP8,index 与专家另有低精度路径。
不能给整个模型只挂一个“FP4”标签
| 对象 | V4.1 规则 | 建模关键点 |
|---|---|---|
| Main KV | E2M1 数据;每 16 通道一个 E4M3 scale;省略 NVFP4 的二级全局 scale。 | 目的是减少存储;attention 前反量化,不能直接套 FP4 GEMM 峰值。 |
| SWA KV | 保留 FP8。 | 局部窗口对量化更敏感,不能与 main KV 使用同一字节系数。 |
| Indexer Q / K | MXFP4;以 32 元素为量化组。 | 影响 index 算术和 index K cache;不是 main KV 的每 16 通道格式。 |
| 普通 FP8 线性权重 | 官方 checkpoint 配置为 32×32 weight block,scale_fmt=ue8m0。 | 区分二维 weight block 和一维 activation group;block128 测量不可直接冒用。 |
| MoE 专家 | checkpoint expert_dtype=fp4。 | 具体 kernel 的 pack、scale、分组 GEMM 和调度仍由 runtime 决定。 |
| Engram | FP8 表与 key/value 投影;参考表按每 32 元素存一个 scale。 | 巨大表容量的 scale 元数据不可省略。 |
Main KV 的 RoPE 与非 RoPE 部分使用同一格式,量化放在 RoPE 之后。论文解释其动态范围足够,因此可以省略二级全局 scale。所谓“接近减半”是与 FP8 main KV 的存储比较,仍要付出 4-bit 数据之外的 scale 开销。
先按共享 owner 计容量,再按真实部署映射到每卡
按论文尺寸和紧凑布局推算,一个全局 main KV 条目为 512×(0.5+1/16)=288 B;一个 index K 条目为 128×(0.5+1/32)=68 B。Encoder 有三组 m=2 的 owner,Decoder 有一组 m=1 的 owner:
M_global(N) = C(N) · (288 + 68) bytes
M_SWA_payload(N) = 40 · min(N,128) · 512 bytes
因此长上下文的全局缓存斜率趋近 890 B/token;SWA 的 FP8 payload 在 128 token 后饱和为 2.5 MiB。这里的 512 维是共享潜在 KV 表示,不应再机械乘普通注意力的 K、V 两份。未完成的压缩组另有状态,不能把 floor 丢下的部分理解为“完全没有缓存”。
缓存容量示意:长程线性增长,窗口有上限
含每 16 通道 scale
含每 32 通道 scale
仅 FP8 payload
合计示意值 892.50 MiB;全局条目数 2,621,440。
权重内存、KV 容量、每次读取的 KV 流量还要继续分开:跨层共享让一组 KV 只存一份,但多个 attention 消费者可能各读一遍;稀疏选择限制每个 query 的读取集合,却不意味着历史缓存可以仅保留 Top-512。
对建模的影响 以下为建模分析与设计建议
SOL
用“张量角色 × 存储格式 × 计算精度 × scale 布局”描述量化,逐项计算权重、缓存、反量化和读写字节。为 FP4 main KV 建独立存储类型;分开 attention 实际算术的峰值与存储节省,保留奇数长度和页边界。
OP
补 main KV pack / unpack 与 attention 融合数据、index MXFP4、SWA FP8、block32 GEMM、专家实际低精度内核。身份记录 weight block、activation group、scale dtype 和 layout;只写 fp8/fp4 不足以判定样本兼容。
FPM
量化方案和实际 kernel 版本进入 forward 数据身份;同样的模型名可因格式或融合不同产生不同曲线。保持 FPM 包装前后权重与 KV 估计一致,不能为了复用旧 FP8 表而把 V4.1 的内存伪装成旧格式。
基线已有 BF16/INT8/FP8 KV 与多类低精度 GEMM / MoE 路径,但没有 V4.1 main KV 的独立格式。旧 FP8 block 假设和现有专家数据只能在实际布局与形状匹配时复用。
原生多模态:图像先编码,再压缩成语言输入
ViT = Vision Transformer;MLP = Multilayer Perceptron · 多层感知机
图像通过 DeepSeek-ViT 和投影器变成较少的视觉 token,再与文本共同进入语言主干。
视觉路径具体增加了什么?
V4.1 从主干预训练阶段就联合处理图像和文本。图像先由 DeepSeek-ViT 编码,再经 3×3 pixel-unshuffle 合并局部网格,使视觉 token 数量缩减约 9 倍,最后通过两层 MLP projector 映射到语言空间。
视觉 Encoder 有 32 层、隐藏维度 1,024、16 个 attention head、patch size 14;它使用 2D RoPE 处理不同尺寸图像的位置,并采用 RMSNorm 与 SwiGLU 等结构。实际输入缩放、网格补齐及输出 token 数应由 image processor 决定,不能无条件用原始宽高相除。
论文还为图像和文本 token 使用不同的 MoE 路由平衡偏置。对于执行成本,这意味着相同总 token 数下,不同模态比例可能改变专家负载;理想均衡的专家分布不能自动代表实际路由。
两种 Encoder,需要两个名字
Vision Encoder 消费图像 patch;Causal Encoder 是语言主干前 20 层,消费视觉或文本 embedding。论文系统部分的视觉编码 / prefill / decode 分离,还引入独立的视觉阶段及跨阶段传输。图像 encode 成本既不能漏掉,也不应在每个 decode 步骤重复发生。
对建模的影响 以下为建模分析与设计建议
SOL
新增 ViT、图像网格压缩、projector 的计算 / 激活 / 权重,再将最终视觉 token 计入语言主干。内存还要区分请求是否有图片、视觉阶段是否驻留在同一 GPU,以及 encoder 并行和阶段传输。
OP
采集实际分辨率、长宽比、patch 网格与图像 batch 的视觉 kernel;语言侧增加模态路由和混合 token 覆盖。视觉 encoding、projector、语言 prefill 的边界需要定义清楚,避免模块相加重复包含。
FPM
首期纯文本 FPM 不覆盖图像。后续需独立测量或联合记录视觉阶段,给图像尺寸 / 数量 / 模态比例建立身份,且明确 forward 是否包括视觉编码;单一文本 token 数不足以插值视觉端到端延迟。
已有通用 ViT、projector 与视觉并行能力,但 V4.1 的具体视觉结构和语言接入仍需适配。固定基线的 FPM 包装显式拒绝带 encoder_ops 的多模态模型;本项按计划后置。
依据 论文第 8 页 · §2.1.1–2.1.2;论文第 18 页 · §3.2 推理系统;论文第 22 页 · 视觉配置;AISim 通用 ViT;FPM 多模态边界
DSpark:草拟长度由置信度与系统负载决定
DSpark 是专名;Speculative Decoding = 推测解码;MTP = Multi-Token Prediction
用三层小网络一次草拟五个位置,再结合预测接受概率与引擎吞吐曲线,为每个请求选择值得验证的长度。
与“每次固定猜 5 个 token”有什么不同?
DSpark 的 drafter 由 3 个 Transformer block 构成,SWA 窗口是 128。一次 forward 并行计算 5 个草拟位置的基础 logits;轻量 Markov head 表达草拟 token 之间的依赖;confidence head 预测每个位置在前缀被接受条件下的接受概率。
调度器把这些概率转为前缀存活概率,再结合预先测得的 engine throughput 曲线和当前系统负载,动态选择每个请求的验证长度。高接受率和低额外验证成本可能支持更长的草拟;负载和批形状变化时,最优长度也可能改变。
吞吐模型需要两个量:一次花多久,一次产出多少
对采用前缀接受的简化推测解码过程,若第 j 个位置的条件接受率为 aj,前 j 个位置全部接受的概率为它们的乘积。可用这些存活概率估计接受的草拟长度,再按具体验证协议处理额外产出的 token。
throughput ≈ E[actual_emitted_tokens] / E[step_time]
不能简单用“固定接受率 × 5”替代前缀依赖,也不能把 verification forward 时间直接当作每 token 的 ITL。客户端会观察到 token burst、调度等待和输出节奏,这些都在单次 forward 之外。
对建模的影响 以下为建模分析与设计建议
SOL
单独建三层 drafter、Markov / confidence head、target verification、状态提交与回退成本。草拟位置数、每请求验证长度和实际产出独立表示;重复验证增加工作量,但不重复增加主干常驻权重。
OP
同时覆盖 draft、verify 与状态更新的模块形状;混合批中各请求验证长度不同。记录哪些阶段共享或复用 target 隐状态,哪些可以重叠;仅测一次普通 decode 无法推出完整 DSpark 成本。
FPM
whole-forward 样本必须标明 draft 或 verify、每请求验证长度与已接受 token 数;进一步用真实请求检验整步吞吐和 token 时间分布。DSpark 关闭的数据不得用于声称支持开启路径;首次 GB200 采样按计划关闭。
基线有 nextn、MTP/EAGLE、接受率和输出 burst 等抽象,但没有 DSpark 的 3 层 / 5 位置结构与基于置信度的负载调度。FPM 基线明确拒绝 nextn>0;本项应独立扩展。
依据 论文第 13 页 · §2.4.3;论文第 14 页 · drafter 与调度;DSpark 配置;AISim 推测解码抽象;FPM nextn 边界
Encoder Bounded Replay:缓存命中后重建局部窗口
Encoder SWA Bounded Replay = 编码器滑窗注意力有界重放;Prefix Cache = 前缀缓存
持久化保存全局 KV,局部 SWA 状态缺失时,只重放已缓存前缀的最近 128 token,再继续处理新后缀。
它解决缓存恢复,不是第 04 项的同一个开关
第 04 项限制 Decoder 在 prefill 中处理多少 token。本项处理另一个问题:会话恢复或 prefix 命中时,系统可能保留了长期全局 KV,却已释放局部 SWA KV。要继续执行 Encoder,必须先重建本地窗口。
论文将前缀缓存的持久化依赖收敛到 global KV。若 Encoder SWA 缺失,就把已命中前缀的最后 W=128 个 token与未缓存后缀放在一起处理。重放的前缀 token 只重新生成 SWA KV,读取已缓存的全局 KV,不重算、不覆盖已缓存 global KV;新的后缀 token 则生成两种缓存。
省在哪里,又付出什么?
把 SWA 从持久化前缀对象中移除,可以减少会话长期存储和传输;代价是恢复时的重算。论文系统还使用多级存储及不同保留期限,但具体保留时间、host pool 比例是其部署策略,不应成为所有后端的固定模型常数。
论文按其比较口径报告:V4.1 的全局 KV 约为 V4 Flash 的 1/4,进一步移除持久化 SWA 后,持久化缓存约为 1/8。前者叠加跨层共享和精度变化,后者还包含缓存保留策略变化。这些比例不适用于全部 GPU 显存,更不包括新增 Engram 表的权重容量。
重放起点截断了更早的 SWA 依赖,所以恢复状态是近似的,后缀计算可能随缓存命中位置变化而不同。论文报告测试中质量影响很小,同时也在局限性中承认极端边界尚未完全刻画。建模需要区分“可执行 / 耗时正确”和“输出质量在目标 workload 上可接受”。
对建模的影响 以下为建模分析与设计建议
SOL
表示 global 命中、SWA 命中 / 缺失两个状态域。恢复时仅给前缀尾部计重放与 SWA 写入,后缀才计新增 global;另计存储传输、缓存元数据和已有 token 历史。避免把重放位置再增加一次持久缓存容量。
OP
先建立明确的 replay metadata 和写入协议,再测恢复模块。重点检查 global cache 未被覆盖、跨压缩组 / page 边界、短 prefix 和共享 owner。缓存搬运与重算若重叠,组合模型按真实依赖计时。
FPM
样本同时记录命中前缀长度、SWA 是否存在、重放长度、新后缀、缓存层级及 Decoder 策略。不能只用“prefix hit=true”选曲线;完整请求的 TTFT 还要包含恢复 / 搬运和排队,视测量边界决定是否另加。
基线有 prefix cache、offload 和相关调度机制,尚缺 global / SWA 分离生命周期及近似恢复语义。需在后续独立接入,并与 Decoder 优化分别开关、分别验证。
依据 论文第 19 页 · §3.2.1 持久化 KV;论文第 20 页 · §3.2.2;论文第 37 页 · §6 局限性;AISim 缓存配置基础
共享模型描述,应该包含哪些信息?
新机制之外,V4.1 Flash 的基础形状也变了。旧模型有相似 op,不代表数据库已经覆盖新的 MoE、GEMM 与 attention 形状。所有路径应从同一份官方配置解析这些参数。
| 类别 | V4.1 Flash 官方配置 | 影响 |
|---|---|---|
| 语言主干 | 40 层;hidden=5120;vocab=129280 | 嵌入、残差、GEMM、激活与权重清单。 |
| MoE | 384 routed + 1 shared expert;top-6;intermediate=2304 | 专家权重、每专家 token 分布、低精度 grouped GEMM 和通信。 |
| Attention | 64 query heads;head dim=512;q rank=1280;8 output groups;o rank=1024 | 不同投影形状及 TP 分片,不能只更新层数。 |
| Indexer | 32 heads × 128;Top-K=512;candidate≤2048×8 | 首扫、受限重扫与选择开销。 |
| 局部与共享 | SWA=128;KV source 4 个;index source 8 个 | 缓存 owner、消费者、有效长度与窗口状态。 |
| 残差 / 条件记忆 | mHC streams=4;Engram layers={1,14} | 残差激活、查表容量、阶段重叠。 |
compress_ratios 的 43 项包含主干 40 层和 3 个 DSpark block。DSpark 关闭时不能把尾部三个 0 当成额外主干 SWA 层。建议共用四个接口,而不是复制三套公式
① 模型语义与常驻内存
模型 revision、层布局、KV/index 归属、投影维度、精度布局、权重清单。常驻容量来自物理模块,不依赖这一步执行了几个 token。
② 实际执行计划
阶段、每请求 token 集合、缓存读写、裁剪点、重放方式、融合 / 重叠关系、并行映射。SOL 与 OP 使用相同计划,FPM 记录同一身份。
③ 共享 Rust SOL 成本函数
op 直接查询和 FPM 的理论辅助插值调用同一套实现。Python 已构建某个新 op,并不代表 Rust 的 FPM 专属分派已认识它。
④ 样本身份与覆盖状态
区分语义兼容性、形状坐标、测量环境、语料与成功 / 失败。缺行可按明确规则回退或报错,不能以其他重放模式的数据补齐。
FPM 的“同一种执行”需要足够精确
backend_revision + image_digest + instrumentation_revision
GPU + topology + TP / EP / DP / CP / PP mapping
decoder_replay_profile + encoder_restore_policy + fusion_profile
Engram_residency + DSpark_mode + measurement_boundary
workload: per-request lengths, prefix state, content / locality, warmup
这些字段不一定全部变成插值坐标:版本、重放语义、量化布局通常属于不可混用的分区;batch、query token、context length 等才是分区内的采样坐标;语料身份与冷热点状态则需要明确的代表性验证。
怎样证明“支持了”,而不是仅能运行?
按讨论中的范围,先完成纯文本、自回归、DSpark 关闭,以及 Decoder 重放开 / 关的模型语义。SOL 提供共享结构和内存;OP 补实际模块测量;FPM 补 whole-forward 曲线。两条测量线使用各自的硬件样例,但都以真实可执行的 runtime 为边界。
| 验证项 | 最小有效例子 | 要防止的错误 |
|---|---|---|
| 结构与 ownership | 逐层核对 2 / 4 / 4 / 30 路径计数;第 29 层 KV 来自 20,索引来自 28。 | 把复用层当成没有 attention,或把共享缓存存多份。 |
| 常驻内存 | 同配置切换 Decoder 重放;FPM 包装前后对比。 | 权重随工作量减少;Engram 表只按本次查到的行计容量。 |
| 长度与状态边界 | 127 / 128 / 129;奇数长度;压缩组、candidate 与 cache page 边界。 | 统一比例缩减、floor/ceil 错误、短请求得到负或虚假收益。 |
| 异构批与 chunk | 短长 prompt 同批;prefill + decode;多个 chunk;不同 prefix 命中。 | 对整个 batch 只取一次 min(总 token,128),遗漏真实 decode。 |
| 内容与 KV 初始化 | 真实文本;有历史的真实 decode;冷热 Engram 对照;真实 prefix reuse。 | 全零文本制造热缓存,未初始化或错误的 KV 产生虚假结果。 |
| OP 组合 | 同一后端比较模块时间和整模型 trace。 | mHC / norm / quant / compressor 重复计费,或忽略通信与重叠。 |
| FPM 泛化 | 留出 batch、请求长度分布、上下文长度和语料;报告域内 / 域外。 | 训练点拟合很好,就声称任意长上下文或其他策略可用。 |
| 系统结果 | 同时验证 forward、TTFT、ITL 和输出吞吐。 | 把 GPU forward 时间直接等同于客户端等待时间。 |
两个硬件样例,各自证明什么?
GB300 · OP / SILICON 线
优先选确有 V4.1 路径的运行时,固定 kernel 和镜像,先验证模块边界,再采集与组合。SGLang、vLLM、TensorRT-LLM 的能力逐项记录;一个后端通过不能代表三个后端都通过。
GB200 · FPM 线
计划从单节点 4 卡、纯 TP4、纯文本、DSpark 关闭开始。先验证短 prefill、真实 decode、128 边界和 prefix reuse,再采网格与留出集。Decoder 开启路径需 runtime 证据,缺失时只覆盖可验证的关闭路径。
以上是验收边界的说明,本文没有运行 GPU 采集,也不提供已经测得的性能或整模型误差。新模型在某硬件上“可启动”、一个 kernel “可调用”、某条曲线“已采集”,是不同程度的支持。
误差指标与失败记录也要有口径
Forward 明确计时是否包含 host launch、同步或 CPU 间隙;TTFT 明确从请求到达还是进入执行开始计;ITL 处理流式输出和推测解码 burst;吞吐 用实际输出 token 与明确的观测窗口计算。报告中同时给中位数、尾部误差和最差样本,并保留 unsupported、初始化失败、OOM、执行失败、无效输出、样本缺失等类别。
本文常用英文名
| 缩写 / 名称 | 全称 | 中文含义 |
|---|---|---|
| SOL | Speed of Light | 给定约束下的理论性能下界 |
| OP | Operation;本文指 Operation-based Modeling | 算子拆分与组合建模 |
| FPM | Forward Pass Metrics | 完整前向过程的性能指标 |
| CED / CSA2 / SWA | Causal Encoder-Decoder / Compressed Sparse Attention 2 / Sliding Window Attention | 因果编解码 / 压缩稀疏注意力第二代 / 滑窗注意力 |
| mHC | Manifold-Constrained Hyper-Connections | 流形约束超连接 |
| MoE / MTP | Mixture of Experts / Multi-Token Prediction | 混合专家 / 多 token 预测 |
| ViT / MLP / RoPE | Vision Transformer / Multilayer Perceptron / Rotary Position Embedding | 视觉 Transformer / 多层感知机 / 旋转位置编码 |
| FP4 / FP8 / KV | 4-bit / 8-bit Floating Point;Key–Value | 4/8 位浮点;注意力键值 |
| HBM / RDMA | High Bandwidth Memory / Remote Direct Memory Access | 高带宽显存 / 远程直接内存访问 |
| TP / EP / DP / CP / PP | Tensor / Expert / Data / Context / Pipeline Parallelism | 张量 / 专家 / 数据 / 上下文 / 流水线并行 |
| TTFT / ITL | Time To First Token / Inter-Token Latency | 首 token 时间 / token 间延迟 |
| Engram / DSpark / SILICON / Hybrid | 模块专名或模式名称,不强行构造首字母展开 | 条件记忆 / 推测解码模块 / 实测模式 / 混合模式 |
参考资料与阅读方法
架构解释以技术报告为主;具体层编号、形状和存储实现用官方配置及参考代码交叉核对。工作量、缓存计算器、AISim 接口建议和验证矩阵是本文的建模推导,不是论文给出的测量结果。页面未复制论文图片,图示均为按事实重新组织的说明图。
- 论文第 1 页 · DeepSeek-V4.1 Technical Report固定 Hugging Face revision:fb2764a5cf321eaa5070ca8f9e892818f477c16d。重点:第 7–14 页架构,第 18–20 页推理系统,第 21–22 页配置,第 37 页局限性。页码为 PDF 内页码。文中机制均为中文概述,原图与推导请见原报告。
- DeepSeek-V4.1-Flash · 官方 config.json同一 revision;text_config、vision_config、量化布局、owner 与 index source、Engram、DSpark。
- DeepSeek-V4.1-Flash · 参考推理实现用于解释具体布局、Engram 流程、索引计算与配置行为;可读参考实现不等同于生产高性能 kernel。
- SGLang · V4/V4.1 实现固定 revision:1aa0e962b206102b7c439a4a0c4981cfec6e87bc。用于说明具体 Decoder 裁剪点;不是对未来版本或所有运行配置的承诺。
- AISimulate · V4 建模基线 与 FPM 包装接口固定 main revision:b6b0a38618aa59181a6bdc80ae9d6f43082c17c1;支持程度以此为基线,未包含并行开发分支。仓库链接可能需要相应访问权限。
- AISimulate · FPM SOL 辅助计算 与 mHC 理论模型用于界定可复用基础及新增操作的 Rust 接入边界。
编写日期:2026-09-10。全部交互在本地运行,无外部脚本、字体或图表依赖。计算器展示明示假设下的推导值,未读取设备数据。