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. Подробности о каждом аргументе см. в документации этого обёртывающего класса.

Пример:

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) — Параметр расписания для профилировщика. Доступные ключи: 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

< >

( ) → 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