Optimum 文档

使用 Optimum 和 Intel Gaudi 进行分布式训练

您正在查看 main 版本,该版本需要从源代码安装. 如果您想要常规 pip 安装,请查看最新的稳定版本 (v1.24.0)。
Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

使用 Optimum 和 Intel Gaudi 进行分布式训练

随着模型变得越来越大,并行性已成为一种在有限硬件上训练更大模型并通过几个数量级加速训练速度的策略。

所有 PyTorch 示例GaudiTrainer 脚本都开箱即用地支持分布式训练。 有两种启动它们的方式

  1. 使用 gaudi_spawn.py 脚本

    • 使用 MPI 进行分布式训练

      python gaudi_spawn.py \
          --world_size number_of_hpu_you_have --use_mpi \
          path_to_script.py --args1 --args2 ... --argsN

      其中 --argX 是以分布式方式运行的脚本的参数。 问题解答的示例请参见此处,文本分类的示例请参见此处

    • 使用 DeepSpeed 进行分布式训练

      python gaudi_spawn.py \
          --world_size number_of_hpu_you_have --use_deepspeed \
          path_to_script.py --args1 --args2 ... --argsN

      其中 --argX 是以分布式方式运行的脚本的参数。 问题解答的示例请参见此处,文本分类的示例请参见此处

  2. 直接在代码中使用 DistributedRunner

    from optimum.habana.distributed import DistributedRunner
    from optimum.utils import logging
    
    world_size=8 # Number of HPUs to use (1 or 8)
    
    # define distributed runner
    distributed_runner = DistributedRunner(
        command_list=["scripts/train.py --args1 --args2 ... --argsN"],
        world_size=world_size,
        use_mpi=True,
    )
    
    # start job
    ret_code = distributed_runner.run()

您可以设置训练参数 --distribution_strategy fast_ddp 以获得更简单且通常更快的分布式训练管理。 更多信息请参见此处

为了进一步了解,我们邀请您阅读关于以下内容的指南

< > GitHub 上更新