AI 入门:用 Micro-DDP 跑通你的第一个分布式训练
零基础学会安装 PyTorch 和 Micro-DDP,用多 GPU 跑通分布式训练,避开常见坑。
准备环境
在开始之前,你需要一台有多个 GPU 的电脑(或者用云服务器)。我们使用 PyTorch(一个流行的深度学习框架)和 Micro-DDP(一个帮你把训练任务分到多个 GPU 上的小工具)。
- 检查你的系统:推荐 Ubuntu 20.04 或更高版本,Windows 也可以但建议用 Linux。
- 安装 Python 3.8 或更高版本:去 python.org 下载安装包,记得勾选“Add Python to PATH”。
- 安装 CUDA(NVIDIA 的并行计算平台):去 NVIDIA 官网 下载对应版本,安装后重启。
- 验证 CUDA:在终端输入
nvcc --version,看到版本号就对了。
安装 PyTorch 和 Micro-DDP
- 打开终端(Windows 用命令提示符或 PowerShell)。
- 安装 PyTorch:去 pytorch.org 选择你的配置(比如 Linux + CUDA 11.8),复制给出的命令运行。例如:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118。 - 安装 Micro-DDP:运行
pip install micro-ddp。如果报错,先升级 pip:pip install --upgrade pip。 - 验证安装:在 Python 里输入
import torch; print(torch.cuda.is_available()),返回True表示 GPU 可用;再输入import micro_ddp,没有报错就成功了。
跑通第一个训练
我们用一个最简单的例子:训练一个模型对数字图片分类。Micro-DDP 会自动把你的数据分到多个 GPU 上并行计算。
- 复制以下代码保存为
train.py:import torch import torch.nn as nn from torch.utils.data import DataLoader from torchvision import datasets, transforms from micro_ddp import MicroDDP # 定义模型 model = nn.Sequential(nn.Flatten(), nn.Linear(784, 10)) model = MicroDDP(model) # 准备数据 transform = transforms.ToTensor() train_data = datasets.MNIST(root='./data', train=True, download=True, transform=transform) train_loader = DataLoader(train_data, batch_size=64, shuffle=True) # 训练 criterion = nn.CrossEntropyLoss() optimizer = torch.optim.SGD(model.parameters(), lr=0.01) for epoch in range(2): for images, labels in train_loader: outputs = model(images) loss = criterion(outputs, labels) loss.backward() optimizer.step() optimizer.zero_grad() print('训练完成!') - 运行:
python train.py。你会看到多个 GPU 的利用率都上去了,训练速度明显比单 GPU 快。 - 常见坑:如果报错“CUDA out of memory”,试试减小 batch_size(比如从 64 改成 32)。
下一步可以做什么
现在你已经跑通了分布式训练!接下来可以:
- 尝试更大的模型,比如用 ResNet(一种深度神经网络)做图像分类。
- 调整 batch size(每次训练用的样本数)和 learning rate(学习率)来优化效果。
- 阅读 Micro-DDP 的文档,学习更高级的功能,比如梯度累积。
记住,分布式训练的核心就是让多个 GPU 同时干活,减少等待时间。多试试,你就能掌握它!
内容来源
freeCodeCamp
发布时间
2026-06-27 01:30