← Pages · 技术笔记

Architecture → Execution → Performance

DeepSeek V4.1 Flash这些更新,究竟改变了什么?

从“每层都处理全部 token”,走向跨层共享、稀疏检索与有界重放。逐项解释 10 个更新,再落到 SOL、算子建模与完整 forward 测量。

中文详解 · 约 30–40 分钟技术报告 + 固定版本代码AISim 建模视角2026 年 9 月 10 日
20 + 20因果 Encoder / Decoder 层
4 组拥有全局 KV 的主干层
128SWA 窗口 / 有界重放长度
196B主干之外的 Engram 参数

论文给出的规模是 552B 主干参数 + 196B Engram 参数;8B / 16B 是 prefill / decode 的激活参数口径,不能用来代替常驻权重容量。论文第 7 页 · §2.1

阅读地图先看结构,再看执行策略

有些是新模块,有些是新的执行方式

V4.1 的变化横跨四个层面:模型依赖关系(CED、CSA2)、计算与访存(稀疏索引、Engram、mHC、精度)、运行时策略(两种有界重放、DSpark),以及输入模态。仅补一个模型配置,无法覆盖这些变化。

本文延续讨论中的 10 项更新。“新增”表示 AISim 需要补上的 V4.1 语义,不表示每项技术都首次由 V4.1 发明:Engram、mHC、稀疏注意力与推测解码都有前序工作,V4.1 改变了它们的组合或实现。

论文事实报告描述的结构与机制代码快照固定版本中能看到的行为建模分析由结构推导的成本与建议
“AISim 支持程度”采用固定基线。 本页以 AISimulate main 的 b6b0a38618aa 为比较对象;不把并行开发分支中的工作视为已合入、已采集或已验证。表中的“首期 / 后置”沿用讨论中的范围,不是 PR 完成状态。
更新英文全称 / 名称改变了什么AISim 基线中的类似功能 / 缺口
01 CEDCausal Encoder-Decoder后半网络的全局 KV 来自最终 Encoder 表示。已有普通因果网络与视觉 Encoder;缺少这种语言主干分段依赖。
02 CSA2Compressed 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 Replayprefill 末段只重放最近 128 token 来建立 Decoder 窗口。已有 prefill/decode/mixed;缺少不同层处理不同 token 集合。
05 EngramEngram · Conditional Memory用 N-gram 哈希查表补充记忆能力。已有 Embedding / GEMM;缺少条件查表、门控与内容局部性。
06 Single-Pass mHCSingle-Pass Manifold-Constrained Hyper-Connections移动系数依赖,使残差混合能单次遍历完成。已有 V4 mHC;需新语义、流量模型和融合测量。
07 混合精度4-/8-bit Floating Point;Key–Value Cachemain KV、SWA、index、GEMM、专家使用不同格式。已有多种低精度路径;缺少 V4.1 的 KV 布局与 FP8 block32 契约。
08 多模态DeepSeek Vision Transformer + MLP Projector原生图像编码、压缩后接入语言主干。已有通用 ViT / projector;V4.1 专属接入后置。
09 DSparkDSpark(专名,无需展开)并行草拟 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 作为插值或外推的理论参照;这要求两条路径共享同一份模型语义。

单个阶段 / 算子的理想资源约束示意t ≥ max(FLOPs / P_effective_peak, HBM_bytes / BW_HBM, communication_bytes / BW_link)

这个式子只是一种资源下界。各项必须使用匹配的精度、设备分片和计数口径;同一通信也不能重复计入。整个 forward 要沿真实依赖图组合:顺序阶段累加,能重叠的阶段按关键路径处理,融合后重新估算中间访存。

FPM 可以吸收实际融合的时间收益,却不能替代内存模型。 即使一条延迟曲线很准,如果它把 Decoder 权重随重放比例缩减,或把共享 KV 重复计算,最终能否部署、能容纳多少请求仍会算错。
下方 10 项的影响卡片

