启动器
用于在分布式进程上启动训练的函数。
notebook_launcher
accelerate.notebook_launcher
< 源代码 >( 函数 参数 = () 进程数 = None 混合精度 = 'no' 使用端口 = '29500' 主节点地址 = '127.0.0.1' 节点排名 = 0 节点数量 = 1 Rendezvous 后端 = 'static' Rendezvous 端点 = '' Rendezvous 配置 = None Rendezvous ID = 'none' 最大重启次数 = 0 监控间隔 = 0.1 日志行前缀模板 = None )
参数
- function (
Callable
) — 要执行的训练函数。如果它接受参数,则第一个参数应该是运行的进程索引。 - args (
Tuple
) — 传递给函数的参数元组(它将接收*args
)。 - num_processes (
int
, 可选) — 用于训练的进程数。如果 TPU 可用,则在 Colab/Kaggle 中默认为 8,否则默认为可用 GPU 的数量。 - mixed_precision (
str
, 可选,默认为"no"
) — 如果为fp16
或bf16
,则将在多 GPU 上使用混合精度训练。 - use_port (
str
, 可选,默认为"29500"
) — 启动多 GPU 训练时,用于进程间通信的端口。 - master_addr (
str
, 可选,默认为"127.0.0.1"
) — 用于进程间通信的地址。 - node_rank (
int
, 可选,默认为 0) — 当前节点的排名。 - rdzv_endpoint (
str
,可选,默认为""
) — rdzv 同步存储的端点。 - rdzv_conf (
Dict
,可选,默认为None
) — 额外的 rendezvous 配置。 - rdzv_id (
str
,可选,默认为"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"
将在真正启动之前运行测试,以确保没有进行任何此类调用。
debug_launcher
使用 CPU 上的多个进程启动训练函数以进行调试。
此函数用于内部测试和调试,但不适用于实际训练。它只会使用 CPU。