Accelerate 文档
Kwargs 处理器
并获得增强的文档体验
开始使用
Kwargs 处理器
以下对象可以传递给主 Accelerator,以自定义与分布式训练或混合精度相关的 PyTorch 对象的创建方式。
AutocastKwargs
在您的 Accelerator 中使用此对象来自定义 torch.autocast
的行为。有关每个参数的更多信息,请参阅此上下文管理器的文档。
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 及更高版本中可用。
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
) — 用于性能分析器的调度选项。可用的键有wait
、warmup
、active
、repeat
和skip_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])
使用当前配置构建一个性能分析器对象。
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.GradScaler
或 torch.cuda.amp.GradScaler
。有关每个参数的更多信息,请参阅此scaler的文档。
`torch.cuda.amp.GradScaler` 仅在 PyTorch 1.5.0 及更高版本中可用,而 `torch.amp.GradScaler` 仅在 PyTorch 2.4.0及更高版本中可用。
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` 的设置。
KwargsHandler
为数据类实现 `to_kwargs()` 方法的内部混合类。
返回一个字典,其中包含值与该类默认值不同的属性。