捷徑

快速入門

若要啟動一個容錯作業,請在所有節點上執行以下程式碼。

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 的格式為 <host>[:<port>] (例如 node1.example.com:29400),指定了 C10d rendezvous 後端應被實例化和託管的節點和埠。它可以是您訓練叢集中的任何節點,但理想情況下,您應該選擇具有高頻寬的節點。

注意

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

注意

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

注意

這裡深入了解如何編寫您的分散式訓練腳本。

如果 torchrun 無法滿足您的需求,您可以直接使用我們的 API 進行更強大的自訂。首先查看 elastic agent API。

文件

存取 PyTorch 的全面開發者文件

檢視文件

教學

取得初學者和進階開發人員的深入教學

檢視教學

資源

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

檢視資源