评价此页

快速入门#

创建日期:2021年5月4日 | 最后更新日期:2023年2月9日

要启动一个容错作业,请在所有节点上运行以下命令。

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 进行更强大的自定义。首先查看 弹性代理 API。