快速入门#
创建时间: 2021年05月04日 | 最后更新时间: 2023年02月09日
要启动一个容错任务,请在所有节点上运行以下命令。
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 协调后端应该实例化和托管的节点和端口。它可以是训练集群中的任何节点,但最好选择一个具有高带宽的节点。
注意
如果未指定端口号,HOST_NODE_ADDR
默认为 29400。
注意
可以传递 --standalone
选项来启动一个带有 sidecar 协调后端的单节点任务。当使用 --standalone
选项时,您不必传递 --rdzv-id
、--rdzv-endpoint
和 --rdzv-backend
。
注意
如果 torchrun
不能满足您的需求,您可以使用我们的 API 直接进行更强大的自定义。首先查看弹性代理 API。