快速入门¶
要启动一个容错作业,请在所有节点上运行以下命令。
torchrun
--nnodes=节点数量
--nproc-per-node=每个节点的训练器数量
--max-restarts=允许的失败次数
--rdzv-id=作业ID
--rdzv-backend=c10d
--rdzv-endpoint=主机节点地址
YOUR_TRAINING_SCRIPT.py (--arg1 ... 训练脚本参数...)
要启动一个弹性作业,请在至少MIN_SIZE
个节点和最多MAX_SIZE
个节点上运行以下命令。
torchrun
--nnodes=最小大小:最大大小
--nproc-per-node=每节点训练器数量
--max-restarts=允许的失败或成员变更次数
--rdzv-id=作业ID
--rdzv-backend=c10d
--rdzv-endpoint=主机节点地址
YOUR_TRAINING_SCRIPT.py (--arg1 ... 训练脚本参数...)
注意
TorchElastic 将成员变更导致的故障模型化。当一个节点失败时,这被视为“缩减”事件。当失败的节点被调度器替换时,这是一个“扩展”事件。因此,对于容错和弹性作业,--max-restarts
用于控制放弃前的总重启次数,无论重启是由于故障还是扩展事件引起的。
HOST_NODE_ADDR
,格式为 <主机>[:<端口>](例如 node1.example.com:29400),
指定节点和端口,C10d rendezvous 后端应在此节点和端口上实例化并托管。它可以是训练集群中的任何节点,但理想情况下,您应选择一个具有高带宽的节点。
注意
如果没有指定端口号,HOST_NODE_ADDR
默认设置为 29400。
注意
可以使用 --standalone
选项来启动一个带有边车 rendezvous 后端的单节点作业。使用 --standalone
选项时,您不需要传递 --rdzv-id
、--rdzv-endpoint
和 --rdzv-backend
。
注意
了解更多关于编写分布式训练脚本的信息 这里。
如果 torchrun
不符合您的需求,您可以直接使用我们的API进行更强大的定制。首先,请查看 弹性代理 API。