Accelerate 文档

启动器

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

启动器

用于在分布式进程上启动训练的函数。

notebook_launcher

accelerate.notebook_launcher

< >

( function args = () num_processes = None mixed_precision = 'no' use_port = '29500' master_addr = '127.0.0.1' node_rank = 0 num_nodes = 1 rdzv_backend = 'static' rdzv_endpoint = '' rdzv_conf = None rdzv_id = 'none' max_restarts = 0 monitor_interval = 0.1 log_line_prefix_template = None )

参数

  • function (Callable) — 要执行的训练函数。如果它接受参数,第一个参数应该是运行进程的索引。
  • args (Tuple) — 传递给函数的参数元组(它将接收 `*args`)。
  • num_processes (int, optional) — 用于训练的进程数。如果 TPU 可用,在 Colab/Kaggle 中默认为 8,否则为可用设备数。
  • mixed_precision (str, optional, 默认为 "no") — 如果是 fp16bf16,将在多设备上使用混合精度训练。
  • use_port (str, optional, 默认为 "29500") — 启动多设备训练时,用于进程间通信的端口。
  • master_addr (str, optional, 默认为 "127.0.0.1") — 用于进程间通信的地址。
  • node_rank (int, optional, 默认为 0) — 当前节点的排名。
  • num_nodes (int, optional, 默认为 1) — 用于训练的节点数。
  • rdzv_backend (str, optional, 默认为 "static") — 使用的集合点(rendezvous)方法,例如‘static’(默认值)或‘c10d’
  • rdzv_endpoint (str, optional, 默认为 "") — rdzv 同步存储的端点。
  • rdzv_conf (Dict, optional, 默认为 None) — 额外的集合点(rendezvous)配置。
  • rdzv_id (str, optional, 默认为 "none") — 作业的唯一运行 ID。
  • max_restarts (int, optional, 默认为 0) — 弹性代理在失败前对工作节点执行的最大重启次数。
  • monitor_interval (float, optional, 默认为 0.1) — 弹性代理用作监视工作节点周期的间隔时间(秒)。
  • log_line_prefix_template (str, optional, 默认为 None) — 弹性启动日志记录的前缀模板。从 PyTorch 2.2.0 开始可用。

在当前环境可能的情况下(例如,具有多个核心的 TPU),使用多个进程或多个节点启动训练函数。

要使用此函数,在调用之前,笔记本会话中绝对不能对设备进行任何调用。如果已经进行了任何调用,您将需要重新启动笔记本,并确保没有任何单元格使用任何设备功能。

在您的环境中设置 ACCELERATE_DEBUG_MODE="1" 将在真正启动前运行测试,以确保没有进行任何此类调用。

示例

# Assume this is defined in a Jupyter Notebook on an instance with two devices
from accelerate import notebook_launcher


def train(*args):
    # Your training function here
    ...


notebook_launcher(train, args=(arg1, arg2), num_processes=2, mixed_precision="fp16")

debug_launcher

accelerate.debug_launcher

< >

( function args = () num_processes = 2 )

参数

  • function (Callable) — 要执行的训练函数。
  • args (Tuple) — 传递给函数的参数元组(它将接收 `*args`)。
  • num_processes (int, optional, 默认为 2) — 用于训练的进程数。

为了调试目的,在 CPU 上使用多个进程启动训练函数。

此函数用于内部测试和调试,不适用于实际训练。它将只使用 CPU。

< > 在 GitHub 上更新