Accelerate documentation
Обработчики аргументов Kwargs
Обработчики аргументов Kwargs
Следующие объекты можно передать в основной Accelerator, чтобы настроить создание некоторых объектов PyTorch, связанных с распределённым обучением или смешанной точностью.
AutocastKwargs
класс accelerate.AutocastKwargs
< source >( enabled: bool = Truecache_enabled: bool | None = None )
Используйте этот объект в вашем 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. Подробности о каждом аргументе см. в документации этого обёртывающего класса.
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) — Параметр расписания для профилировщика. Доступные ключи: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 для настройки инициализации профилировщика. Подробности о каждом аргументе см. в документации этого context manager.
Пример:
from accelerate import Accelerator
from accelerate.utils import ProfileKwargs
kwargs = ProfileKwargs(activities=["cpu", "cuda"])
accelerator = Accelerator(kwargs_handlers=[kwargs])build
< source >( ) → torch.profiler.profile
Возвращает
torch.profiler.profile
Объект профилировщика.
Создайте объект профайлера с текущей конфигурацией.
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.
Возвращает словарь, содержащий атрибуты со значениями, отличными от значений по умолчанию для этого класса.