序言
在过去几天的本系列文章中,我们深入探讨了DeepSeek的蒸馏技术、量化策略以及7B、32B和671B量化模型的部署要点和性能评估。这帮助读者在不同的资源限制下选择合适的模型部署解决方案。
深度理解DeepSeek与企业实践(第1部分):蒸馏、部署和评估
深度理解DeepSeek与企业实践(第2部分):32B多GPU推理的原理、硬件冷却和性能测试
深度理解DeepSeek与企业实践(第3部分):671B超低成本部署方法和性能评估
随着企业对AI应用的探索不断深入,DeepSeek系列的671B全功率模型凭借其对超复杂任务的卓越推理能力,已成为提升竞争力的关键资产。然而,其庞大的参数规模意味着单GPU或单机部署无法充分发挥其潜力。多机、多GPU部署结合ZStack AIOS平台是解锁其能力的关键。本文将详细介绍在AIOS平台上使用多机和GPU部署671B全功率模型的实践过程,分析其性能,并为企业采用AI技术提供强有力的支持和指导。
1. DeepSeek模型推理性能的理论分析
对于当今的大型模型,GPU操作过程可以简化为以下步骤:
将输入文本(例如,汉字或单词)转换为模型可以理解的数字(向量和位置编码)。
根据模型参数执行计算。例如,使用Qwen2.5-72B,这涉及到将145GB的数据加载到计算单元中。
生成响应,基本上是产生候选词及其概率分布。
在这个过程中,两个GPU硬件参数最为关键:
矩阵乘法性能,通常称为GPU TFlops。
GPU内存带宽,因为模型参数必须从内存中读取。这取决于使用的是GDDR还是HBM内存。
对于现代GPU,后者的“瓶颈效应”往往超过前者。以下是一些常见GPU的计算能力和内存带宽的比较:
以RTX 4090为例:使用FP8,它可以每秒处理82TB的数据,但其内存带宽只允许每秒加载1TB。因此,在大型模型推理中,当并发性较低时,内存带宽通常是瓶颈。只有当并发性足够高时,瓶颈才从“内存”转移到“计算能力”。这解释了为什么许多671B模型测试显示,随着并发性的增加,吞吐量增加。
671B模型的理论性能估算
对于DeepSeek V3和R1,总参数计数为671B。得益于MoE(专家混合)架构,仅在运行时激活37B参数。使用FP8表示(每个参数1字节),每个token读取的数据为:
37B × 1字节 = 37 GB
注意:对于FP16表示,这翻倍到74 GB/Token。
假设GPU内存带宽约为1979 GB/s,在单GPU上不进行并行分割,每个字节的计算时间为:
这对应于大约53.5个token/s的吞吐量。
注意:这个计算代表在“极端”条件下的理论下限。在实践中,像计算重叠、缓存命中、KV-cache读取(随着序列长度的增加而增长)以及各种优化技术或显示条件可能会改变结果。
虽然这个估计很粗略,并且没有考虑到张量并行优化(每个GPU加载较少的激活参数),但张量并行的通信和同步开销,以及减少的内存带宽利用率,与我们实际的DeepSeek单用户推理测试非常接近。没有积极的优化,单用户推理性能很少超过53.5个token/s。
2. DeepSeek模型推理性能的优化策略
对于大型模型推理,优化策略分为三类:
数据级优化:例如,压缩提示或减少不必要的token。然而,我们目前的瓶颈不在提示解码中,我们的目标是TPS(每秒token数)而不是QPS(每秒查询数),所以现在这不是优先事项。
模型级优化:DeepSeek实现了MLA、MoE和FP8训练。以下是简要概述:
MLA架构:与传统MHA相比,MLA在显著降低KV-cache大小的同时保持强大的表达能力,降低了内存带宽和VRAM需求。
b. MoE架构:通过将密集模型分割成多个专业专家,并仅激活一个子集(DeepSeek-V3使用8个路由专家+1个共享专家),每个token只需要37B权重而不是671B,大大减少了计算和内存访问成本。
c. 低精度FP8训练和量化:使用FP8权重将读写数据量减半,而量化KV-cache(例如,DeepSeek-V2将其压缩到平均6位)在不牺牲精度的情况下显著减少内存使用。
系统级优化:包括增加并行性、推测性解码和计算增强。虽然大多数是通用的,但MTP用于推测性解码是DeepSeek特定的优化:
MTP模块:主要用于训练以提高预测,在推理中通过推测
返回列表