Accelerate documentation
Kwargs 处理器
Kwargs 处理器
以下对象可以传递给主 Accelerator,以自定义与分布式训练或混合精度相关的某些 PyTorch 对象的创建方式。
AutocastKwargs
在您的 Accelerator 中使用此对象,以自定义 torch.autocast 的行为。有关每个参数的更多信息,请参阅此 上下文管理器 的文档。
DistributedDataParallelKwargs
类 accelerate.DistributedDataParallelKwargs
< source >( 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 的文档。
ProfileKwargs
类 accelerate.ProfileKwargs
< source >( 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])使用当前配置构建一个性能分析器对象。
GradScalerKwargs
类 accelerate.GradScalerKwargs
< source >( 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 的文档。
InitProcessGroupKwargs
类 accelerate.InitProcessGroupKwargs
< source >( backend: str | None = 'nccl'init_method: str | None = Nonetimeout: datetime.timedelta | None = None )
在您的 Accelerator 中使用此对象,以自定义分布式进程的初始化。有关每个参数的更多信息,请参阅此 方法 的文档。
注意:如果将 timeout 设置为 None,则默认值将基于 backend 的设置而定。
KwargsHandler
实现 to_kwargs() 方法的内部混入类,用于 dataclass。
返回一个字典,其中包含与该类默认值不同的属性及其值。