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) — 用于训练的进程数。如果在 Colab/Kaggle 中有 TPU 可用,则默认为 8,否则默认为可用的 GPU 数量。
  • mixed_precision (str, optional, defaults to "no") — 如果为 fp16bf16,将在多 GPU 上使用混合精度训练。
  • use_port (str, optional, defaults to "29500") — 用于在启动多 GPU 训练时在进程之间进行通信的端口。
  • master_addr (str, optional, defaults to "127.0.0.1") — 用于进程间通信的地址。
  • node_rank (int, optional, defaults to 0) — 当前节点的排名。
  • num_nodes (int, optional, defaults to 1) — 用于训练的节点数。
  • rdzv_backend (str, optional, defaults to "static") — 要使用的 rendezvous 方法,例如 ‘static’(默认)或 ‘c10d’。
  • rdzv_endpoint (str, optional, defaults to "") — rdzv 同步存储的端点。
  • rdzv_conf (Dict, optional, defaults to None) — 额外的 rendezvous 配置。
  • rdzv_id (str, optional, defaults to "none") — 作业的唯一运行 ID。
  • max_restarts (int, 可选, 默认为 0) — 弹性代理在工作进程失败前将执行的最大重启次数。
  • monitor_interval (float, 可选, 默认为 0.1) — 弹性代理用于监控工作进程的时间间隔,以秒为单位。
  • log_line_prefix_template (str, 可选, 默认为 None) — 弹性启动日志记录的前缀模板。 从 PyTorch 2.2.0 版本开始可用。

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

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

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

示例

# Assume this is defined in a Jupyter Notebook on an instance with two GPUs
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, 可选, 默认为 2) — 用于训练的进程数。

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

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

< > 在 GitHub 上更新