• 文档 >
  • 火炬分布式弹性 >
  • 快速入门
快捷键

快速入门 ¶

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

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 rendezvous 后端应该实例化和托管在哪个节点和端口上。它可以是您的训练集群中的任何节点,但理想情况下,您应该选择一个具有高带宽的节点。

注意

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

注意

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

注意

在此处了解更多关于编写您的分布式训练脚本的信息。

如果 torchrun 不符合您的需求,您可以直接使用我们的 API 进行更强大的定制。首先,请查看弹性代理 API。


© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,主题由 Read the Docs 提供。

文档

查看 PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源