Accelerate documentation
La ligne de commande
La ligne de commande
Voici la liste de toutes les commandes disponibles de 🤗 Accelerate avec leurs paramètres
accelerate config
Commande :
accelerate config ou accelerate-config
Lance une série de prompts pour créer et enregistrer un fichier de configuration default_config.yml pour votre système d’entraînement. Doit toujours être exécuté en premier sur votre machine.
Utilisation :
accelerate config [arguments]
Arguments facultatifs :
--config_file CONFIG_FILE(str) — Le chemin à utiliser pour stocker le fichier de configuration. Par défaut, il s’agit d’un fichier nommé default_config.yaml dans l’emplacement du cache, qui correspond au contenu de la variable d’environnementHF_HOMEsuivi de ‘accelerate’, ou, si cette variable d’environnement n’est pas définie, à votre répertoire de cache (~/.cacheou le contenu deXDG_CACHE_HOME) suivi dehuggingface.-h,--help(bool) — Affiche un message d'aide et quitte
accelerate config default
Commande :
accelerate config default ou accelerate-config default
Créez un fichier de configuration par défaut pour Accelerate avec seulement quelques drapeaux définis.
Utilisation :
accelerate config default [arguments]
Arguments facultatifs :
--config_file CONFIG_FILE(str) — Le chemin à utiliser pour stocker le fichier de configuration. Par défaut, il s’agit d’un fichier nommé default_config.yaml dans l’emplacement du cache, qui correspond au contenu de la variable d’environnementHF_HOMEsuivi de ‘accelerate’, ou, si cette variable d’environnement n’est pas définie, à votre répertoire de cache (~/.cacheou le contenu deXDG_CACHE_HOME) suivi dehuggingface.-h,--help(bool) — Affiche un message d'aide et quitte--mixed_precision {no,fp16,bf16}(str) — Indique s'il faut utiliser l'entraînement en précision mixte. Choisissez entre l'entraînement en FP16 et en BF16 (bfloat16). L'entraînement en BF16 n'est pris en charge que sur les GPU Nvidia Ampere et PyTorch 1.10 ou ultérieur.
accelerate config update
Commande :
accelerate config update ou accelerate-config update
Mettre à jour un fichier de configuration existant avec les valeurs par défaut les plus récentes tout en conservant l'ancienne configuration.
Utilisation :
accelerate config update [arguments]
Arguments facultatifs :
--config_file CONFIG_FILE(str) — Le chemin du fichier de configuration à mettre à jour. Par défaut, il s’agit d’un fichier nommé default_config.yaml situé dans l’emplacement du cache, c’est-à-dire le contenu de la variable d’environnementHF_HOMEsuivi de ‘accelerate’, ou, à défaut de cette variable, votre répertoire de cache (~/.cacheou le contenu deXDG_CACHE_HOME) suivi dehuggingface.-h,--help(bool) — Affiche un message d'aide et quitte
accelerate env
Commande :
accelerate env ou accelerate-env ou python -m accelerate.commands.env
Affiche le contenu du fichier de configuration 🤗 Accelerate transmis. Doit toujours être utilisé lors de l’ouverture d’un ticket sur le dépôt GitHub.
Utilisation :
accelerate env [arguments]Arguments facultatifs :
--config_file CONFIG_FILE(str) — Le chemin à utiliser pour stocker le fichier de configuration. Par défaut, il s’agit d’un fichier nommé default_config.yaml dans l’emplacement du cache, qui correspond au contenu de la variable d’environnementHF_HOMEsuivi de ‘accelerate’, ou, si cette variable d’environnement n’est pas définie, à votre répertoire de cache (~/.cacheou le contenu deXDG_CACHE_HOME) suivi dehuggingface.-h,--help(bool) — Affiche un message d'aide et quitte
accelerate launch
Commande :
accelerate launch ou accelerate-launch ou python -m accelerate.commands.launch
Lance un script spécifié sur un système distribué avec les paramètres appropriés.
Utilisation :
accelerate launch [arguments] {training_script} --{training_script-argument-1} --{training_script-argument-2} ...Arguments positionnels :
{training_script}— Le chemin complet du script à lancer en parallèle--{training_script-argument-1}— Arguments du script d’entraînement
Arguments facultatifs :
-h,--help(bool) — Affiche un message d'aide et quitte--config_file CONFIG_FILE(str)— Le fichier de configuration à utiliser pour les valeurs par défaut dans le script de lancement.-m,--module(bool) — Modifie chaque processus pour qu’il interprète le script de lancement comme un module Python, en exécutant avec le même comportement que ‘python -m’.--no_python(bool) — Ignore l’ajout de ‘python’ avant le script d’entraînement et l’exécute directement. Utile lorsque le script n’est pas un script Python.--debug(bool) — Indique s'il faut afficher la trace de pile de torch.distributed en cas d'échec.-q,--quiet(bool) — Supprime les erreurs des sous-processus de la pile d’appel de lancement pour n’afficher que les traces d’erreurs pertinentes. (Applicable uniquement aux configurations DeepSpeed et mono-processus).
Le reste de ces arguments est configuré via accelerate config et leurs valeurs sont lues depuis le --config_file spécifié (ou la configuration par défaut). Ils peuvent également être passés manuellement.
Arguments de sélection du matériel :
--cpu(bool) — Indique s'il faut forcer l'entraînement sur le CPU.--multi_gpu(bool) — Indique s'il faut lancer une formation distribuée sur GPU.--tpu(bool) — Indique s'il faut lancer une formation TPU.
Arguments de sélection des ressources :
Les arguments suivants sont utiles pour affiner la manière dont le matériel disponible doit être utilisé
--mixed_precision {no,fp16,bf16,fp8}(str) — Indique s'il faut utiliser l'entraînement en précision mixte. Choisissez entre l'entraînement en FP16 et en BF16 (bfloat16). L'entraînement en BF16 n'est pris en charge que sur les GPU Nvidia Ampere et PyTorch 1.10 ou ultérieur.--num_processes NUM_PROCESSES(int) — Le nombre total de processus à lancer en parallèle.--num_machines NUM_MACHINES(int) — Le nombre total de machines utilisées pour cette formation.--num_cpu_threads_per_process NUM_CPU_THREADS_PER_PROCESS(int) — Le nombre de threads CPU par processus. Peut être ajusté pour des performances optimales.--enable_cpu_affinity(bool) — Indique si l'affinité et l'équilibrage du CPU doivent être activés. Actuellement pris en charge uniquement sur le matériel NVIDIA.
Arguments du paradigme d'entraînement :
Les arguments suivants sont utiles pour sélectionner le paradigme d'entraînement à utiliser.
--use_deepspeed(bool) — Indique s'il faut utiliser DeepSpeed pour l'entraînement.--use_fsdp(bool) — Indique s'il faut utiliser FullyShardedDataParallel pour l'entraînement.--use_megatron_lm(bool) — Indique s'il faut utiliser Megatron-LM pour l'entraînement.
Arguments GPU distribués :
Les arguments suivants ne sont utiles que lorsque multi_gpu est passé ou que l’entraînement multi-GPU est configuré via accelerate config :
--gpu_ids(str) — Liste des GPU (par identifiant) à utiliser pour l'entraînement sur cette machine, séparés par des virgules--same_network(bool) — Indique si toutes les machines utilisées pour l’entraînement multinœud se trouvent sur le même réseau local.--machine_rank(int) — Le rang de la machine sur laquelle ce script est lancé.--main_process_ip(str) — L'adresse IP de la machine de rang 0.--main_process_port(int) — Le port à utiliser pour communiquer avec la machine de rang 0.-t,--tee(str) — Enregistre les flux std dans un fichier journal et les affiche également sur la console.--log_dir(str) — Répertoire de base à utiliser pour les fichiers journaux lors de l'utilisation de torchrun/torch.distributed.run comme lanceur. À utiliser avec —tee pour rediriger les flux standard vers les fichiers journaux.--role(str) — Rôle défini par l'utilisateur pour les workers.--rdzv_backend(str) — Méthode de rendez-vous à utiliser, par exemple ‘static’ (par défaut) ou ‘c10d’--rdzv_conf(str) — Configuration supplémentaire du rendez-vous (<key1>=<value1>,<key2>=<value2>,…).--max_restarts(int) — Nombre maximal de redémarrages du groupe de workers avant échec.--monitor_interval(int) — Intervalle, en secondes, pour surveiller l'état des workers.
Arguments TPU :
Les arguments suivants ne sont utiles que lorsque tpu est passé ou que l’entraînement sur TPU est configuré via accelerate config :
--tpu_cluster(bool) — Indique s'il faut utiliser un pod TPU GCP pour l'entraînement.--tpu_use_sudo(bool) — Indique s'il faut utilisersudolors de l'exécution du script d'entraînement TPU dans chaque pod.--vm(str) — Liste de noms d’instances Compute VM individuelles. Si non fourni, nous supposons l’utilisation de groupes d’instances. Pour les pods TPU.--env(str) — Liste des variables d’environnement à définir sur les instances Compute VM. Pour les pods TPU.--main_training_function(str) — Le nom de la fonction principale à exécuter dans votre script (uniquement pour l’entraînement sur TPU).--downcast_bf16(bool) — Indique si, lors de l'utilisation de la précision bf16 sur des TPU, les tenseurs float et double sont tous deux convertis en bfloat16 ou si les tenseurs double restent en float32.
Arguments DeepSpeed :
Les arguments suivants ne sont utiles que lorsque use_deepspeed est passé ou que deepspeed est configuré via accelerate config :
--deepspeed_config_file(str) — Fichier de configuration DeepSpeed.--zero_stage(int) — Étape d’optimisation ZeRO de DeepSpeed.--offload_optimizer_device(str) — Détermine l’emplacement (none|cpu|nvme) où décharger les états de l’optimiseur.--offload_param_device(str) — Détermine l’emplacement (none|cpu|nvme) où décharger les paramètres.--offload_optimizer_nvme_path(str) — Détermine le chemin Nvme pour décharger les états de l'optimiseur.--gradient_accumulation_steps(int) — Nombre de gradient_accumulation_steps utilisés dans votre script d'entraînement.--gradient_clipping(float) — Valeur de la limitation des gradients utilisée dans votre script d'entraînement.--zero3_init_flag(str) — Détermine s'il faut activer (true|false)deepspeed.zero.Initpour la construction de modèles massifs. Applicable uniquement avec DeepSpeed ZeRO Stage-3.--zero3_save_16bit_model(str) — Détermine s'il faut (true|false) enregistrer les poids du modèle en 16 bits lors de l'utilisation de ZeRO Stage-3. Applicable uniquement avec DeepSpeed ZeRO Stage-3.--deepspeed_hostfile(str) — Fichier d’hôtes DeepSpeed pour configurer les ressources de calcul multi-nœuds.--deepspeed_exclusion_filter(str) — Chaîne de filtre d'exclusion DeepSpeed lors de l'utilisation d'une configuration multi-nœuds.--deepspeed_inclusion_filter(str) — Chaîne de filtre d'inclusion DeepSpeed lors de l'utilisation d'une configuration multi-nœuds.--deepspeed_multinode_launcher(str) — Lanceur multi-nœuds DeepSpeed à utiliser.--deepspeed_moe_layer_cls_names(str) — liste séparée par des virgules des noms de classes de couches MoE de transformer (sensible à la casse) à encapsuler, par exempleMixtralSparseMoeBlockQwen2MoeSparseMoeBlock,JetMoEAttention,JetMoEBlock
Arguments de parallélisme de données entièrement fragmentées :
Les arguments suivants ne sont utiles que lorsque use_fsdp est passé ou que le Fully Sharded Data Parallelism est configuré via accelerate config :
--fsdp_offload_params(str) — Détermine s'il faut (true|false) décharger les paramètres et les gradients sur le CPU.--fsdp_min_num_params(int) — Nombre minimal de paramètres de FSDP pour l’Auto Wrapping par défaut.--fsdp_sharding_strategy(int) — Stratégie de sharding de FSDP.--fsdp_auto_wrap_policy(str) — Politique d’auto-wrap de FSDP.--fsdp_transformer_layer_cls_to_wrap(str) — Nom de la classe de couche Transformer (sensible à la casse) à envelopper, par exempleBertLayer,GPTJBlock,T5Block…--fsdp_backward_prefetch_policy(str) — Politique de préchargement en arrière (backward) de FSDP.--fsdp_state_dict_type(str) — Type de dictionnaire d'état de FSDP.--fsdp_forward_prefetch(str) — Préchargement avant FSDP.--fsdp_use_orig_params(str) — Si True, autorise un mélange non uniforme derequires_gradau sein d'une unité FSDP.--fsdp_cpu_ram_efficient_loading(str) — Si true, seul le premier processus charge le checkpoint du modèle préentraîné, tandis que tous les autres processus ont des poids vides. Lors de l’utilisation de cette option,--fsdp_sync_module_statesdoit être True.--fsdp_sync_module_states(str) — Si la valeur est true, chaque unité FSDP enveloppée individuellement diffusera les paramètres du module depuis le rang 0.--fsdp_activation_checkpointing(bool) — Détermine si les activations intermédiaires sont libérées pendant la passe avant et si un point de contrôle est laissé en guise de marqueur
Arguments de Megatron-LM :
Les arguments suivants ne sont utiles que lorsque use_megatron_lm est passé ou que Megatron-LM est configuré via accelerate config :
--megatron_lm_tp_degree(“) — Degré de parallélisme de tenseurs (TP) de Megatron-LM.--megatron_lm_pp_degree(“) — Degré du parallélisme de pipeline (PP) de Megatron-LM.--megatron_lm_num_micro_batches(“) — Nombre de micro-lots de Megatron-LM lorsque le degré de PP > 1.--megatron_lm_sequence_parallelism(“) — Détermine s'il faut activer le Sequence Parallelism (true|false) lorsque le degré de TP est > 1.--megatron_lm_recompute_activations(“) — Détermine s'il faut activer la recomputation sélective des activations (true|false).--megatron_lm_use_distributed_optimizer(“) — Détermine s'il faut (true|false) utiliser un optimiseur distribué qui répartit l'état de l'optimiseur et les gradients entre les rangs de parallélisme de données (DP).--megatron_lm_gradient_clipping(«) — Valeur de l’aplatissement du gradient de Megatron-LM basée sur la norme L2 globale (0 pour désactiver).
Arguments FP8 :
--fp8_backend(str) — Choisissez un backend pour l'entraînement avec FP8 (aooute)--fp8_use_autocast_during_eval(bool) — Indique s'il faut utiliser l'autocast FP8 en mode d'évaluation (utile uniquement si--fp8_backend=teest passé). Des métriques généralement meilleures sont obtenues lorsque ce paramètre n'est pas passé.--fp8_margin(int) — La marge à utiliser pour le mise à l'échelle des gradients (utile uniquement lorsque--fp8_backend=teest passé).--fp8_interval(int) — Intervalle à utiliser pour la fréquence de recalcul du facteur d'échelle (utile uniquement lorsque--fp8_backend=teest passé).--fp8_format(str) — Le format à utiliser pour la recette FP8 (utile uniquement lorsque--fp8_backend=teest passé).--fp8_amax_history_len(int) — La longueur de l’historique à utiliser pour le calcul du facteur d’échelle (utile uniquement lorsque--fp8_backend=teest passé).--fp8_amax_compute_algo(str) — L'algorithme à utiliser pour le calcul du facteur d'échelle. (utile uniquement lorsque--fp8_backend=teest passé).--fp8_override_linear_precision(Tuple[bool, bool, bool]) — Indique s'il faut exécuter les GEMM defprop,dgradetwgraden plus haute précision.
Arguments AWS SageMaker :
Les arguments suivants ne sont utiles que lors de l’entraînement sur SageMaker
--aws_access_key_id AWS_ACCESS_KEY_ID(str) — L’AWS_ACCESS_KEY_ID utilisé pour lancer le job d’entraînement Amazon SageMaker--aws_secret_access_key AWS_SECRET_ACCESS_KEY(str) — La clé AWS_SECRET_ACCESS_KEY utilisée pour lancer le job d’entraînement Amazon SageMaker
accelerate estimate-memory
Commande :
accelerate estimate-memory ou accelerate-estimate-memory ou python -m accelerate.commands.estimate
Estime la vRAM totale nécessaire pour charger un modèle spécifique hébergé sur le Hub, avec une estimation pour l’entraînement. Nécessite l’installation de huggingface_hub.
Lors de l'inférence, il est généralement recommandé d'ajouter ≤20 % au résultat en tant qu'allocation globale comme indiqué ici. Des estimations plus exhaustives seront disponibles à l'avenir et seront automatiquement intégrées au calcul.
Utilisation :
accelerate estimate-memory {MODEL_NAME} --library_name {LIBRARY_NAME} --dtypes {dtype_1} {dtype_2} ...Arguments obligatoires :
MODEL_NAME(str)— Le nom du modèle sur le Hugging Face Hub
Arguments facultatifs :
--library_name {timm,transformers}(str) — La bibliothèque avec laquelle le modèle a une intégration, telle quetransformers, nécessaire uniquement si ces informations ne sont pas stockées sur le Hub--dtypes {float32,float16,int8,int4}([{float32,float16,int8,int4} ...]) — Les dtypes à utiliser pour le modèle, doivent être un (ou plusieurs) parmifloat32,float16,int8etint4--trust_remote_code(bool) — Indique s'il faut autoriser les modèles personnalisés définis sur le Hub dans leurs propres fichiers de modélisation. Cette option ne doit être transmise que pour des dépôts de confiance dont vous avez lu le code, car elle exécutera le code présent sur le Hub sur votre machine locale.
accelerate tpu-config
accelerate tpu-config
Utilisation :
accelerate tpu-config [arguments]
Arguments facultatifs :
-h,--help(bool) — Affiche un message d'aide et quitte
Arguments de configuration :
Arguments qui peuvent être configurés via accelerate config.
--config_file(str) — Chemin du fichier de configuration à utiliser pour accelerate.--tpu_name(str) — Le nom du TPU à utiliser. S'il n'est pas spécifié, le TPU défini dans le fichier de configuration sera utilisé.--tpu_zone(str) — La zone du TPU à utiliser. Si elle n’est pas spécifiée, la zone indiquée dans le fichier de configuration sera utilisée.
Arguments TPU :
Les arguments pour les options ont été exécutés dans le TPU.
--command_file(str) — Le chemin vers le fichier contenant les commandes à exécuter sur le pod au démarrage.--command(str) — Une commande à exécuter sur le pod. Peut être passée plusieurs fois.--install_accelerate(bool) — Indique s'il faut installer accelerate sur le pod. Valeur par défaut : False.--accelerate_version(str) — La version d’accelerate à installer sur le pod. Si elle n’est pas spécifiée, la dernière version pypi est utilisée. Spécifiez ‘dev’ pour installer depuis GitHub.--debug(bool) — Si défini, affiche la commande qui serait exécutée au lieu de l’exécuter.
accelerate test
accelerate test ou accelerate-test
Exécute accelerate/test_utils/test_script.py pour vérifier que 🤗 Accelerate est correctement configuré sur votre système et qu'il fonctionne.
Utilisation :
accelerate test [arguments]Arguments facultatifs :
--config_file CONFIG_FILE(str) — Le chemin à utiliser pour stocker le fichier de configuration. Par défaut, il s’agit d’un fichier nommé default_config.yaml dans l’emplacement du cache, qui correspond au contenu de la variable d’environnementHF_HOMEsuivi de ‘accelerate’, ou, si cette variable d’environnement n’est pas définie, à votre répertoire de cache (~/.cacheou le contenu deXDG_CACHE_HOME) suivi dehuggingface.-h,--help(bool) — Affiche un message d'aide et quitte