Accelerate documentation
Gestionnaires de kwargs
Gestionnaires de kwargs
Les objets suivants peuvent être passés à l'Accelerator principal pour personnaliser la création de certains objets PyTorch liés à l'entraînement distribué ou à la précision mixte.
AutocastKwargs
classe accelerate.AutocastKwargs
< source >( enabled: bool = Truecache_enabled: bool | None = None )
Utilisez cet objet dans votre Accelerator pour personnaliser le comportement de torch.autocast. Veuillez consulter la
documentation de ce context manager pour plus
d’informations sur chaque argument.
DistributedDataParallelKwargs
classe 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> )
Utilisez cet objet dans votre Accelerator pour personnaliser la manière dont votre modèle est encapsulé dans un torch.nn.parallel.DistributedDataParallel. Veuillez consulter la documentation de ce wrapper pour plus d’informations sur chaque argument.
ProfileKwargs
classe 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 )
Paramètres
- activities (
List[str], facultatif, par défautNone) — La liste des groupes d’activités à utiliser lors du profilage. Doit être l’un des éléments suivants :"cpu","xpu","mtia", “hpu” ou"cuda". - schedule_option (
Dict[str, int], facultatif, par défautNone) — L’option de planification à utiliser pour le profilage. Les clés disponibles sontwait,warmup,active,repeatetskip_first. Le profilateur ignore lesskip_firstpremières étapes, puis attend pendantwaitétapes, puis effectue le réchauffement pendant leswarmupétapes suivantes, puis enregistre activement pendant lesactiveétapes suivantes et répète ensuite le cycle en commençant parwaitétapes. Le nombre facultatif de cycles est spécifié avec le paramètrerepeat; une valeur nulle signifie que les cycles se poursuivent jusqu’à la fin du profilage. - on_trace_ready (
Callable, facultatif, par défautNone) — Callable appelé à chaque étape lorsque le plan renvoieProfilerAction.RECORD_AND_SAVEpendant le profilage. - record_shapes (
bool, facultatif, par défautFalse) — Enregistre les informations relatives aux formes des entrées des opérateurs. - profile_memory (
bool, facultatif, par défautFalse) — Suivre l'allocation/désallocation de la mémoire des tenseurs - with_stack (
bool, facultatif, par défautFalse) — Enregistre les informations d’origine (fichier et numéro de ligne) des opérations. - with_flops (
bool, facultatif, par défautFalse) — Utilise une formule pour estimer les FLOPS des opérateurs spécifiques - with_modules (
bool, facultatif, par défautFalse) — Enregistre la hiérarchie des modules (y compris les noms de fonctions) correspondant à la pile d’appels de l’op. - output_trace_dir (
str, facultatif, par défautNone) — Exporte la trace collectée au format JSON Chrome. Chrome utilise la vue ‘chrome://tracing’ pour afficher le fichier json. La valeur par défaut est None, ce qui signifie que le profilage n’enregistre pas de fichiers json.
Utilisez cet objet dans votre Accelerator pour personnaliser l’initialisation du profiler. Veuillez consulter la documentation de ce context manager pour plus d’informations sur chaque argument.
Exemple :
from accelerate import Accelerator
from accelerate.utils import ProfileKwargs
kwargs = ProfileKwargs(activities=["cpu", "cuda"])
accelerator = Accelerator(kwargs_handlers=[kwargs])Construire un objet de profilage avec la configuration actuelle.
GradScalerKwargs
classe accelerate.GradScalerKwargs
< source >( init_scale: float = 65536.0growth_factor: float = 2.0backoff_factor: float = 0.5growth_interval: int = 2000enabled: bool = True )
Utilisez cet objet dans votre Accelerator pour personnaliser le comportement de la précision mixte, en particulier la manière dont le torch.amp.GradScaler ou le torch.cuda.amp.GradScaler utilisé est créé. Veuillez consulter la documentation de ce scaler pour plus d’informations sur chaque argument.
InitProcessGroupKwargs
classe accelerate.InitProcessGroupKwargs
< source >( backend: str | None = 'nccl'init_method: str | None = Nonetimeout: datetime.timedelta | None = None )
Utilisez cet objet dans votre Accelerator pour personnaliser l’initialisation des processus distribués. Veuillez consulter la documentation de cette méthode pour plus d’informations sur chaque argument.
Note : Si timeout est défini sur None, la valeur par défaut sera basée sur la configuration de backend.
KwargsHandler
Mixin interne qui implémente une méthode to_kwargs() pour un dataclass.
Retourne un dictionnaire contenant les attributs dont les valeurs diffèrent des valeurs par défaut de cette classe.