跳到主要内容

启动与分布式(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 配置启用,降低显存占用。