显示全部 30 张建模影响卡片;正文始终完整保留。

依据 AISim FPM 包装与原始 SOL / 权重列表

交互架构图层编号从 0 开始

40 层,不再是 40 份独立全局缓存

主干由 20 层因果 Encoder 和 20 层 Decoder 组成。前两层只有 SWA;其余层共享“稀疏全局注意力 + 本层 SWA”的骨架,但是否生成全局 KV、是否重新选索引,各不相同。

SWA onlyFullReindexReuse含 Engram
因果 Encoder · 0–19全局压缩率 m = 2
Decoder · 20–39全局压缩率 m = 1

选择一层,查看它的全局 KV 来源、Top-K 来源及工作量角色。

2 层 SWA only + 4 层 Full + 4 层 Reindex + 30 层 Reuse。全局 KV owner 为 2、8、14、20;Top-K 产生层为 2、8、14、20、24、28、32、36。紫点是第 1、14 层的 Engram。此图为根据论文和配置绘制的结构示意。

依据 论文第 7 页 · 图 3;论文第 22 页 · §4.2.1;官方模型配置

01 / 更新首期核心

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 再走一遍。

① 全部 prompt → 因果 Encoder20 层建立语言表示,内部仍有稀疏注意力与 MoE。
② 最终 Encoder 表示 → 全局 KVDecoder 的 Full 层负责投影;后续 Decoder 层复用。
③ Decoder → 下一个 token拥有自己的 query、SWA、MoE 与残差流;全局记忆跨层共享。
数据依赖示意;没有表达 kernel 数目、并行排程或耗时比例。

为什么不是“后 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”标签选择一条曲线。

AISim 基线与类似功能

已有的 context/generation 列表和通用 Encoder 抽象可以提供接口基础,但视觉 encoder_ops 不能直接代表 CED 的前 20 个语言层。基线 V4 模型按压缩率聚合注意力,尚没有 V4.1 的阶段工作量与 KV 归属模型。

依据 论文第 8 页 · §2.1 架构概览;论文第 9 页 · §2.2;论文第 20 页 · §3.2.2;AISim V4 模型结构

02 / 更新首期核心

CSA2:缓存共享和索引共享分开设计

CSA2 = Compressed Sparse Attention 2 · 第二代压缩稀疏注意力

一句话

有的层生成全局 KV,有的层只重选关注位置,还有的层连位置索引也复用;所有层仍保留自己的 query 与局部窗口。

四种执行路径,其中三种属于 CSA2

论文中的 CSA2 有 Full、Reindex、Reuse 三种模式;加上主干开头的纯 SWA,AISim 需要表示四种路径。模式决定“哪些中间结果要新算”,而不是简单指定一个 attention kernel 名称。

路径Main KV / index KIndex 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 辅助插值时,也必须能计算这四种路径;“整模型已有精确样本”并不证明稀疏区域的插值已经可用。

AISim 基线与类似功能

基线有 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 代理

03 / 更新首期核心

Hierarchical Sparse Indexer:先找区域,再细选位置

Hierarchical Sparse Indexer · 层次化稀疏索引器(描述性名称)

一句话

Decoder 第一次检索仍看全局,后面的 Reindex 层只在一个共享候选池中搜索,把重复全局扫描变成有上限的局部打分。

一次查询,两个集合

Decoder 的首个 Full 层先对所有因果可见的 main KV 位置打分。一方面,它选出本层注意力要用的 Top-512;另一方面,把位置按 8 个一组归为 block,每个 block 取其中最大得分,再选最多 2,048 个 block,得到最多 16,384 个候选位置。

全局可见位置首个 Full 索引完整扫描;不是只随机抽样 16K。
候选池 ≤ 16,3842,048 个 block × 8 位置;每个 query 的池可不同。
深层各自 Top-512Reindex 只在池内重打分;Reuse 继承最近的选择。
16,384 是候选上限,512 是最终 attention 选择上限。短上下文还要受实际可见长度约束。

