首页 鸿研 需求 视频 产品 专栏 招聘 活动 社区 APP下载 登录/注册
部署DeepSeek 你的显卡够用吗?
材料人测试客服小陈     2025-02-11 微信扫码分享  
本文将为大家提供不同硬件条件下可以部署哪种DeepSeek版本

开源的DeepSeek-R1系列包含不同模型,即DeepSeek-R1-671B,和基于蒸馏技术的衍生版本,从1.5B-70B,目前了解到的有:

微信图片_20250211123309.png 

这里的B是指Billion,也就是根据模型的参数量大小分出来的版本。带有“Distill”标签,表示它们是蒸馏模型。蒸馏模型通过将一个大型、复杂的模型(称为“教师模型”)的知识传递给一个较小、较轻量的模型(称为“学生模型”),以便在保持模型性能的同时,降低计算和存储资源的消耗。


模型的不同,自然对硬件的要求不同,以下是 DeepSeek 各版本模型在不同精度下存需求对照表:


参数量

适用场景

FP32

FP16

INT8

INT4

1.5B

简单任务

6GB

3GB

1.5GB

0.75GB

7B

常见任务

28GB

14GB

7GB

3.5GB

14B

复杂任务

56GB

28GB

14GB

7GB

32B

高精度的任务

128GB

64GB

32GB

16GB

70B

大规模计算、高精度任务

280GB

140GB

70GB

35GB

 

简单来说,FP16(半精度浮点数)显存需求约为参数量的 2 倍、FP32(单精度浮点数)显存需求约为参数量的 4 倍。后面带INT的是量化版本,它是通过压缩模型计算精度来降低硬件需求的技术。INT8 量化是将模型权重和激活值量化为 8 位整数,显存需求约为 FP32 的 1/4;INT4 量化是将模型权重和激活值量化为 4 位整数,显存需求约为 FP32 的 1/8。


如果仅看INT4量化版对显存的要求,两张3090即可满足。不过这显然不是科研领域深度学习所能接受的。下面我们以7B模型为例,简单计算下在深度学习训练和推理过程中各自FP16\FP32精度下的显存需求。


1. 训练阶段
训练阶段的显存需求主要包括:
模型参数:存储模型权重。
优化器状态:存储动量、梯度等优化器相关数据。
激活值:前向传播和反向传播中计算的中间结果。
梯度:反向传播计算的梯度。
FP16 训练
模型参数:70 亿参数 × 2 字节 = 14 GB。
优化器状态:通常需要 2 倍于模型参数的显存(例如 Adam 优化器),即14 GB × 2 = 28 GB。
激活值和梯度:取决于批量大小(batch size)和序列长度,通常与模型参数显存相当或更大。假设激活值和梯度需要 14 GB。
总显存需求:14 GB(参数) + 28 GB(优化器) + 14 GB(激活值和梯度) ≈ 56 GB。
FP32 训练
模型参数:70 亿参数 × 4 字节 = 28 GB。
优化器状态:通常需要 2 倍于模型参数的显存。28 GB × 2 = 56 GB。
激活值和梯度:假设需要 28 GB。
总显存需求:28 GB(参数) + 56 GB(优化器) + 28 GB(激活值和梯度) ≈ 112 GB。

2. 推理阶段
推理阶段的显存需求主要包括:
模型参数:存储模型权重。
激活值:前向传播中计算的中间结果。
FP16 推理
模型参数:70 亿参数 × 2 字节 = 14 GB。
激活值:通常远小于训练阶段,假设需要 2-4 GB。
总显存需求:14 GB(参数) + 4 GB(激活值) ≈ 18 GB。
FP32 推理
模型参数:70 亿参数 × 4 字节 = 28 GB。
激活值:假设需要 4-8 GB。
总显存需求:28 GB(参数) + 8 GB(激活值) ≈ 36 GB。

所以即使在FP16精度下,7B模型在训练阶段对显卡的要求也非常高。而在实际的深度学习过程中通常采用的是 混合精度训练,可以兼顾 FP16的速度和 FP32 的精度。例如权重和梯度上使用 FP16 进行计算和存储,梯度更新等关键操作使用 FP32 进行高精度计算,Loss Scaling通过缩放损失值来避免 FP16 的数值下溢问题。混合精度训练对显存的要求介于FP32与FP16之间。

接着我们计算了各参数量在不同学习阶段的显存需求。

参数量学习阶段精度模式显存需求
7B训练FP1656GB
训练FP32112GB
推理FP1618GB
推理FP3236GB
14B训练FP16+FP32274 GB
推理FP1632-36 GB
32B训练FP16+FP32592 GB
推理FP16104 GB
70B训练FP16+FP321270 GB
推理FP16220 GB

 

