在分布式大模型训练中,tensor parallelism(张量并行)与pipeline parallelism(流水线并行)是两种核心的并行策略。本文基于PyTorch Lightning和FSDP框架,提供可复现的对比测试方案。
测试环境:8卡V100,PyTorch 2.0,Lightning 2.0
模型设置:使用LLaMA-7B结构,batch size=32,序列长度=512
Tensor Parallelism配置:
from torch.distributed.fsdp import FSDP, ShardingStrategy
fsdp_strategy = ShardingStrategy.FULL_SHARD
model = FSDP(model, sharding_strategy=fsdp_strategy)
Pipeline Parallelism配置:
from pytorch_lightning import Trainer
trainer = Trainer(
accelerator="gpu",
devices=8,
num_nodes=1,
strategy="ddp",
plugins=[PipelineParallelPlugin(stages=4)]
)
关键指标对比:
- 内存占用:张量并行下显存峰值降低约35%
- 训练时间:流水线并行比张量并行快约18%
- 吞吐量:流水线并行达到1200 tokens/sec
复现步骤:
- 部署8卡环境,确保CUDA 11.8兼容
- 安装依赖:pip install pytorch lightning fsdp
- 下载模型权重到本地路径
- 分别运行两种并行策略代码
- 记录显存使用和训练时间
实际调优建议:在资源充足时优先选择流水线并行,当显存受限时可结合混合并行策略。

讨论