一、为什么要使用分布式训练?
分布式训练通过并行计算解决以下问题:
- 处理超大规模数据集(TB级)
- 加速模型训练(线性加速比)
- 突破单卡显存限制
- 实现工业级模型训练(如LLaMA、GPT)
二、单机多卡训练实战
1. 数据并行基础
import torch
import torch.nn as nn
import torchvision
from torch.utils.data import DataLoader, DistributedSampler
# 准备数据集
transform = torchvision.transforms.Compose([
torchvision.transforms.ToTensor(),
torchvision.transforms.Normalize((0.5,), (0.5,))
])
dataset = torchvision.datasets.MNIST(
root='./data', train=True, download=True, transform=transform)
# 初始化模型
class ConvNet(nn.Module):
def __init__(self):
super().__init__()
self.conv_layers = nn.Sequential(
nn.Conv2d(1, 32, 3),
nn.ReLU(),
nn.MaxPool2d(2),
nn.Conv2d(32, 64, 3),
nn.ReLU(),
nn.MaxPool2d(2)
)


2821

被折叠的 条评论
为什么被折叠?