以下是我们就高校课题组中深度学习比较常见的服务器:10万以内的单卡A6000、10万级别的4卡4090、20万级别的8卡4090、150万级别的8卡A100(40G),以及200万以上的8卡A100(80G),分别部署7B、14B、32B、70B模型,对应DeepSeek给出的解决方案。

先给出一个总表看看结果:

配置

阶段

可行性

性能预测

单卡A6000部署7B

训练

可行

中等速度,需调优

推理

流畅

低延迟,高吞吐

4卡4090部署7B

训练

可行

中等速度,需调优

推理

流畅

低延迟,高吞吐

8卡4090部署14B

训练

可行

中等速度,需精细调优

推理

流畅

低延迟,高吞吐

8卡A100(40G)部署32B

训练

可行

中等速度,需精细调优

推理

流畅

低延迟,高吞吐

8卡A100(80G)部署70B

训练

可行

高性能,需精细调优

推理

流畅

低延迟,高吞吐

 

简要的部署方案参考下文,详细的部署方案可以联系客服索取,或直接问DeepSeek。

 

单卡A6000部署7B模型

1:训练阶段

FP16 混合精度训练理论显存需求122 GB(远超单卡 48GB 显存)。故需要采用优化方案。

解决方案:显存优化技术

1.1DeepSpeed ZeRO Stage 2 或 3

ZeRO Stage 2:将梯度和优化器状态分片到单卡,显存占用降至约 14 + 42 + 10 = 66 GB(仍超过 48GB)。

ZeRO Stage 3:将模型参数、梯度和优化器状态分片到单卡,显存占用降至约 14 + 21 + 10 = 45 GB(接近单卡 48GB 显存上限)。

1.2.梯度检查点(Gradient Checkpointing)

通过牺牲 20-30% 计算时间,将激活值显存减少 60-70%(如从 10 GB 降至 3 GB)。

1.3.混合精度训练(FP16+FP32)

使用 FP16 存储参数和梯度,FP32 保存优化器状态,结合 Loss Scaling 避免数值下溢。

1.4.降低批次大小

将批次大小(batch size)设为 1,减少激活值显存占用。

推荐训练配置

优化技术:

ZeRO Stage 3 + 梯度检查点:显存需求降至约 14 + 21 + 3 = 38 GB(单卡 48GB 可支持)。

混合精度训练:启用 FP16 加速计算。

批量大小:设为 1,避免显存溢出。

框架:使用 DeepSpeed 实现显存优化。

2.推理阶段

2.1单卡推理

直接在一张 A6000 上运行 FP16 或 INT8 量化模型。

2.2量化技术

使用 INT8 量化(TensorRT 或 PyTorch 量化工具),显存需求减半,性能提升。

2.3动态批处理(Dynamic Batching)

合并多个请求提高吞吐量,减少单次推理成本。

推荐推理配置

框架:HuggingFace Transformers + TensorRT(支持 INT8 量化)

量化:应用 INT8 量化(需硬件支持),进一步降低显存和延迟。

硬件加速:启用 A6000 的 Tensor Cores 和 CUDA Graph 优化。


4卡4090服务器部署7B模型

1:训练阶段

由于单卡RTX 4090仅有24GB显存,离FP16要求的56GB有一定距离,需通过以下技术实现多卡协同训练:

1.1混合精度训练(FP16+FP32)
使用FP16存储参数和梯度,FP32保存优化器状态(如Adam)。结合Loss Scaling避免梯度下溢,显存需求可降低至约40-50 GB。

1.2模型并行(Model Parallelism)
将模型拆分到4张GPU上,每卡加载部分参数(如每卡约1.75B参数)。需依赖框架支持(如PyTorch的torch.distributed或Megatron-LM)。

1.3数据并行(Data Parallelism)
单卡无法容纳完整模型时,数据并行不适用,需与模型并行结合(如流水线并行)。

1.4 DeepSpeed ZeRO优化
使用ZeRO Stage 2或3,将优化器状态、梯度、参数分散到多卡。显存占用可降至单卡约10-15 GB,4卡总显存足够支持。

推荐配置
框架:PyTorch + DeepSpeed。
并行策略:ZeRO Stage 3 + 模型并行。
批量大小:需调小批次(如每卡batch_size=2),避免激活值显存溢出。

2. 推理阶段

单卡满足推理需求,可以直接在一张RTX 4090上运行FP16。

推荐配置

框架:使用HuggingFace Transformers + TensorRT。

 

8卡4090服务器部署14B模型

1:训练阶段

