快捷方式

快速入门

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

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(形式为 <主机>[:<端口>](例如 node1.example.com:29400))指定应在其中实例化和托管 C10d 会合后端的节点和端口。它可以是训练集群中的任何节点,但理想情况下,您应该选择一个带宽高的节点。

注意

如果未指定端口号,则 HOST_NODE_ADDR 默认值为 29400。

注意

可以使用 --standalone 选项来启动具有辅助会合后端的一个节点作业。使用 --standalone 选项时,无需传递 --rdzv-id--rdzv-endpoint--rdzv-backend

注意

了解有关编写分布式训练脚本的更多信息 此处.

如果 torchrun 不满足您的要求,您可以直接使用我们的 API 进行更强大的自定义。首先查看 弹性代理 API。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获取问题的答案

查看资源