之后四个 Decoder Reindex 层使用各自的 query,在这个候选池中重新评分,得到各自的 Top-K。因此,候选池共享不等于最终注意力位置完全相同。这种搜索限制在训练和推理中一致引入,属于模型机制的一部分。

到底哪部分不再随上下文增长?

固定候选池后,后续 Reindex 对单个 query 的打分数量有上限。但首个 Full 的全范围扫描仍存在,Encoder 的三个 Full 也仍需处理各自的压缩全局范围。不能把整个模型的索引成本改成常数,也不能把所有 attention 都当作 512 长度的密集计算。

公式节省需要 kernel 真正落实。 易读的参考实现可以先算完整 score 再用 mask 限制候选位置;这种实现保持选择语义,却不一定节省同等的算术量或访存。性能建模应描述所测后端实际执行的工作。

对建模的影响 以下为建模分析与设计建议

SOL

区分全局首扫和候选内重扫。对每个 query 使用实际因果可见长度与候选上限;额外计入 block max、候选选择、gather 和 Top-K 的数据移动。候选 metadata 是工作区,不能混进每层长期 KV 或被完全忽略。

OP

采集全局评分、候选构造、受限评分及选取的实际融合模块;关注 gather 非连续读、短上下文未满池、长上下文首扫和 512 / block 边界。需用执行证据确认算子真的只计算候选位置。

FPM

采样网格覆盖短上下文、16K 附近、长上下文和不同 query 批量。仅用总 attention token 数的线性特征,可能把有界重扫与全局首扫混在一起;离线插值分区和在线回归特征都应尊重这些拐点。

AISim 基线与类似功能

已有稀疏 indexer、Top-K 与模块级计时基础;基线没有 V4.1 的共享候选池、受限 Reindex 以及对应 SOL / 实测数据身份。

依据 论文第 11 页 · 图 5、§2.3.2;论文第 12 页 · 候选池与首扫边界;官方参考推理实现

04 / 更新首期核心

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,两种执行策略

全量路径
100%
有界路径
53.24%
327,680 → 174,464 token×layer;工作量减少 46.76%。
模型:full=40N;bounded=21N+19·min(N,128)。这里只比较层处理 token 的数量,没有按不同层的 FLOPs 加权,也没有包含完整排程。不是实测速度、不是 TTFT 预测;N≤128 时此示意没有缩减。prefix、chunked、mixed 必须按实际阶段另算,不能把整个 batch 的 token 数代入一个 min。

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 按有效覆盖单独标记。没有可执行的开启路径时,明确保留缺口。

AISim 基线与类似功能

基线有阶段调度与 mixed batch,但普通非 attention 工作仍使用通用 token 规模。V4.1 需要共享的执行策略和阶段工作量接口;现有 prefix-cache 机制本身不代表已支持 Decoder 有界优化。

依据 论文第 9 页 · CED prefill 复杂度;论文第 20 页 · §3.2.2;SGLang 裁剪点;SGLang 每请求 extend 尾部逻辑

05 / 更新首期核心

Engram:用条件查表增加记忆容量

Engram 是模块专名;Conditional Memory = 条件记忆;N-gram = 连续 N 个 token 的片段

一句话

从最近的 token 组合确定查表地址,取回少量向量,经上下文门控注入残差流;表很大,每次访问却很稀疏。

从文字到残差流,具体走哪几步?

  1. 构造 N-gram。 对 tokenizer 的词表进行压缩映射,再根据连续 2、3、4 个 token 的组合得到片段。地址依赖真实 token 及其历史,不只依赖张量形状。
  2. 多头哈希查表。 每个 N-gram 阶数使用 8 个 hash head,各查一行。每行 256 维,一个阶数共 2,048 维;每个模块每个 token 总共查 24 行、拼成 6,144 维。
  3. 投影与门控。 查回的向量投影成供 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;不含分片补齐、投影权重与工作区。
