DeepSeek-V3 架构剖析 本节摘要:第 14 节点名了每个开源模型都转的六个架构旋钮。DeepSeek-V3(2024 年 12 月,671B 总参、37B 激活)六个全转再加四个:多头潜在注意力(MLA)、无辅助损失负载均衡、多 token 预测(MTP)、DualPipe 训练。本节从顶到底读 DeepSeek-V3 架构,从发表 config 推导每个参数量。读完你能解释 671B/37B 比为何是对的赌注、为何 MLA+MoE 在前沿合打胜过任一单独。 学习目标 阅读完本节,你应当能够: 从顶到底读 DeepSeek-V3 config,用六个 GPT-2 旋钮加四个 DeepSeek 专有加项解释每字段。 推导总参数量(671B)、激活参数量(37B)、各自贡献组件。
本节摘要:第 14 节点名了每个开源模型都转的六个架构旋钮。DeepSeek-V3(2024 年 12 月,671B 总参、37B 激活)六个全转再加四个:多头潜在注意力(MLA)、无辅助损失负载均衡、多 token 预测(MTP)、DualPipe 训练。本节从顶到底读 DeepSeek-V3 架构,从发表 config 推导每个参数量。读完你能解释 671B/37B 比为何是对的赌注、为何 MLA+MoE 在前沿合打胜过任一单独。
阅读完本节,你应当能够:
DeepSeek-V3 是首个架构与 Llama 家族有实质不同的前沿开源模型。Llama 3 405B 是「GPT-2 转六个旋钮」。DeepSeek-V3 是六个旋钮全转再加四个。读 Llama 3 config 是读 DeepSeek config 的热身,但深层结构——注意力块形状、路由逻辑、训练时目标——差别够大,需独立走读。学它的回报:DeepSeek-V3 的开权重发布重新定义了开源里的「前沿能力」,其架构是许多 2026 训练运行复制的蓝图。理解它是任何触及前沿 LLM 训练或推理岗位的入场券。
DeepSeek-V3 仍是自回归,仍堆解码块,每块仍有注意力加 MLP 加两个 RMSNorm,MLP 仍用 SwiGLU,仍用 RoPE,pre-norm,权重绑定嵌入——与每个 Llama 或 Mistral 同基线。
第 14 节告诉你 GQA 通过跨 Q 头组共享 K、V 缩 KV 缓存。多头潜在注意力(MLA)更进一步:K、V 被压进共享低秩潜在表示(kv_lora_rank),每头飞行中解压。KV 缓存只存潜在——典型每 token 每层 512 浮点,而非 8×128=1024 浮点。
128K 上下文下,DeepSeek-V3 用 MLA(每 token 每层一个共享潜在 c^{KV},K、V 都从该潜在经可吸收进后续 matmul 的上投影导出):
kv_cache = num_layers × kv_lora_rank × max_seq_len × bytes = 61 × 512 × 131072 × 2 = 7.6 GB
假设的 GQA 基线(Llama 3 70B 形状,8 KV 头,头维 128)要付:
kv_cache = 2 × 61 × 8 × 128 × 131072 × 2 = 30.5 GB
MLA 在 128K 比 Llama-3-70B 式 GQA 缓存小 4 倍。权衡:MLA 每注意力计算加一步解压(每头),额外计算相对省的带宽小,长上下文推理净赢。
MoE 路由器决定哪些 top-k 专家处理每 token。朴素路由器把太多工作集中少数专家、其余闲。标准修法:加辅助损失项惩罚负载不均,有用但略降主任务性能。DeepSeek-V3 引入无辅助损失方案:每专家偏置项加到路由器 logits,训练中按简单规则调——专家 e 过载则降 bias_e,欠载则升。无额外损失项,训练干净,专家负载均衡。对主损失影响:无可测;对 MoE 架构:更干净,无辅助损失超参调。
第 18 节你知道 DeepSeek-V3 加 D=1 MTP 模块预测前两位置的 token。推理时,训好的模块改作投机解码草稿,接受率 80%+。训练时每隐藏态被监督 D+1=2 个目标,信号更密。参数:671B 主模型上加 14B,开销 2.1%。
第 19 节你知道 DualPipe 是双向流水线,重叠前后向块与跨节点 all-to-all。DeepSeek-V3 的 2,048 H800 规模下,它回收约 24.5 万 GPU 时——1F1B 本会因流水线气泡损失。
DeepSeek-V3 config(简化):
hidden_size: 7168 intermediate_size: 18432 (密集 MLP 隐藏,前几层用) moe_intermediate_size: 2048 (专家 MLP 隐藏) num_hidden_layers: 61 first_k_dense_layers: 3 (前 3 层用密集 MLP) num_attention_heads: 128 num_key_value_heads: 128 (MLA 下形式等于 num_heads,真压缩在 kv_lora_rank) kv_lora_rank: 512 (MLA 潜在维) num_experts: 256 (每块 MoE 专家数) num_experts_per_tok: 8 (top-8 路由) shared_experts: 1 (每块常开共享专家) max_position_embeddings: 163840 vocab_size: 129280 mtp_module: 1 (深度 1 的 1 个 MTP 模块)
kv_lora_rank=512 潜在再解压,约比全 MHA 省。写个 DeepSeek-V3 专用计算器,从 config 算总参、激活参、KV 缓存。
def deepseek_v3_params(cfg): h, V, L = cfg["hidden_size"], cfg["vocab_size"], cfg["num_hidden_layers"] emb = V * h # 权重绑定嵌入=输出头 # MLA 注意力:下投影到 kv_lora_rank 再上投影 per_block_attn = h * cfg["kv_lora_rank"] * 2 + h * h # 简化 # MoE MLP:每块 256 专家 + 1 共享,前 3 层密集 expert_mlp = h * cfg["moe_intermediate_size"] * 3 # SwiGLU 三矩阵 moe_blocks = L - cfg["first_k_dense_layers"] moe = moe_blocks * (cfg["num_experts"] * expert_mlp + expert_mlp) # 专家+共享 dense = cfg["first_k_dense_layers"] * h * cfg["intermediate_size"] * 3 return emb + L * per_block_attn + moe + dense def deepseek_v3_active(cfg): # 每 token:top-8 专家 + 1 共享 + 注意力 h = cfg["hidden_size"] expert = cfg["num_experts_per_tok"] * h * cfg["moe_intermediate_size"] * 3 shared = h * cfg["moe_intermediate_size"] * 3 attn = h * cfg["kv_lora_rank"] * 2 return (expert + shared + attn + h*h) * cfg["num_hidden_layers"]
跑应得约 671B 总、37B 激活、MLA KV 缓存 128K 约 7.6GB。
DeepSeek-V3 开权重,在 vLLM、SGLang、TensorRT-LLM 里一行加载。MLA、MoE、无辅助损失路由、MTP 都已集成进主流推理引擎。对比 Llama 3 405B:同前沿能力,但 671B/37B 的 MoE 让推理算力远低(每 token 37B vs 405B),代价是更多 VRAM(671B 权重要装)。MLA 的 4 倍 KV 缓存缩减让 128K 上下文推理可行(GQA 下 30.5GB 的缓存在 MLA 下 7.6GB)。DeepSeek 的训练成本(560 万)对比 Llama 3(1 亿)主要来自 MoE 的算力效率加 DualPipe 的吞吐。
本节产出 outputs/prompt-deepseek-v3-analyzer.md——一个提示,接收 DeepSeek-V3 config 或类似 MoE+MLA 模型,逐字段解释、算总参与激活参、KV 缓存、推理算力与显存需求,给出部署(量化、并行、并发)建议。
(Easy) 用计算器验证 DeepSeek-V3 的 671B 总参与 37B 激活,标出每组件(嵌入、注意力、MoE、共享专家、MTP)的贡献。
(Medium) 对比 DeepSeek-V3(MLA)与假设的 GQA 版(同激活参,8 KV 头)在 128K 上下文的 KV 缓存,量化 MLA 的 4 倍缩减。
(Medium) 实现无辅助损失负载均衡模拟:256 专家的路由器加偏置,过载降欠载升,验证专家负载收敛均衡而无辅助损失项。
(Hard) 算 DeepSeek-V3 vs Llama 3 405B 的推理算力比(每 token 激活参)与显存比(总参),解释为何 DeepSeek 训练 560 万 vs Llama 1 亿。
(Hard) 推导 MLA 的解压如何吸收进后续 matmul(使 KV 缓存只存潜在而不损失计算效率),解释这是 MLA 能省 4 倍的关键技巧。
下一节,Jamba 混合架构:状态空间模型(Mamba)与 Transformer 1:7 交织,256K 上下文装单张 80GB GPU。