DeepSpeed 详解
一、什么是 DeepSpeed?
1.1 核心概念
DeepSpeed 是微软研发的深度学习优化库,通过 ZeRO(Zero Redundancy Optimizer) 技术和多种并行策略,让大规模模型训练变得更加高效和易用。
1.2 核心优势
| 优势 | 说明 |
|---|---|
| 显存节省 | 单卡显存占用随 GPU 数量显著降低 |
| 训练加速 | 高效的并行策略和内存管理 |
| 模型扩展 | 支持更大规模的模型训练 |
1.3 ZeRO 技术架构
模型状态分片存储,消除显存冗余:
| 分片类型 | 说明 |
|---|---|
| 参数分片(P) | 将模型参数分散存储在不同 GPU 上 |
| 梯度分片(G) | 梯度计算和存储的分布式处理 |
| 优化器分片(O) | 优化器状态的分布式存储管理 |
二、常见误解 vs 现实
2.1 误解:显存平摊
❌ 错误想法: > "多张卡训练时,显存会自动平摊分配,每张卡只需要承担 1/N 的显存压力"
2.2 现实:各自独立
✅ 实际情况: > "每张卡都需要存储完整的模型参数和优化器状态,显存并不会自动平摊" > "多卡主要用于提升训练速度"
---
三、DeepSpeed Stage 对比
3.1 Stage 0(默认)
- 每张卡都存完整的模型参数
- 单卡显存:约 15.25G
3.2 Stage 1
- 参数只存1份,放在所有卡上
- 单卡显存:约 12.6G
3.3 Stage 2 ⭐推荐
- 参数共享,优化器状态分布存储
- 单卡显存:约 10.4G
- 推荐使用!
3.4 Stage 3
- 模型按层拆分,参数按需流动
- 单卡显存:约 8.15G
- 最大内存节省
四、核心特性
- ZeRO 技术:参数/梯度/优化器状态分片
- 混合精度训练:自动损失缩放,动态精度管理
- 并行策略:张量并行、流水线并行、数据并行组合
- 内存优化:激活重计算、内存碎片整理
来源:Easy AI 教程系列 #EasyAI #AI教学 #教程 #DeepSpeed