Accelerate 文档

Kwargs 处理器

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Kwargs 处理器

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

AutocastKwargs

class accelerate.AutocastKwargs

< >

( enabled: bool = True cache_enabled: bool = None )

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

示例

from accelerate import Accelerator
from accelerate.utils import AutocastKwargs

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

DistributedDataParallelKwargs

class accelerate.DistributedDataParallelKwargs

< >

( dim: int = 0 broadcast_buffers: bool = True bucket_cap_mb: int = 25 find_unused_parameters: bool = False check_reduction: bool = False gradient_as_bucket_view: bool = False static_graph: bool = False comm_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` 中。有关每个参数的更多信息,请参阅此包装器的文档。

`gradient_as_bucket_view` 仅在 PyTorch 1.7.0及更高版本中可用。

`static_graph` 仅在 PyTorch 1.11.0 及更高版本中可用。

示例

from accelerate import Accelerator
from accelerate.utils import DistributedDataParallelKwargs

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

FP8RecipeKwargs

class accelerate.utils.FP8RecipeKwargs

< >

( opt_level: typing.Literal['O1', 'O2'] = None use_autocast_during_eval: bool = None margin: int = None interval: int = None fp8_format: typing.Literal['HYBRID', 'E4M3', 'E5M2'] = None amax_history_len: int = None amax_compute_algo: typing.Literal['max', 'most_recent'] = None override_linear_precision: tuple = None backend: typing.Literal['MSAMP', 'TE'] = None )

已弃用。请改用适当的 FP8 配方 kwargs 类,例如 `TERecipeKwargs` 或 `MSAMPRecipeKwargs`。

ProfileKwargs

class accelerate.ProfileKwargs

< >

( activities: typing.Optional[list[typing.Literal['cpu', 'xpu', 'mtia', 'cuda', 'hpu']]] = None schedule_option: typing.Optional[dict[str, int]] = None on_trace_ready: typing.Optional[typing.Callable] = None record_shapes: bool = False profile_memory: bool = False with_stack: bool = False with_flops: bool = False with_modules: bool = False output_trace_dir: typing.Optional[str] = None )

参数

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

在您的 Accelerator 中使用此对象来自定义性能分析器的初始化。有关每个参数的更多信息,请参阅此上下文管理器的文档。

`torch.profiler` 仅在 PyTorch 1.8.1及更高版本中可用。

示例

from accelerate import Accelerator
from accelerate.utils import ProfileKwargs

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

build

< >

( ) torch.profiler.profile

返回

返回类型:torch.profiler.profile

性能分析器对象。

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

GradScalerKwargs

class accelerate.GradScalerKwargs

< >

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

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

`torch.cuda.amp.GradScaler` 仅在 PyTorch 1.5.0 及更高版本中可用,而 `torch.amp.GradScaler` 仅在 PyTorch 2.4.0及更高版本中可用。

示例

from accelerate import Accelerator
from accelerate.utils import GradScalerKwargs

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

InitProcessGroupKwargs

class accelerate.InitProcessGroupKwargs

< >

( backend: typing.Optional[str] = 'nccl' init_method: typing.Optional[str] = None timeout: typing.Optional[datetime.timedelta] = 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

class accelerate.utils.KwargsHandler

< >

( )

为数据类实现 `to_kwargs()` 方法的内部混合类。

to_kwargs

< >

( )

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

< > 在 GitHub 上更新