前置知识: 大语言模型

DeepSeek-V3架构详解

3 minAdvanced

深入分析 DeepSeek-V3 的架构创新,包括 MLA、DeepSeekMoE、MTP 和 DualPipe

DeepSeek-V3架构详解

DeepSeek-V3 是 2024 年最具创新性的开源 LLM。它引入了 MLA(多头潜在注意力)、改进的 MoE、多 Token 预测和 DualPipe 并行——每一项都是对标准 Transformer 的重大改进。

类型: 概念 前置条件: Phase 10 Lesson 14(开源模型架构详解) 预计时间: ~45 分钟

学习目标

  • 理解 DeepSeek-V3 的整体架构设计
  • 掌握 MLA(多头潜在注意力)的原理
  • 理解 DeepSeekMoE 的辅助损失无关负载均衡
  • 分析 V3 的训练效率和性能

架构概览

特性DeepSeek-V3
参数量671B(总),37B(每 token 激活)
层数61
隐藏维度7168
注意力头128
MoE 专家数256
激活专家数8
训练数据14.8T token
训练成本~$5.6M(2048 H800 GPU)

MLA(多头潜在注意力)

MLA 通过低秩压缩 KV Cache,大幅减少推理时的内存占用:

class MultiHeadLatentAttention(nn.Module):
    """简化的 MLA"""

    def __init__(self, d_model, n_heads, kv_lora_rank=512):
        super().__init__()
        self.n_heads = n_heads
        self.d_head = d_model // n_heads
        self.kv_lora_rank = kv_lora_rank

        # Q 投影
        self.q_proj = nn.Linear(d_model, d_model, bias=False)

        # KV 压缩投影(关键创新)
        self.kv_compress = nn.Linear(d_model, kv_lora_rank, bias=False)
        self.k_decompress = nn.Linear(kv_lora_rank, d_model, bias=False)
        self.v_decompress = nn.Linear(kv_lora_rank, d_model, bias=False)

        self.out_proj = nn.Linear(d_model, d_model, bias=False)

    def forward(self, x, kv_cache=None):
        B, T, C = x.shape

        # Q 正常投影
        q = self.q_proj(x).view(B, T, self.n_heads, self.d_head).transpose(1, 2)

        # KV 压缩到低秩空间
        kv_latent = self.kv_compress(x)  # [B, T, kv_lora_rank]

        # 更新 KV Cache(只缓存压缩后的 latent,而非完整 KV)
        if kv_cache is not None:
            kv_latent = torch.cat([kv_cache, kv_latent], dim=1)

        # 从 latent 解压缩 K 和 V
        k = self.k_decompress(kv_latent).view(B, -1, self.n_heads, self.d_head).transpose(1, 2)
        v = self.v_decompress(kv_latent).view(B, -1, self.n_heads, self.d_head).transpose(1, 2)

        # 标准注意力计算
        attn = torch.softmax(q @ k.transpose(-2, -1) / (self.d_head ** 0.5), dim=-1)
        out = attn @ v
        out = out.transpose(1, 2).contiguous().view(B, T, C)
        return self.out_proj(out), kv_latent

MLA 的 KV Cache 大小仅为标准 MHA 的约 1/7(512 维 vs 7168 维)。

DeepSeekMoE

DeepSeekMoE 使用辅助损失无关的负载均衡策略:

  • 256 个路由专家 + 1 个共享专家
  • 每个 token 激活 8 个路由专家 + 1 个共享专家
  • 无辅助损失:通过偏置项调整实现负载均衡

关键术语

术语通俗说法实际含义
MLA”压缩注意力”Multi-head Latent Attention,通过低秩压缩 KV Cache
辅助损失无关”不需要额外损失”不依赖辅助损失函数实现 MoE 负载均衡
共享专家”公共知识”所有 token 都经过的专家,捕获通用知识

延伸阅读