Optimum 文件

多節點訓練

您正在檢視的是需要從原始碼安裝。如果您想透過 pip 進行常規安裝,請檢視最新的穩定版本 (v1.27.0)。
Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

多節點訓練

使用多個 Gaudi 伺服器進行多節點訓練可以輕鬆完成。本指南將展示如何

  • 設定多個 Gaudi 例項
  • 設定您的計算環境
  • 啟動多節點執行

設定多個 Gaudi 例項

有兩種可能的配置

  • 使用 Gaudi NIC 或主機 NIC 進行橫向擴充套件 (本地部署)
  • 使用 Intel® Tiber™ AI Cloud 例項進行橫向擴充套件

本地部署

要在本地設定伺服器,請檢視 Intel® Gaudi® AI 加速器文件中的安裝分散式訓練頁面。

Intel Tiber AI Cloud 例項

請按照 Intel® Gaudi® AI 加速器文件中建立賬戶和獲取例項頁面上的步驟操作。

啟動多節點執行

一旦您的 Intel Gaudi 例項準備就緒,請按照 Intel® Gaudi® AI 加速器文件中設定多伺服器環境頁面上的步驟操作。

最後,有兩種方法可以在多個節點上執行您的訓練指令碼

  1. 使用 gaudi_spawn.py 指令碼,您可以執行以下命令
python gaudi_spawn.py \
    --hostfile path_to_my_hostfile --use_deepspeed \
    path_to_my_script.py --args1 --args2 ... --argsN \
    --deepspeed path_to_my_deepspeed_config

其中 --argX 是要執行指令碼的引數。

  1. 使用 DistributedRunner,您可以將此程式碼片段新增到指令碼中
from optimum.habana.distributed import DistributedRunner

distributed_runner = DistributedRunner(
    command_list=["path_to_my_script.py --args1 --args2 ... --argsN"],
    hostfile=path_to_my_hostfile,
    use_deepspeed=True,
)

環境變數

如果您需要為所有節點設定環境變數,可以在 .deepspeed_env 檔案中指定它們。該檔案應位於您執行命令的本地路徑或您的主目錄中。格式如下

env_variable_1_name=value
env_variable_2_name=value
...

建議

  • 強烈建議在多節點執行時使用梯度檢查點(gradient checkpointing)以獲得最高的加速比。您可以在這些示例中使用 --gradient_checkpointing 或在您的 GaudiTrainingArguments 中設定 gradient_checkpointing=True 來啟用它。
  • 更大的批處理大小應能帶來更高的加速比。
  • 不建議進行多節點推理,因為它可能產生不一致的結果。
  • 在 Intel Tiber AI Cloud 例項上,請使用 --privileged 標誌執行您的 Docker 容器,以確保 EFA 裝置可見。

示例

在本示例中,我們將在 WikiText 資料集上微調一個預訓練的 GPT2-XL 模型。我們將使用 Github 倉庫中提供的因果語言建模示例

第一步是使用此命令在多個節點上訓練模型

PT_HPU_LAZY_MODE=1 python ../gaudi_spawn.py \
    --hostfile path_to_hostfile --use_deepspeed run_clm.py \
    --model_name_or_path gpt2-xl \
    --gaudi_config_name Habana/gpt2 \
    --dataset_name wikitext \
    --dataset_config_name wikitext-2-raw-v1 \
    --do_train \
    --output_dir /tmp/gpt2_xl_multi_node \
    --learning_rate 4e-04 \
    --per_device_train_batch_size 16 \
    --gradient_checkpointing \
    --num_train_epochs 1 \
    --use_habana \
    --use_lazy_mode \
    --throughput_warmup_steps 3 \
    --deepspeed path_to_deepspeed_config

評估未在同一命令中執行,因為我們目前不建議執行多節點推理。

模型訓練完成後,我們可以使用以下命令對其進行評估。引數 --model_name_or_path 應等於前一個命令的 --output_dir 引數。

PT_HPU_LAZY_MODE=1 python run_clm.py \
    --model_name_or_path /tmp/gpt2_xl_multi_node \
    --gaudi_config_name Habana/gpt2 \
    --dataset_name wikitext \
    --dataset_config_name wikitext-2-raw-v1 \
    --do_eval \
    --output_dir /tmp/gpt2_xl_multi_node \
    --per_device_eval_batch_size 8 \
    --use_habana \
    --use_lazy_mode
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.