单模块逻辑查表 payload24 × 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 上验证插值。

AISim 基线与类似功能

基线的 Embedding、GEMM 和通信模型可复用部分计算,但没有 Engram 模块及内容相关 lookup 模型。完整内存应先覆盖全 HBM 分片;host offload / RDMA 预取作为独立后续策略。

依据 论文第 13 页 · §2.4.2;Engram 层与表大小;Engram 表、scale、投影和门控

06 / 更新首期核心

Single-Pass mHC:改依赖,才真正少走一遍内存

mHC = Manifold-Constrained Hyper-Connections · 流形约束超连接;Single-Pass = 单次遍历

一句话

把本层输入混合改为使用前一块产生的系数,使残差更新、输入混合和下一组系数预测能够合并为单次遍历。

mHC 为什么比普通 residual 更复杂?

普通残差连接可以近似理解为一条隐藏状态流上的加法。mHC 同时维护 n 条残差流;V4.1 中 n=4、隐藏维度 d=5120。一个块需要把多条流混成该块的输入,运行 attention 或 MoE 等子模块,再把输出重新写回多条流。

这些混合系数依赖当前隐藏状态。旧结构中,输入混合系数 Al 需要先跨隐藏维度做归约才能得到,输入混合因此不能立刻与残差更新合并。即使 kernel 融合得更好,也可能还需再次读残差。

论文中的依赖变化;这里只突出输入混合项原 mHC:F_l(A_l · X_l)
Single-Pass mHC:F_l(A_(l−1) · X_l)

V4.1 将输入混合使用的系数向后错开一个块:本块消费上一块已准备好的系数,同时预测下一块所需的系数。这样每个隐藏维度 tile 一旦产生,就能立刻用于输入混合及系数预测,不必等待本块新系数完成后再读一遍。

“流量减半”到底减的是哪一段?

实现口径读写激活元素数 / tokenn=4 时
论文的原始多 kernel mHC,含 input pre-norm(4n + 4)d20d = 102,400 元素
常规 mHC 的两遍 Mega-mHC(3n + 2)d14d = 71,680 元素
Single-Pass Mega-mHC(2n + 2)d10d = 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 内核后,旧表不是同一实现的可交换样本。

AISim 基线与类似功能

基线已有 V4 mHC 的 pre/post 模块、Rust SOL 和测量路径,是最接近的可复用基础。仍需新增 Single-Pass 的系数时序、统一融合契约和对应性能数据。

依据 论文第 12 页 · §2.4.1,式 2–5;论文第 13 页 · 式 6、Mega-mHC;AISim mHC 理论模型

07 / 更新首期核心

混合精度: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 KVE2M1 数据;每 16 通道一个 E4M3 scale;省略 NVFP4 的二级全局 scale。目的是减少存储;attention 前反量化,不能直接套 FP4 GEMM 峰值。
SWA KV保留 FP8。局部窗口对量化更敏感,不能与 main KV 使用同一字节系数。
Indexer Q / KMXFP4;以 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 决定。
EngramFP8 表与 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:

N 个有效 token;单请求、单份逻辑缓存的紧凑估算C(N) = 3·floor(N / 2) + N
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 丢下的部分理解为“完全没有缓存”。

缓存容量示意:长程线性增长,窗口有上限

1–1,048,576 tokens
720.00 MiB共享 main KV
含每 16 通道 scale
170.00 MiB共享 index K
含每 32 通道 scale
2.50 MiB40 层 SWA
仅 FP8 payload

合计示意值 892.50 MiB;全局条目数 2,621,440。

