快捷方式

快速入門

要在所有節點上啟動一個容錯作業,請執行以下命令。

torchrun
   --nnodes=NUM_NODES
   --nproc-per-node=TRAINERS_PER_NODE
   --max-restarts=NUM_ALLOWED_FAILURES
   --rdzv-id=JOB_ID
   --rdzv-backend=c10d
   --rdzv-endpoint=HOST_NODE_ADDR
   YOUR_TRAINING_SCRIPT.py (--arg1 ... train script args...)

要啟動一個彈性作業,請在至少 MIN_SIZE 個節點上以及最多 MAX_SIZE 個節點上執行以下命令。

torchrun
    --nnodes=MIN_SIZE:MAX_SIZE
    --nproc-per-node=TRAINERS_PER_NODE
    --max-restarts=NUM_ALLOWED_FAILURES_OR_MEMBERSHIP_CHANGES
    --rdzv-id=JOB_ID
    --rdzv-backend=c10d
    --rdzv-endpoint=HOST_NODE_ADDR
    YOUR_TRAINING_SCRIPT.py (--arg1 ... train script args...)

注意

TorchElastic 將故障視為成員身份變化。當一個節點失敗時,這被視為一個“縮減”事件。當失敗的節點被排程器替換時,這是一個“擴容”事件。因此,對於容錯作業和彈性作業,都使用 --max-restarts 來控制放棄之前重新啟動的總次數,無論重新啟動是由故障還是縮放事件引起的。

HOST_NODE_ADDR,格式為 <主機>[:<埠>](例如 node1.example.com:29400),指定了應例項化和託管 C10d rendezvous 後端的節點和埠。它可以是訓練叢集中的任何節點,但理想情況下應選擇頻寬較高的節點。

注意

如果未指定埠號,HOST_NODE_ADDR 預設為 29400。

注意

可以傳遞 --standalone 選項來啟動帶有 sidecar rendezvous 後端的單節點作業。使用 --standalone 選項時,您不必傳遞 --rdzv-id--rdzv-endpoint--rdzv-backend

注意

在此處瞭解更多關於編寫分散式訓練指令碼的資訊。here

如果 torchrun 不滿足您的需求,您可以直接使用我們的 API 進行更強大的定製。首先請檢視 elastic agent API。elastic agent API。

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源