第 1 章 课程导入:分布式训练的必要性、DeepSpeed 简介、学习目标与整体框架

当你第一次尝试把一个大语言模型塞进单张 GPU 时,往往会遇到一个非常直接的报错:CUDA out of memory。这不是代码写错了,而是模型规模、数据规模与单卡显存之间出现了根本性的矛盾。分布式训练正是为了解决这一矛盾而诞生的工程体系,而 DeepSpeed 则是其中最具代表性的训练加速框架之一。

一、为什么单卡训练会走到尽头

训练一个神经网络,显存主要被四部分占用:模型参数、梯度、优化器状态以及前向传播中的激活值。以混合精度训练为例,若模型有 Φ 个参数,仅参数本身(FP16)就需要 2Φ 字节,梯度再占 2Φ 字节;而 Adam 优化器还需要保存 FP32 的动量与方差,合计约 12Φ 字节。也就是说,一个 10B 参数的模型,光模型状态就可能超过 160GB,远超单张 80GB 显卡的容量。

除了显存,计算时间也是瓶颈。单卡算力有限,训练一个百亿参数模型可能需要数月,这在工程上不可接受。因此,分布式训练要同时解决两个问题:把放不下的模型状态分散到多张卡上,以及把算力聚合起来缩短训练时间。

单卡显存占用构成与分布式切分思路 单卡显存预算 参数 FP16:2Φ 梯度 FP16:2Φ 优化器状态:12Φ 激活值:随批量增长 合计远超单卡 80GB 分布式切分策略 数据并行 DP 每卡完整模型,切分数据 张量并行 TP 层内矩阵按维度切分 流水线并行 PP 按层切分到不同设备 ZeRO 状态切分 参数/梯度/优化器分片 DeepSpeed 统一编排:通信、显存、计算三者协同

二、DeepSpeed 是什么

DeepSpeed 是微软开源的一个深度学习优化库,最初为大规模语言模型训练设计,现已支持 PyTorch 生态中的主流模型。它的核心价值可以概括为三点:

  • 显存效率:通过 ZeRO(Zero Redundancy Optimizer)系列技术,把参数、梯度、优化器状态分片到多张卡上,显著降低单卡显存占用。
  • 计算效率:提供混合精度训练、梯度累积、通信压缩、算子融合等能力,提升吞吐量。
  • 易用性:以配置文件驱动,用户只需少量代码改动,就能把单卡训练脚本迁移到多卡、多机环境。

一个典型的 DeepSpeed 训练入口如下所示:

deepspeed --num_gpus=8 train.py \
  --deepspeed ds_config.json \
  --model_name_or_path ./model \
  --per_device_train_batch_size 4

其中 ds_config.json 是 DeepSpeed 的核心配置文件,决定了是否启用 ZeRO、使用哪一级 ZeRO、混合精度策略、通信后端等关键行为。

三、学习目标与整体框架

本课程的目标不是让你死记 API,而是建立一套“从问题到配置”的工程判断力。学完之后,你应该能够:

  1. 判断一个训练任务是否需要分布式,以及需要哪种并行策略。
  2. 读懂并编写 DeepSpeed 配置文件,理解 ZeRO 各级别的取舍。
  3. 在多卡、多机环境下启动训练,并定位常见的通信与显存问题。
  4. 对训练吞吐、显存占用和扩展效率进行基本评估与调优。

课程整体分为四个阶段,如下表所示:

阶段 核心内容 关键产出
基础认知 分布式必要性、并行策略分类、DeepSpeed 定位 能说清 DP/TP/PP/ZeRO 的区别
核心机制 ZeRO 三级分片、混合精度、梯度累积、通信原语 能解释显存为什么降下来
工程实操 配置文件、启动脚本、多机部署、日志与监控 能独立跑通一个多卡训练任务
调优与排障 吞吐调优、显存分析、通信瓶颈、常见报错 能定位并解决典型训练故障

四、一个典型场景与常见误区

假设你要微调一个 7B 参数的模型,单卡 24GB 显存。直接全量微调几乎必然 OOM。此时可以走两条路:一是使用 LoRA 等参数高效微调方法,只训练少量适配器参数;二是使用 DeepSpeed ZeRO-2 或 ZeRO-3,把优化器状态和参数分片到多张卡上。前者降低可训练参数量,后者降低每卡的状态冗余,两者也可以叠加使用。

常见误区:很多初学者认为“加了 DeepSpeed 就一定更快”。实际上,如果模型本身很小、单卡就能放下,引入分布式反而会增加通信开销,导致吞吐下降。分布式不是万能加速器,而是在显存或算力成为硬约束时的必要手段。

学习建议:每学一个概念,都问自己三个问题——它解决的是什么瓶颈?代价是什么?在什么规模下才值得用?带着这三个问题往下学,你会比单纯记配置项走得更远。

分布式训练的本质,是在显存、算力、通信三者之间做权衡。DeepSpeed 把这些权衡封装成可配置的选项,而理解这些选项背后的原理,才是本课程真正要交付给你的能力。