快速入门

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

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...trainscriptargs...)

要启动一个弹性作业,请在至少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...trainscriptargs...)

注意

TorchElastic 将节点故障视为成员变化。当一个节点失败时,这被视为“缩容”事件;当调度器用新节点替换该失败节点时,则视为“扩容”事件。因此,对于需要容错和弹性伸缩的任务,--max-restarts 参数用于控制在放弃之前总共允许的重启次数,无论重启是由故障还是扩展事件引起的。

HOST_NODE_ADDR 的格式为 <host>[:<port>](例如 node1.example.com:29400),用于指定 C10d 会合后端实例化和托管的节点及端口。它可以是训练集群中的任意节点,但最好选择一个带宽较高的节点。

注意

如果没有指定端口号,HOST_NODE_ADDR 将默认为 29400。

注意

可以使用 --standalone 选项来启动单节点作业,并自动配置 sidecar 会话后端。当使用 --standalone 选项时,无需传递 --rdzv-id--rdzv-endpoint--rdzv-backend 参数。

注意

更多关于编写分布式训练脚本的信息,请参阅这里

如果你发现 torchrun 不符合你的要求,可以直接使用我们的 API 进行更高级的定制化设置。你可以从查阅弹性代理 API 开始。

本页目录