启动与分布式(Distributed/DeepSpeed)
设备选择、分布式进程与模型包装由以下函数负责:
wall_e/runner/runner.py (L290–371)
def setup_launch_strategy(self): ... # 单机/分布式/CPU,设置 device 与 is_main_process
def setup_model_optimizer(self): ... # 检查点、激活检查点、DDP/DeepSpeed 包装、默认 AdamW
要点:
- 当
cuda可用时,若 GPU>1 或启用 DeepSpeed,将尝试初始化分布式;否则为单卡。 - 分布式:使用
DistributedDataParallel包装模型;DeepSpeed:deepspeed.initialize管理模型与优化器。 Runner.wrap_dataloader提供DistributedSampler注入,确保各 rank 读不同数据子集。
提示:
- 需要先正确初始化分布式(例如 env 变量、torchrun/torch.distributed.launch)。
- 激活检查点通过
training.activation_checkpoint配置启用,降低显存占用。