Accelerate documentation

Kwargs 处理器

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.15.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kwargs 处理器

以下对象可以传递给主 Accelerator,以自定义与分布式训练或混合精度相关的某些 PyTorch 对象的创建方式。

AutocastKwargs

类 accelerate.AutocastKwargs

< >

( enabled: bool = Truecache_enabled: bool | None = None )

在您的 Accelerator 中使用此对象,以自定义 torch.autocast 的行为。有关每个参数的更多信息,请参阅此 上下文管理器 的文档。

示例:

from accelerate import Accelerator
from accelerate.utils import AutocastKwargs

kwargs = AutocastKwargs(cache_enabled=True)
accelerator = Accelerator(kwargs_handlers=[kwargs])

DistributedDataParallelKwargs

类 accelerate.DistributedDataParallelKwargs

< >

( dim: int = 0broadcast_buffers: bool = Truebucket_cap_mb: int = 25find_unused_parameters: bool = Falsecheck_reduction: bool = Falsegradient_as_bucket_view: bool = Falsestatic_graph: bool = Falsecomm_hook: DDPCommunicationHookType = <DDPCommunicationHookType.NO: 'no'>comm_wrapper: typing.Literal[<DDPCommunicationHookType.NO: 'no'>, <DDPCommunicationHookType.FP16: 'fp16'>, <DDPCommunicationHookType.BF16: 'bf16'>] = <DDPCommunicationHookType.NO: 'no'>comm_state_option: dict = <factory> )

在您的 Accelerator 中使用此对象,以自定义模型如何被 torch.nn.parallel.DistributedDataParallel 包装。有关每个参数的更多信息,请参阅此 wrapper 的文档。

示例:

from accelerate import Accelerator
from accelerate.utils import DistributedDataParallelKwargs

kwargs = DistributedDataParallelKwargs(find_unused_parameters=True)
accelerator = Accelerator(kwargs_handlers=[kwargs])

ProfileKwargs

类 accelerate.ProfileKwargs

< >

( activities: list[typing.Literal['cpu', 'xpu', 'mtia', 'cuda', 'hpu']] | None = Noneschedule_option: dict[str, int] | None = Noneon_trace_ready: typing.Callable | None = Nonerecord_shapes: bool = Falseprofile_memory: bool = Falsewith_stack: bool = Falsewith_flops: bool = Falsewith_modules: bool = Falseoutput_trace_dir: str | None = None )

参数

  • activities (List[str],可选,默认为 None) — 用于性能分析的活动组列表。必须是 "cpu"、"xpu"、"mtia"、“hpu” 或 "cuda" 之一。
  • schedule_option (Dict[str, int], 可选,默认为 None) — 用于 profiler 的调度选项。可用的键包括 wait、warmup、active、repeat 和 skip_first。profiler 将跳过前 skip_first 个步骤,然后等待 wait 个步骤,接着对接下来的 warmup 个步骤进行 预热,再对接下来的 active 个步骤进行活动记录,然后从 wait 个步骤开始重复该循环。可选的循环次数由 repeat 参数指定,值为零表示循环将持续进行,直到 profiling 结束。
  • on_trace_ready (Callable,可选,默认为 None) — 在性能分析过程中,当 schedule 在每个步骤返回 ProfilerAction.RECORD_AND_SAVE 时调用的 Callable。
  • record_shapes (bool,可选,默认为 False) — 保存算子输入形状的信息。
  • profile_memory (bool,可选,默认为 False) — 跟踪张量内存的分配/释放
  • with_stack (bool,可选,默认为 False) — 记录操作的源信息(文件和行号)。
  • with_flops (bool,可选,默认为 False) — 使用公式估算特定算子的 FLOPS
  • with_modules (bool,可选,默认为 False) — 记录与 op 调用栈对应的模块层级(包括函数名称)。
  • output_trace_dir (str, 可选,默认为 None) — 以 Chrome JSON 格式导出收集到的 trace。Chrome 使用 ‘chrome://tracing’ 查看 json 文件。默认为 None,表示性能分析不会存储 json 文件。

在您的 Accelerator 中使用此对象来自定义 profiler 的初始化。有关每个参数的更多信息,请参阅此 context manager 的文档。

示例:

from accelerate import Accelerator
from accelerate.utils import ProfileKwargs

kwargs = ProfileKwargs(activities=["cpu", "cuda"])
accelerator = Accelerator(kwargs_handlers=[kwargs])

构建

< >

( ) → torch.profiler.profile

返回值

torch.profiler.profile

分析器对象。

使用当前配置构建一个性能分析器对象。

GradScalerKwargs

类 accelerate.GradScalerKwargs

< >

( init_scale: float = 65536.0growth_factor: float = 2.0backoff_factor: float = 0.5growth_interval: int = 2000enabled: bool = True )

在您的 Accelerator 中使用此对象来自定义混合精度的行为,特别是如何创建所使用的 torch.amp.GradScaler 或 torch.cuda.amp.GradScaler。有关每个参数的更多信息,请参阅此 scaler 的文档。

示例:

from accelerate import Accelerator
from accelerate.utils import GradScalerKwargs

kwargs = GradScalerKwargs(backoff_factor=0.25)
accelerator = Accelerator(kwargs_handlers=[kwargs])

InitProcessGroupKwargs

类 accelerate.InitProcessGroupKwargs

< >

( backend: str | None = 'nccl'init_method: str | None = Nonetimeout: datetime.timedelta | None = None )

在您的 Accelerator 中使用此对象,以自定义分布式进程的初始化。有关每个参数的更多信息,请参阅此 方法 的文档。

注意:如果将 timeout 设置为 None,则默认值将基于 backend 的设置而定。

from datetime import timedelta
from accelerate import Accelerator
from accelerate.utils import InitProcessGroupKwargs

kwargs = InitProcessGroupKwargs(timeout=timedelta(seconds=800))
accelerator = Accelerator(kwargs_handlers=[kwargs])

KwargsHandler

类 accelerate.utils.KwargsHandler

< >

( )

实现 to_kwargs() 方法的内部混入类,用于 dataclass。

to_kwargs

< >

( )

返回一个字典,其中包含与该类默认值不同的属性及其值。

Update on GitHub