此图是建模推导,不是设备实测峰值。未计 SWA 的具体 scale / 对齐布局、压缩器状态、Top-K / 候选池、allocator page、激活、临时工作区和通信 buffer;也未假定 TP/EP 下完全均分。实际 backend 可复制某些缓存,需单独映射每卡容量。GB 为十进制,MiB/GiB 为二进制。

权重内存、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 的内存伪装成旧格式。

AISim 基线与类似功能

基线已有 BF16/INT8/FP8 KV 与多类低精度 GEMM / MoE 路径,但没有 V4.1 main KV 的独立格式。旧 FP8 block 假设和现有专家数据只能在实际布局与形状匹配时复用。

依据 论文第 14 页 · §2.4.4;论文第 22 页 · 模型尺寸;量化与维度配置;参考存储和投影实现

08 / 更新后置扩展

原生多模态:图像先编码,再压缩成语言输入

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 数不足以插值视觉端到端延迟。

AISim 基线与类似功能

已有通用 ViT、projector 与视觉并行能力,但 V4.1 的具体视觉结构和语言接入仍需适配。固定基线的 FPM 包装显式拒绝带 encoder_ops 的多模态模型;本项按计划后置。

依据 论文第 8 页 · §2.1.1–2.1.2;论文第 18 页 · §3.2 推理系统;论文第 22 页 · 视觉配置;AISim 通用 ViT;FPM 多模态边界

09 / 更新后置扩展

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 曲线和当前系统负载,动态选择每个请求的验证长度。高接受率和低额外验证成本可能支持更长的草拟;负载和批形状变化时,最优长度也可能改变。

5 是草拟位置数,不是稳定加速倍数。 实际每步产出由验证结果、拒绝位置、补偿 token、调度及输出处理决定;还要承担 drafter、target verification、KV 状态维护和调度成本。

吞吐模型需要两个量:一次花多久,一次产出多少

对采用前缀接受的简化推测解码过程,若第 j 个位置的条件接受率为 aj,前 j 个位置全部接受的概率为它们的乘积。可用这些存活概率估计接受的草拟长度,再按具体验证协议处理额外产出的 token。

前缀接受的分析示意;实际 DSpark 应以运行时协议与 telemetry 为准E[accepted_draft] = Σ_(j=1..k) Π_(i=1..j) a_i
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 采样按计划关闭。

AISim 基线与类似功能

基线有 nextn、MTP/EAGLE、接受率和输出 burst 等抽象,但没有 DSpark 的 3 层 / 5 位置结构与基于置信度的负载调度。FPM 基线明确拒绝 nextn>0;本项应独立扩展。

依据 论文第 13 页 · §2.4.3;论文第 14 页 · drafter 与调度;DSpark 配置;AISim 推测解码抽象;FPM nextn 边界

10 / 更新后置扩展

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 则生成两种缓存。

已缓存长前缀global KV 命中;无需把整段当成全新 prefill。
前缀末尾 ≤ 128 token读取已有 global,重建近似 SWA;维护 N-gram 历史。
新后缀继续因果执行,新增 global KV 与 SWA KV。
Encoder 缓存恢复的数据语义。Decoder 是否采用有界初始化是另一个执行选择。

省在哪里,又付出什么?

把 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 还要包含恢复 / 搬运和排队,视测量边界决定是否另加。

AISim 基线与类似功能

基线有 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、激活与权重清单。
MoE384 routed + 1 shared expert;top-6;intermediate=2304专家权重、每专家 token 分布、低精度 grouped GEMM 和通信。
Attention64 query heads;head dim=512;q rank=1280;8 output groups;o rank=1024不同投影形状及 TP 分片,不能只更新层数。
Indexer32 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 的“同一种执行”需要足够精确

建议的身份结构;不是现有 schema 已完成的声明model_revision + config / precision fingerprint
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 等才是分区内的采样坐标;语料身份与冷热点状态则需要明确的代表性验证。

依据 完整官方配置;AISim FPM 专属 SOL 分派

建模落地与验证结构正确、时间正确、部署容量正确

