DeepSeek V3 MoE 模块计算与通信逻辑详解
概述 DeepSeek V3 的 MoE(Mixture of Experts)模块是其核心组成部分,采用 Shared + Routed Expert 架构。本文基于 vLLM 代码库,深入分析其计算流程、通信模式、量化方案以及性能优化策略。 ...
概述 DeepSeek V3 的 MoE(Mixture of Experts)模块是其核心组成部分,采用 Shared + Routed Expert 架构。本文基于 vLLM 代码库,深入分析其计算流程、通信模式、量化方案以及性能优化策略。 ...
引言 大语言模型(LLM)推理时,KV Cache 是显存消耗的主要来源之一。以 LLaMA-70B 为例,在 4096 上下文长度下,KV Cache 占用超过 40 GB 显存。传统的 FP16 KV Cache 每个 token 需要 2 × head_dim × num_heads × 2 bytes = 大量显存。如果能将 KV Cache 压缩到 3-4 bit,就可以将显存占用降低到原来的 1/4 到 1/5,从而支持更长的上下文、更大的 batch size,或在更少的 GPU 上运行同一模型。 TurboQuant(Zandieh et al., ICLR 2026)正是为此而生——它是 vLLM 中实现的一种极低比特 KV Cache 量化方法,通过 Hadamard 旋转 + Lloyd-Max 最优标量量化 + Norm Correction 的组合,将 KV Cache 压缩至 3-4 bit,最高实现 4.9× 压缩比。 为什么需要 TurboQuant? 在 TurboQuant 之前,vLLM 已经支持了 FP8 KV Cache(2× 压缩,几乎无损)。但 2× 压缩在某些场景下仍然不够: ...
本文档聚焦于 vLLM 中与 NVIDIA GPU 兼容的通用量化方法,排除了框架特定方案(GGUF、Compressed-Tensors、Quark、Hummingbird)和硬件厂商专有方案(ModelOpt、INC、NVFP4)。涵盖:数学原理、量化/反量化公式、位宽与分组结构、核心算法步骤、Kernel 级实现细节及硬件要求。 目录 FP8 W8A8(动态/静态量化) AWQ(激活感知权重量化) GPTQ / Marlin AWQ Marlin BitsAndBytes(NF4 / QLoRA) MXFP4(OCP MX 规范) Online Quantization(在线量化) TurboQuant FP8 / INT8 KV Cache 对比总结 1. FP8 W8A8(动态/静态量化) 论文 FP8 格式标准: FP8 Formats for Deep Learning (Micikevicius et al., 2022, arXiv:2209.05433) vLLM 实现: 主要面向 H100/H200 GPU,利用 torch._scaled_mm 调用 Tensor Core。 概述 FP8 W8A8 将权重和激活均量化为 FP8 格式。支持两种调度模式: 静态量化:校准集上预计算 scale,推理时固定。 动态量化:推理时实时统计最大值计算 scale。 量化公式 FP8 有两种指数位宽子格式: 格式 符号位 指数位 尾数位 最大值 最小值 E4M3 1 4 3 448 1/16 E5M2 1 5 2 57344 1/64 量化核心操作: ...