在混合精度训练情况下,14B模型要求的显存(约250GB)远高于单卡4090,也高于8 卡总显存,需通过以下技术降低显存占用:

1.1 DeepSpeed ZeRO 优化

ZeRO Stage 3:将模型参数、梯度和优化器状态分片到多卡,显存占用降至单卡约 254 GB / 8 ≈ 32 GB(仍超过单卡 24GB)。

ZeRO-Offload:将部分优化器状态卸载到 CPU 内存,进一步降低显存需求。

1.2 模型并行(Model Parallelism)

将模型层拆分到多卡(如 2 卡张量并行 + 4 卡流水线并行),显存需求按分片比例降低。

1.3 梯度检查点(Gradient Checkpointing)

通过牺牲计算时间,将激活值显存减少 60-70%(如从 30 GB 降至 10 GB)。

1.4 混合精度训练(FP16+FP32)

使用 FP16 存储参数和梯度,FP32 保存优化器状态,结合 Loss Scaling 避免数值下溢。

推荐训练配置

并行策略:

ZeRO Stage 3 + 模型并行(2D 并行):4 卡用于流水线并行,2 卡用于张量并行。

梯度检查点:启用以减少激活值显存。

批量大小:每卡微批次(micro-batch)设为 1-2,避免显存溢出。

框架:使用 DeepSpeed 或 Megatron-LM 实现分布式训练。

2.推理阶段

单卡无法满足推理需求,需通过多卡并行方式或者量化技术:

2.1 多卡模型并行

将模型拆分到 2 张 GPU(如每卡加载 7B 参数),使用 NVIDIA Triton 或 FasterTransformer 实现多卡推理加速。

2.2量化技术

使用 INT8 量化(需 TensorRT 或 PyTorch 量化工具),显存需求减半,单卡可运行。

2.3 动态批处理(Dynamic Batching)

在高并发场景下,通过动态合并请求提高吞吐量。

推荐推理配置

框架:HuggingFace Transformers + TensorRT(支持 INT8 量化)。

并行策略:2 卡模型并行(FP16)或单卡 INT8 量化。

硬件加速:启用 RTX 4090 的 Tensor Cores 和 CUDA Graph 优化。

 

8卡A100(40G版)部署32B模型

1.训练阶段

在混合精度训练情况下,32B模型要求的显存远高于单卡A100,也高于8 卡总显存,需通过以下技术降低显存占用:

1.1 DeepSpeed ZeRO Stage 3 + Offload

将模型参数、梯度和优化器状态分片到 8 卡,显存占用降至单卡约 562 GB / 8 ≈ 70.25 GB,仍超过单卡 40GB。

ZeRO-Offload:将优化器状态和梯度卸载到 CPU 内存,显存需求进一步降低至单卡约 35-40 GB(可适配 A100 40GB)。

1.2 模型并行(Model Parallelism)

张量并行(Tensor Parallelism):将模型层横向拆分到多卡(如 4 卡并行,每卡负责 8B 参数)。

流水线并行(Pipeline Parallelism):将模型层纵向拆分到多卡(如 2 卡并行,每卡负责 16B 参数)。

结合两种并行策略(如 4×2 混合并行),显存需求按分片比例降低。

1.3 梯度检查点(Gradient Checkpointing)

通过牺牲 20-30% 的计算时间,将激活值显存减少 60-70%(如从 50 GB 降至 15 GB)。

1.4 混合精度训练(FP16+FP32)

使用 FP16 存储参数和梯度,FP32 保存优化器状态,结合 Loss Scaling 避免数值下溢。

推荐训练配置

并行策略:

ZeRO Stage 3 + 模型并行:4 卡用于张量并行,2 卡用于流水线并行,剩余 2 卡处理数据并行。

梯度检查点:启用以减少激活值显存。

批量大小:每卡微批次(micro-batch)设为 1-2,全局批次大小(global batch)为 16-32。

框架:使用 DeepSpeed + Megatron-LM 实现分布式优化。

2.推理阶段

FP16推理条件下显存需求约80G,同样超过单张A100,需要多卡并行。

2.1多卡模型并行

将模型拆分到 2-4 张 GPU(如 4 卡张量并行,每卡加载 8B 参数),使用 NVIDIA Triton 或 FasterTransformer 加速推理。

2.2量化技术

使用 INT8 量化(需 TensorRT 或 PyTorch 量化工具),显存需求减半,单卡可运行部分分片。

2.3 动态批处理(Dynamic Batching)

在高并发场景下,通过合并请求提高吞吐量,减少单次推理成本。


有深度学习相关解决方案和硬件需求的同学、老师可以联系我们,微信号:cailiaoren010。

20240829173504(1).png


暂无留言
专栏最新文章