DeepSpeed多GPU训练框架 | AI生成和翻译

首页 2026.07

问题:什么是DeepSpeed?它是一个多GPU训练框架吗?

回答:

是的。DeepSpeed是微软开发的分布式深度学习训练与推理优化框架,主要旨在让大模型能够在多个GPU(甚至数千个GPU)上进行训练

你可以把它看作是PyTorch Distributed之上的一层,用于解决从1个GPU扩展到多个GPU时遇到的各种问题:

核心理念:

PyTorch模型
      |
      v
DeepSpeed引擎
      |
      +-- ZeRO优化器
      +-- 分布式数据并行
      +-- 内存优化
      +-- 通信优化
      +-- CPU/NVMe卸载
      +-- 混合精度

DeepSpeed存在的原因:内存爆炸

对于常规Adam训练,模型所需的内存远不止参数本身。

示例:FP16训练。

一个参数:

权重:              2字节 (fp16)
梯度:              2字节
Adam动量:          4字节 (fp32)
Adam方差:          4字节 (fp32)
主权重:            4字节 (fp32)

总计 ≈ 每参数16字节

一个70B参数的模型:

70B × 16字节

= 1.12 TB显存

即使是H100 80GB也无法训练它。

DeepSpeed ZeRO解决了这个问题。


ZeRO(零冗余优化器)

常规的DistributedDataParallel:

GPU0:
 模型
 梯度
 优化器状态

GPU1:
 模型
 梯度
 优化器状态

GPU2:
 模型
 梯度
 优化器状态

每个GPU都存储全部内容。

非常浪费。


DeepSpeed ZeRO:

ZeRO阶段1

分割优化器状态:

GPU0:
 优化器分片A

GPU1:
 优化器分片B

GPU2:
 优化器分片C

ZeRO阶段2

同时分割梯度:

GPU0:
 优化器A
 梯度A

GPU1:
 优化器B
 梯度B

ZeRO阶段3

参数也被分割:

GPU0:
 参数分片A

GPU1:
 参数分片B

GPU2:
 参数分片C

现在,大于单个GPU容量的模型也可以训练了。


示例:

70B模型

不使用ZeRO:

需要约1TB

使用ZeRO-3:

8个GPU × 80GB

可行

DeepSpeed vs PyTorch DDP

简单的DDP:

torchrun \
 --nproc_per_node=8 \
 train.py

每个GPU拥有完整模型。

适合:


DeepSpeed:

deepspeed train.py \
 --deepspeed ds_config.json

配合:

{
 "zero_optimization": {
   "stage": 3
 }
}

适合:


DeepSpeed不仅用于训练

它还具备:

1. 推理优化

示例:

一个70B模型:

FP16:

140GB显存

DeepSpeed推理可以:

在以下配置上运行:

2 × A100 80GB

2. CPU/NVMe卸载

如果GPU内存不足:

GPU显存
   |
   |
CPU内存
   |
   |
NVMe固态硬盘

示例:

在消费级GPU上训练30B模型。


与其他框架比较

框架 主要用途
PyTorch DDP 标准多GPU
DeepSpeed 大模型训练
FSDP PyTorch原生版ZeRO
Megatron-LM 超大规模Transformer训练
ColossalAI 类似目标
Accelerate HuggingFace启动器抽象层

针对你的硬件情况

针对你的RTX 4070/可能的RTX 3090配置:

单块RTX 4070 12GB

DeepSpeed帮助不大。

你受限于内存,但只有一块GPU。

更好的选择:


2块RTX 3090 24GB

DeepSpeed开始变得有用:

总共48GB显存

可行的操作:

示例:

2 x 3090
        |
        v
DeepSpeed ZeRO-2/3
        |
        v
Qwen 14B微调

数据并行 vs 模型并行

重要区别:

DDP:

GPU0:整个模型
GPU1:整个模型

处理不同数据

DeepSpeed ZeRO-3:

GPU0:模型的一部分
GPU1:模型的一部分

同一个模型被分布式存储

这就是DeepSpeed对LLM至关重要的原因。


对于你的GPT-2 124M/760M训练实验,你可能不需要DeepSpeed。你的RTX 4070可以处理这些模型。当你进入7B+全量训练或30B/70B微调时,DeepSpeed才会变得有意义。


AI生成和翻译,但整理分享仍需精力。如果觉得有帮助,欢迎 捐助支持。 微信:@lzwjavaWeChat QR · X: @lzwjava · 打个招呼 👋

返回 捐助