DeepSeek V4.1-Flash 性能机会点 ×7 基线 vllm-ascend a71b766ce(2026-09-23)· 模型 2026-09-10 发布
本文回答两个问题:
| 项 | 值 / 机制 |
|---|---|
| 总参数 / 激活 | 552B MoE(1 共享 + 384 路由专家、激活 6);每 token 激活 prefill 8B / decode 16B |
| 层结构(CED) | 40 层 = 20 层因果编码器 + 20 层解码器;解码器全局 KV 由编码器末端隐状态投影而来 |
| 注意力(CSA2) | 每层静态分配 Full / Reindex / Reuse 三模式;跨层共享主 KV 与索引 K、复用 Top-K 索引;解码器端分层稀疏索引器让深层索引成本与上下文长度解耦 |
| KV 缓存 | FP4(E2M1,每 16 通道一个 E4M3 scale)主 KV;全局 KV 890 B/token(≈V4-Flash 的 1/4);持久 KV ≈ V4-Flash 的 1/8 |
| 上下文 | 训练 64K 稀疏注意力,外推 1M |
| 条件记忆 / 投机 | Engram(196B 稀疏查表);DSpark 半自回归草稿 + 置信度调度验证 |
| 昇腾部署形态 | A3 双机 16 卡 DP4×TP8+EP、--block-size 128、W8A8 ModelSlim(教程) |
| 模型说 | 昇腾做(a71b766ce) | 差距 |
|---|---|---|
| 解码器全局 KV 由编码器末端投影,压缩比 1/2 | compressor.py:14 投影:ratio-2 走 Triton 环形池化(:53)+ 32 行状态环(cache_config.py:22);四槽页打包见 cache_config.py:47 | ratio-1 还是 wkv+RMSNorm 两个小算子 → P1 |
| 编码器 20 层只在 prefill 参与 | model.py:494 build_layer_plan 静态拓扑:源层/消费者/候选源启动时定死 | 未映射到 PD 分离部署 → P7 |
| 压缩状态逐源层维护 | 32 行 FP32 状态环(CircularBufferSpec)+ dsa_v41.py:378 仅源层写压缩缓存 | 已对齐 ✅ |
def forward(self, x):
"""Project an uncompressed source; ratio-2 uses ``pool_projected``."""
return self.norm(self.wkv(x)) # ⚡ratio-1:Linear + RMSNorm 两个小算子串行(见机会点 P1)
| 模型说 | 昇腾做(a71b766ce) | 差距 |
|---|---|---|
| Full / Reindex / Reuse 三静态模式 | model.py:494 拓扑字段:is_candidate_source / uses_candidate_filter / 共享 topk_indices(SharedAttentionState model.py:476,定址稳定适配 ACL Graph) | 已对齐 ✅ |
| 分层稀疏索引器(候选池逐层收窄) | QLI V3 算子(QLI = Quantized Lightning Indexer,量化闪电索引器):npu_quant_lightning_indexer_v3(indexer.py:210)候选三模式一个算子 | 已对齐 ✅ |
| FP4 主 KV(E2M1,每 16 通道一个 E4M3 scale) | SparseFlashMla 只编 BF16 的 TND/PA_BBND 调用(TND/PA_BBND = 查询按 token×头、键按分页块×头存放的两种张量布局) | 未兑现 → P2(最大单项) |
| 单头 CSA 内核特化 | A2/A3 编 6 键含单头 CSA 特化;A5 编 12 键仅 split-G 寻址 | A5 缺口 → P3 |
| 通道 | 本需求用到的算子 / 内核 | 位置 |
|---|---|---|
torch.ops._C_ascend(自研 AscendC) | npu_sparse_flash_mla(SWA 滑窗 + 压缩全局 CSA 双阶段,带 sinks 与 mask mode)npu_quant_lightning_indexer_v3(INT8 索引 + 候选三模式)inplace_partial_rotary_mul(interleave 部分旋转,输入/输出两处原地) | dsa_v41.py:477 _forward_attentionmodels/deepseek_v41/indexer.py:210 dsa_v41.py:270 _project_kv / :547(forward 内) |
| triton-ascend | compressor_from_projected(ratio-2 环形池化)prepare_indexer_indices / quantize_indexer_queryEngram INT8 gather-dequant(设备/主机 UVA 两份 kernel) | compressor.py:54 indexer.py:16-17 models/deepseek_v41/engram/npu.py:64 / :235 |
| 主机侧扩展 (ctypes / UVA) | HostUvaBuffer(UVA = Unified Virtual Addressing,主机钉住内存可被设备直接寻址)+ 主机库 ctypes.CDLL;SharedUvaBuffer 跨 DP 副本共享(#17134) | engram/npu.py:156 / :173 / :325 |
| P# | 打在哪 | 一句话 | 现状 | 优先级 |
|---|---|---|---|---|
| P1 | prefill KV 生成 | 融合 Compressor 模板扩展覆盖 V4.1 压缩比 1/2 | V4.1 还在小算子(文档明说) | ★★★ |
| P2 | KV 存取带宽/容量 | SparseFlashMla 增加压缩侧 FP4 cmp_kv 模板 | 只编 BF16;模型原生 FP4 | ★★★ |
| P7 | 部署形态 | 编码器锁 P 节点 + layerwise KV 传输压缩 KV | PD 能力已就绪,V4.1 未映射 | ★★(专项) |
| P6 | decode 流水 | indexer/SWA 写入编入双流事件链 | 双流框架已有,覆盖面可扩 | ★★ |
| P4 | decode 访存 | Engram 查表挪辅助流 + lookback 预取 | 同步 UVA gather | ★(需 profile) |
| P5 | decode 投机 | 元数据缓存移植 + draft/target 候选共享 | DSA 路径已验证同款手法 | ★(需 profile) |
| P3 | A5 内核模板 | 补单头 CSA 特化或实测证伪缺口 | 该特化 A2/A3-only | ★(低风险) |
现状:ratio-1 就是 wkv + RMSNorm 两个小算子(第二节代码),ratio-2 靠 Triton 环形池化;而 V4 已有按架构选键的融合 Compressor 模板(四键/架构,coff 覆盖压缩比 128/4)。
建议:把融合模板的 coff 扩展覆盖压缩比 1/2(至少先融合 ratio-1 的投影+归一化);评估把 ratio-2 的 Triton 环形池化下沉为 AscendC。
收益方向:CED 的"编码器→解码器 KV 投影"是本代模型的独有热点路径;prefill 每个源层减少 kernel 启动与中间张量,40 层规模化后收益放大。
参考:仓库开发者指南 deepseek_v41_qli_candidate.md("V4.1 currently uses small operators for compression")· 链接
现状:模型卡明确全局 KV 为 FP4 890 B/token,但 SparseFlashMla 只编 BF16——FP4 的容量/带宽红利一分未得;QLI 的 A5 模板已注册 MXFP4 dtype,说明 FP4 数据通路在 A5 上存在。
建议:给 npu_sparse_flash_mla 增加压缩侧 FP4 cmp_kv 模板 + cache dtype 配置链(kv_cache_dtype → 四槽页容量重算 → prefix cache 兼容性验证);A2/A3/A5 对 FP4 的硬件支持面先摸底。
收益方向:压缩 KV 体积 ≈×4 下降 → 同卡容纳更长上下文/更多并发;decode 全局注意力读 KV 的 HBM 带宽大幅下降。1M 上下文场景最大单项。
参考:仓库开发者指南编译矩阵节 · 链接
现状:编码器 20 层只在 prefill 参与,解码器 KV 由末端一次投影——编码器算力天然可锁在 P 节点;仓库 PD 分离与 KV 传输能力已就绪(#16755 / #16910 / #17183 / #16498)。
建议:验证 V4.1 在 PD 分离下的组件归属——编码器+压缩源层驻 P,解码器+Engram+DSpark 驻 D;用 layerwise KV pool 传压缩后 KV(890 B/token,传输量比全量 MLA 小一个量级)。
收益方向:D 节点显存与 KV 压力大降 → decode 批容量上升;P/D 间迁移带宽成本极低。CED 给昇腾部署的独特红利。
现状:multistream_preprocess(dsa_v41.py:310,docstring 即"Overlap Q Vector work with KV Cube work")已覆盖 Q 投影与 KV 写入;同期 #16977 在 DCP 路径验证了 decode 流优化手法。
建议:把 QLI 索引选择(向量型)与 SWA scatter 写入编入同一事件链;对照 #16977 把 V-up 类投影下沉到 Cube 流。
收益方向:decode 每层 Vector/Cube 交替空隙收窄;对 1M 上下文 decode(CSA 读大 KV 占比高)尤其有效。
参考:#16977
现状:prepare_engram(model.py:1049)在层循环前集中查表;主机卸载路径 HostUvaBuffer + gather_dequantize_host_uva(engram/npu.py:173/:275)是同步调用;#17134 已做跨 DP 头分片共享。
建议:查表-反量化挪入辅助流(仓库已有双流框架 multistream_preprocess 可参照);对 lookback 窗口做逐步预取。
收益方向:decode 步内隐藏 host 内存访问延迟——Engram 196B 参数无法全驻 HBM,访存必经互连。
参考:#17134
现状:草稿侧独立维护 SWA KV(dspark.py:212/:275);同期主线已在 DSA 路径验证两类元数据优化(#17153 组不变元数据缓存、#15949 SAS 元数据优先),均未覆盖 V4.1 的 MetadataBuilder(dsa_v41.py:571/:718)。
建议:两个已验证手法移植到 V4.1 builder;评估 draft 与 target 共享候选索引/topk 缓冲(SharedAttentionState 已保证定址稳定)。
收益方向:每步元数据构建 CPU 开销下降;投机解码净收益(接受长度 × 步成本)上升。
现状:开发者指南编译矩阵——"single-head CSA specialization is A2/A3-only and split-G/vectorized addressing is A5-only"(A2/A3 编 6 键、A5 编 12 键)。
建议:A5 模板矩阵验证/补齐单头 CSA 特化;若 split-G 实测无损,显式记录结论避免隐性缺口。
收益方向:950DT/A5 服务器上 CSA 层(解码器多数层)注意力延迟;与 P2 同属低风险模板类改动。
参考:仓库开发者指南编译矩阵节 · 链接
对照图4 的地图念一遍:P1 / P2 兑现模型设计红利(压缩融合 + FP4 KV,收益最大);P3 / P6 补齐模板与流水(低风险增量); P4 / P5 需要 profile 数据确认瓶颈占比后再动手;P7 是部署形态级专项,值得单独立项验证。 两页读完的完整链条:需求怎么来的(前篇)→ 代码怎么落的(前篇)→ 红利兑现了多少、下一步做什么(本篇)。