捷徑

快速入門

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

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 會合後端的節點和埠。它可以是訓練叢集中的任何節點,但理想情況下,您應該選擇頻寬較高的節點。

備註

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

備註

可以使用 --standalone 選項啟動具有側車會合後端的單一節點作業。使用 --standalone 選項時,您不需要傳遞 --rdzv-id--rdzv-endpoint--rdzv-backend

備註

這裡進一步瞭解如何撰寫分散式訓練腳本。

如果 torchrun 不符合您的需求,您可以直接使用我們的 API 來進行更強大的自訂。首先,請查看彈性代理API。

文件

取得 PyTorch 的完整開發人員文件

檢視文件

教學課程

取得適用於初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得問題的解答

檢視資源