怎样证明“支持了”,而不是仅能运行?

按讨论中的范围,先完成纯文本、自回归、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、执行失败、无效输出、样本缺失等类别。

训练改动如何处理? 报告还涉及 head-wise Muon、Sinkhorn-balanced embedding 更新、训练数据与后训练。它们并不自动变成推理期的新算子:只有改变了导出的图、权重格式、路由行为或实际请求长度分布,才进入相应的 serving 模型。本文聚焦前面 10 项与推理有关的变化。
缩写速查

本文常用英文名

缩写 / 名称全称中文含义
SOLSpeed of Light给定约束下的理论性能下界
OPOperation;本文指 Operation-based Modeling算子拆分与组合建模
FPMForward Pass Metrics完整前向过程的性能指标
CED / CSA2 / SWACausal Encoder-Decoder / Compressed Sparse Attention 2 / Sliding Window Attention因果编解码 / 压缩稀疏注意力第二代 / 滑窗注意力
mHCManifold-Constrained Hyper-Connections流形约束超连接
MoE / MTPMixture of Experts / Multi-Token Prediction混合专家 / 多 token 预测
ViT / MLP / RoPEVision Transformer / Multilayer Perceptron / Rotary Position Embedding视觉 Transformer / 多层感知机 / 旋转位置编码
FP4 / FP8 / KV4-bit / 8-bit Floating Point;Key–Value4/8 位浮点;注意力键值
HBM / RDMAHigh Bandwidth Memory / Remote Direct Memory Access高带宽显存 / 远程直接内存访问
TP / EP / DP / CP / PPTensor / Expert / Data / Context / Pipeline Parallelism张量 / 专家 / 数据 / 上下文 / 流水线并行
TTFT / ITLTime To First Token / Inter-Token Latency首 token 时间 / token 间延迟
Engram / DSpark / SILICON / Hybrid模块专名或模式名称,不强行构造首字母展开条件记忆 / 推测解码模块 / 实测模式 / 混合模式
来源与版本边界事实、实现、推导可分别回溯

参考资料与阅读方法

架构解释以技术报告为主;具体层编号、形状和存储实现用官方配置及参考代码交叉核对。工作量、缓存计算器、AISim 接口建议和验证矩阵是本文的建模推导,不是论文给出的测量结果。页面未复制论文图片,图示均为按事实重新组织的说明图。

  1. 论文第 1 页 · DeepSeek-V4.1 Technical Report固定 Hugging Face revision:fb2764a5cf321eaa5070ca8f9e892818f477c16d。重点:第 7–14 页架构,第 18–20 页推理系统,第 21–22 页配置,第 37 页局限性。页码为 PDF 内页码。文中机制均为中文概述,原图与推导请见原报告。
  2. DeepSeek-V4.1-Flash · 官方 config.json同一 revision;text_config、vision_config、量化布局、owner 与 index source、Engram、DSpark。
  3. DeepSeek-V4.1-Flash · 参考推理实现用于解释具体布局、Engram 流程、索引计算与配置行为;可读参考实现不等同于生产高性能 kernel。
  4. SGLang · V4/V4.1 实现固定 revision:1aa0e962b206102b7c439a4a0c4981cfec6e87bc。用于说明具体 Decoder 裁剪点;不是对未来版本或所有运行配置的承诺。
  5. AISimulate · V4 建模基线 与 FPM 包装接口固定 main revision:b6b0a38618aa59181a6bdc80ae9d6f43082c17c1;支持程度以此为基线,未包含并行开发分支。仓库链接可能需要相应访问权限。
  6. AISimulate · FPM SOL 辅助计算 与 mHC 理论模型用于界定可复用基础及新增操作的 Rust 接入边界。

编写日期:2026-09-10。全部交互在本地运行,无外部脚本、字体或图表依赖。计算器展示明示假设下的推导值,未读取设备数据。