如何评价 deepseek 上线的 deepseek-V3 模型?
DeepSeekV3 这篇技术报告干货满满,先提两点非常值得讨论的:
- DeepSeekV3 是第一个公开宣布用 FP8 混合精度训练的大模型,之前的 LLaMa3、Qwen2.5、Yi 等都是基于 BF16 混合精度训练。 H100/H800 上 FP8 训练有 40% 以上的加速,但会有训练不稳定、精度损失的问题,NV 23年开始疯狂推 FP8 训练,但一直不太成功,前期几个厂尝试都有各种问题, DeepSeek 搞定这个真的牛。
- DeepSeekV3 可以说是把 MoE 分布式推理做到了极致。之前模型基本上都是在单机 8 卡范畴内做推理(包括 DeepSeekV2、LLaMa3-405B),而 DeepSeekV3 的分布式推理,Decoding 阶段居然用了 40 台 320 卡部署一个实例,每张卡只放一个 expert。 DeepSeekV3 证明了超大 MoE、超稀疏 MoE 的推理,分布式卡越多 Decode Speed 越快。
看比较少人讨论 DeepSeekV3 的推理架构,这里简单分析一下:
DeepSeekV3 (671B 激活 37B)相比于 DeepSeekV2 (236B 激活 21B),模型增大了三倍,理论计算量增大了 1.5 倍,但吐字速度不降反增,从 V2 的 17 - 20 tokens/s 增加到了 V3 的 60 tokens/s,核心就是用了 MTP + PD 分离 + Decoding 阶段 320 卡分布式推理。
MTP:一次预测两个 token,类似投机采样 (speculative decoding)的推理方式,可以大幅减少 Decode 部分的访存压力,在准确率超过 85% 时有 1.8 倍的 Decode Speed 加速。
大概半年前有次交流就提到了 MTP 的设想,不过当时觉得要真正落地还挺挑战的,没想到他们这么快就搞定了,真的很牛。
PD 分离: 这个从今年年中开始,各家都陆续上了 PD 分离方案 (如 MoonCake)。 Prefilling 阶段是计算密集型,少量 Query 就可以打满 GPU,大量 Query 反而会增加首 token 延迟; Decoding 阶段是访存密集型,必须依赖大量 Query 提高 GPU 计算利用率。 因此可以通过多台机器处理 Prefilling 、单台机器处理 Decoding 的 PD 分离方案,实现综合效率最大化、 首 token 延迟(TTFT)最低、 Decode Speed (TPS)最高。 DeepSeekV2 也上了 PD 分离方案。
320 卡超大规模的分布式推理:
单纯使用 PD 分离 和 MTP,还是缓解不了 DeepSeekV3 671GB(FP8)的巨大访存压力。 我们先分析 DeepSeekV2 的 17 - 20 tokens/s 的 TPS:
DeepSeekV2 FP8 weight 显存 236GB,单机 H800 TP8 推理,每卡需要 30GB 存储权重(如果是 EP8 ,每卡需要 40GB+),H800 的理论访存带宽上限是 3.35TB/s,而实际能达到 2 TB/s 就非常高了,此时的 Decode 速度(低并发,只处理单个 query)最多: 60+ tokens/s 。 但考虑到 TP8 通信比 EP8 通信量高很多、高并发时的计算时间占比 等因素,DeepSeekV2 官方的 Decode Speed 只有不到 20 tokens/s 了。
而到了 DeepSeekV3,访存需求增加、计算量增加, 但是 Decode Speed 还能加速三倍到 60 tokens/s,一个重要的优化就是 320 卡的分布式 Decoding。 原先 DeepSeekV2 单机,EP8 每个卡上有 20 个 expert; 而现在 DeepSeekV3,EP320 每个卡上只有 1 个 expert; TP4 每个卡上包含 1/4 的 attention weight,预计每卡的 weight 存储最多 5GB,比 V2 少了数倍,访存压力大幅下降,分布式推理再通过 EP 的 all2all 通信 overlap 来尽可能降低通信开销,实现推理加速。
推理成本:
不过这里再多说一句, Decoding 部分一个实例就消耗了 320 张 H800,Prefilling 部分一个实例是 32 卡,但一个 Prefilling 肯定供不过来 一个 Decoding,估计配套的 Prefilling 需要 10 个起步,这样一个完整的 DeepSeekV3 部署单元就消耗了 640 张 H800 ,部署门槛非常高。
当然实际上 2 台 H800 就能跑起来一个 FP8 的 DeepSeekV3 推理了,不用 PD 分离,只是 Decode Speed 和 成本 都会有一定影响。
另外, 320 卡的 Decoding EP320,想要用满所有卡也依赖超高并发,之前 DeepSeekV2 单机 H800 需要 1000 - 2000 并发才能打满一台机器,现在 DeepSeekV3 一个部署单元估计得 10w 以上的超高并发才能打满整个集群,因此目前的输出价格 8 元/M tokens 也依赖大量用户的规模效应才能降本。