Accelerate documentation
La línea de comandos
La línea de comandos
A continuación se muestra una lista de todos los comandos disponibles de 🤗 Accelerate con sus parámetros
accelerate config
Comando:
accelerate config o accelerate-config
Inicia una serie de indicaciones para crear y guardar un archivo de configuración default_config.yml para tu sistema de entrenamiento. Debe ejecutarse siempre primero en tu máquina.
Uso:
accelerate config [arguments]
Argumentos opcionales:
--config_file CONFIG_FILE(str) — La ruta que se usará para almacenar el archivo de configuración. Por defecto, se usará un archivo llamado default_config.yaml en la ubicación de la caché, que es el contenido de la variable de entornoHF_HOMEcon el sufijo ‘accelerate’, o, si no tienes dicha variable de entorno, tu directorio de caché (~/.cacheo el contenido deXDG_CACHE_HOME) con el sufijohuggingface.-h,--help(bool) — Muestra un mensaje de ayuda y sale
accelerate config default
Comando:
accelerate config default o accelerate-config default
Cree un archivo de configuración predeterminado para Accelerate con solo algunas banderas establecidas.
Uso:
accelerate config default [arguments]
Argumentos opcionales:
--config_file CONFIG_FILE(str) — La ruta que se usará para almacenar el archivo de configuración. Por defecto, se usará un archivo llamado default_config.yaml en la ubicación de la caché, que es el contenido de la variable de entornoHF_HOMEcon el sufijo ‘accelerate’, o, si no tienes dicha variable de entorno, tu directorio de caché (~/.cacheo el contenido deXDG_CACHE_HOME) con el sufijohuggingface.-h,--help(bool) — Muestra un mensaje de ayuda y sale--mixed_precision {no,fp16,bf16}(str) — Si se debe usar o no el entrenamiento con precisión mixta. Elija entre el entrenamiento con FP16 y BF16 (bfloat16). El entrenamiento con BF16 solo se admite en GPUs Nvidia Ampere y PyTorch 1.10 o posterior.
accelerate config update
Comando:
accelerate config update o accelerate-config update
Actualice un archivo de configuración existente con los valores predeterminados más recientes, manteniendo la configuración anterior.
Uso:
accelerate config update [arguments]
Argumentos opcionales:
--config_file CONFIG_FILE(str) — La ruta al archivo de configuración que se actualizará. Por defecto, se usará un archivo llamado default_config.yaml en la ubicación de la caché, que es el contenido de la variable de entornoHF_HOMEcon el sufijo ‘accelerate’, o, si no tienes dicha variable de entorno, tu directorio de caché (~/.cacheo el contenido deXDG_CACHE_HOME) con el sufijohuggingface.-h,--help(bool) — Muestra un mensaje de ayuda y sale
accelerate env
Comando:
accelerate env o accelerate-env o python -m accelerate.commands.env
Muestra el contenido del archivo de configuración de 🤗 Accelerate pasado como argumento. Debe usarse siempre al abrir un problema en el repositorio de GitHub.
Uso:
accelerate env [arguments]Argumentos opcionales:
--config_file CONFIG_FILE(str) — La ruta que se usará para almacenar el archivo de configuración. Por defecto, se usará un archivo llamado default_config.yaml en la ubicación de la caché, que es el contenido de la variable de entornoHF_HOMEcon el sufijo ‘accelerate’, o, si no tienes dicha variable de entorno, tu directorio de caché (~/.cacheo el contenido deXDG_CACHE_HOME) con el sufijohuggingface.-h,--help(bool) — Muestra un mensaje de ayuda y sale
accelerate launch
Comando:
accelerate launch o accelerate-launch o python -m accelerate.commands.launch
Inicia un script especificado en un sistema distribuido con los parámetros adecuados.
Uso:
accelerate launch [arguments] {training_script} --{training_script-argument-1} --{training_script-argument-2} ...Argumentos posicionales:
{training_script}— La ruta completa del script que se lanzará en paralelo--{training_script-argument-1}— Argumentos del script de entrenamiento
Argumentos opcionales:
-h,--help(bool) — Muestra un mensaje de ayuda y sale--config_file CONFIG_FILE(str)— El archivo de configuración que se usará para los valores predeterminados en el script de lanzamiento.-m,--module(bool) — Cambia cada proceso para que interprete el script de lanzamiento como un módulo de Python, ejecutándolo con el mismo comportamiento que ‘python -m’.--no_python(bool) — Omite añadir ‘python’ al inicio del script de entrenamiento y lo ejecuta directamente. Útil cuando el script no es un script de Python.--debug(bool) — Si se debe imprimir la traza de la pila de torch.distributed cuando algo falla.-q,--quiet(bool) — Silencia los errores del subproceso de la pila de inicio para mostrar solo los trazados de errores relevantes. (Solo aplicable a configuraciones de DeepSpeed y de un solo proceso).
El resto de estos argumentos se configura a través de accelerate config y se leen desde el --config_file especificado (o la configuración predeterminada) para obtener sus valores. También se pueden pasar manualmente.
Argumentos de selección de hardware:
--cpu(bool) — Si se debe forzar el entrenamiento en la CPU.--multi_gpu(bool) — Si se debe iniciar un entrenamiento distribuido en GPU.--tpu(bool) — Indica si se debe iniciar un entrenamiento en TPU.
Argumentos de selección de recursos:
Los siguientes argumentos son útiles para ajustar cómo debe usarse el hardware disponible
--mixed_precision {no,fp16,bf16,fp8}(str) — Si se debe usar o no el entrenamiento con precisión mixta. Elija entre el entrenamiento con FP16 y BF16 (bfloat16). El entrenamiento con BF16 solo se admite en GPUs Nvidia Ampere y PyTorch 1.10 o posterior.--num_processes NUM_PROCESSES(int) — El número total de procesos que se lanzarán en paralelo.--num_machines NUM_MACHINES(int) — El número total de máquinas utilizadas en este entrenamiento.--num_cpu_threads_per_process NUM_CPU_THREADS_PER_PROCESS(int) — El número de hilos de CPU por proceso. Se puede ajustar para un rendimiento óptimo.--enable_cpu_affinity(bool) — Si se debe habilitar la afinidad y el equilibrio de CPU. Actualmente solo se admite en hardware de NVIDIA.
Argumentos del paradigma de entrenamiento:
Los siguientes argumentos son útiles para seleccionar qué paradigma de entrenamiento utilizar.
--use_deepspeed(bool) — Si se usa DeepSpeed para el entrenamiento.--use_fsdp(bool) — Si se usa FullyShardedDataParallel para el entrenamiento.--use_megatron_lm(bool) — Si se usa Megatron-LM para el entrenamiento.
Argumentos de GPU distribuida:
Los siguientes argumentos solo son útiles cuando se pasa multi_gpu o cuando el entrenamiento multi-GPU se configura a través de accelerate config:
--gpu_ids(str) — Qué GPUs (por id) deben usarse para el entrenamiento en esta máquina, como una lista separada por comas--same_network(bool) — Indica si todas las máquinas utilizadas para el entrenamiento multinodo se encuentran en la misma red local.--machine_rank(int) — El rango de la máquina en la que se lanza este script.--main_process_ip(str) — La dirección IP de la máquina de rank 0.--main_process_port(int) — El puerto que se usará para comunicarse con la máquina de rango 0.-t,--tee(str) — Redirige los flujos estándar a un archivo de registro y también a la consola.--log_dir(str) — Directorio base para usar en los archivos de registro al emplear torchrun/torch.distributed.run como lanzador. Úsese con —tee para redirigir la información de los flujos estándar a los archivos de registro.--role(str) — Rol definido por el usuario para los workers.--rdzv_backend(str) — El método de reunión a utilizar, como ‘static’ (el predeterminado) o ‘c10d’--rdzv_conf(str) — Configuración adicional de reunión (<key1>=<value1>,<key2>=<value2>,…).--max_restarts(int) — Número máximo de reinicios del grupo de workers antes de fallar.--monitor_interval(int) — Intervalo, en segundos, para monitorizar el estado de los workers.
Argumentos de TPU:
Los siguientes argumentos solo son útiles cuando se pasa tpu o cuando el entrenamiento en TPU se configura a través de accelerate config:
--tpu_cluster(bool) — Si se debe usar un pod de TPU de GCP para el entrenamiento.--tpu_use_sudo(bool) — Si se debe usarsudoal ejecutar el script de entrenamiento de TPU en cada pod.--vm(str) — Lista de nombres de instancias individuales de Compute VM. Si no se proporciona, se asume el uso de grupos de instancias. Para pods de TPU.--env(str) — Lista de variables de entorno para configurar en las instancias de Compute VM. Para pods de TPU.--main_training_function(str) — El nombre de la función principal que se ejecutará en su script (solo para entrenamiento en TPU).--downcast_bf16(bool) — Si se usa precisión bf16 en TPU, si tanto los tensores float como double se convierten a bfloat16 o si los tensores double se mantienen como float32.
Argumentos de DeepSpeed:
Los siguientes argumentos solo son útiles cuando se pasa use_deepspeed o deepspeed está configurado a través de accelerate config:
--deepspeed_config_file(str) — Archivo de configuración de DeepSpeed.--zero_stage(int) — Etapa de optimización ZeRO de DeepSpeed.--offload_optimizer_device(str) — Decide dónde (none|cpu|nvme) descargar los estados del optimizador.--offload_param_device(str) — Decide dónde (none|cpu|nvme) descargar los parámetros.--offload_optimizer_nvme_path(str) — Determina la ruta Nvme para descargar los estados del optimizador.--gradient_accumulation_steps(int) — Número de gradient_accumulation_steps utilizado en su script de entrenamiento.--gradient_clipping(float) — Valor de recorte de gradientes utilizado en su script de entrenamiento.--zero3_init_flag(str) — Decide si (true|false) se habilitadeepspeed.zero.Initpara construir modelos masivos. Solo aplicable con DeepSpeed ZeRO Stage-3.--zero3_save_16bit_model(str) — Decide si (true|false) se deben guardar los pesos del modelo de 16 bits al usar ZeRO Stage-3. Solo aplicable con DeepSpeed ZeRO Stage-3.--deepspeed_hostfile(str) — Hostfile de DeepSpeed para configurar recursos de cómputo multinodo.--deepspeed_exclusion_filter(str) — Cadena del filtro de exclusión de DeepSpeed al usar una configuración multinodo.--deepspeed_inclusion_filter(str) — Cadena de filtro de inclusión de DeepSpeed al usar una configuración multinodo.--deepspeed_multinode_launcher(str) — Lanzador multinodo de DeepSpeed a utilizar.--deepspeed_moe_layer_cls_names(str) — lista separada por comas de nombres de clases de capas MoE de transformer (distingue entre mayúsculas y minúsculas) para envolver, por ejemplo,MixtralSparseMoeBlockQwen2MoeSparseMoeBlock,JetMoEAttention,JetMoEBlock
Argumentos de Fully Sharded Data Parallelism:
Los siguientes argumentos solo son útiles cuando se pasa use_fsdp o cuando se configura Fully Sharded Data Parallelism a través de accelerate config:
--fsdp_offload_params(str) — Decide si (true|false) se descargan los parámetros y los gradientes a la CPU.--fsdp_min_num_params(int) — Número mínimo de parámetros de FSDP para el Auto Wrapping predeterminado.--fsdp_sharding_strategy(int) — Estrategia de particionamiento de FSDP.--fsdp_auto_wrap_policy(str) — Política de auto wrap de FSDP.--fsdp_transformer_layer_cls_to_wrap(str) — Nombre de la clase de capa de Transformer (distingue entre mayúsculas y minúsculas) que se debe envolver, por ejemplo,BertLayer,GPTJBlock,T5Block…--fsdp_backward_prefetch_policy(str) — Política de prefetch en la retropropagación de FSDP.--fsdp_state_dict_type(str) — Tipo de state dict de FSDP.--fsdp_forward_prefetch(str) — Prefetch de FSDP en la fase de forward.--fsdp_use_orig_params(str) — Si es True, permiterequires_gradno uniformes mezclados en una unidad de FSDP.--fsdp_cpu_ram_efficient_loading(str) — Si es true, solo el primer proceso carga el checkpoint del modelo preentrenado, mientras que todos los demás procesos tienen pesos vacíos. Al usar esto,--fsdp_sync_module_statesdebe ser True.--fsdp_sync_module_states(str) — Si es true, cada unidad FSDP envuelta individualmente difundirá los parámetros del módulo desde el rank 0.--fsdp_activation_checkpointing(bool) — Decide si las activaciones intermedias se liberan durante la pasada hacia adelante y se deja un punto de control como marcador de posición
Argumentos de Megatron-LM:
Los siguientes argumentos solo son útiles cuando se pasa use_megatron_lm o cuando Megatron-LM se configura a través de accelerate config:
--megatron_lm_tp_degree(“) — Grado de paralelismo de tensores (TP) de Megatron-LM.--megatron_lm_pp_degree(“) — Grado de paralelismo de pipeline (PP) de Megatron-LM.--megatron_lm_num_micro_batches(“) — Número de micro lotes de Megatron-LM cuando el grado de PP > 1.--megatron_lm_sequence_parallelism(“) — Decide si (true|false) se habilita Sequence Parallelism cuando el grado de TP > 1.--megatron_lm_recompute_activations(“) — Decide si (true|false) se habilita la recomputación selectiva de activaciones.--megatron_lm_use_distributed_optimizer(“) — Decide si (true|false) se debe usar un optimizador distribuido que fragmenta el estado del optimizador y los gradientes entre los rangos de paralelismo de datos (DP).--megatron_lm_gradient_clipping(“) — Valor de recorte de gradientes de Megatron-LM basado en la norma L2 global (0 para desactivar).
Argumentos de FP8:
--fp8_backend(str) — Elija un backend para entrenar con FP8 (aoote)--fp8_use_autocast_during_eval(bool) — Si se debe usar FP8 autocast durante el modo de evaluación (útil solo cuando se pasa--fp8_backend=te). Generalmente se obtienen mejores métricas cuando no se pasa este argumento.--fp8_margin(int) — El margen a utilizar para la escalado de gradientes (útil solo cuando se pasa--fp8_backend=te).--fp8_interval(int) — El intervalo a utilizar para la frecuencia con la que se recalcula el factor de escala (útil solo cuando se pasa--fp8_backend=te).--fp8_format(str) — El formato a usar para la receta FP8 (útil solo cuando se pasa--fp8_backend=te).--fp8_amax_history_len(int) — La longitud del historial que se utilizará para el cálculo del factor de escalado (útil solo cuando se pasa--fp8_backend=te).--fp8_amax_compute_algo(str) — El algoritmo a utilizar para el cálculo del factor de escalado. (útil solo cuando se pasa--fp8_backend=te).--fp8_override_linear_precision(Tuple[bool, bool, bool]) — Si se deben ejecutar o no los GEMM defprop,dgradywgraden mayor precisión.
Argumentos de AWS SageMaker:
Los siguientes argumentos solo son útiles al entrenar en SageMaker
--aws_access_key_id AWS_ACCESS_KEY_ID(str) — El AWS_ACCESS_KEY_ID utilizado para iniciar el trabajo de entrenamiento de Amazon SageMaker--aws_secret_access_key AWS_SECRET_ACCESS_KEY(str) — La AWS_SECRET_ACCESS_KEY utilizada para iniciar el trabajo de entrenamiento de Amazon SageMaker
accelerate estimate-memory
Comando:
accelerate estimate-memory o accelerate-estimate-memory o python -m accelerate.commands.estimate
Estima la vRAM total que necesita un modelo específico alojado en el Hub para ser cargado, con una estimación para el entrenamiento. Requiere que huggingface_hub esté instalado.
Al realizar la inferencia, normalmente se debe añadir ≤20% al resultado como asignación total según se referencia aquí. En el futuro contaremos con estimaciones más extensas que se incluirán automáticamente en el cálculo.
Uso:
accelerate estimate-memory {MODEL_NAME} --library_name {LIBRARY_NAME} --dtypes {dtype_1} {dtype_2} ...Argumentos obligatorios:
MODEL_NAME(str)— El nombre del modelo en el Hugging Face Hub
Argumentos opcionales:
--library_name {timm,transformers}(str) — La biblioteca con la que el modelo tiene una integración, comotransformers, necesaria solo si esta información no está almacenada en el Hub--dtypes {float32,float16,int8,int4}([{float32,float16,int8,int4} ...]) — Los dtypes a utilizar para el modelo, deben ser uno (o varios) defloat32,float16,int8yint4--trust_remote_code(bool) — Si se permiten o no modelos personalizados definidos en el Hub en sus propios archivos de modelado. Esta opción solo debe pasarse para repositorios de confianza y en los que se haya leído el código, ya que ejecutará el código presente en el Hub en su máquina local.
accelerate tpu-config
accelerate tpu-config
Uso:
accelerate tpu-config [arguments]
Argumentos opcionales:
-h,--help(bool) — Muestra un mensaje de ayuda y sale
Argumentos de configuración:
Argumentos que se pueden configurar a través de accelerate config.
--config_file(str) — Ruta al archivo de configuración que se usará para accelerate.--tpu_name(str) — El nombre del TPU que se va a usar. Si no se especifica, se usará el TPU indicado en el archivo de configuración.--tpu_zone(str) — La zona del TPU a utilizar. Si no se especifica, se usará la zona indicada en el archivo de configuración.
Argumentos de TPU:
Los argumentos para las opciones se ejecutaron dentro de la TPU.
--command_file(str) — La ruta al archivo que contiene los comandos para ejecutar en el pod al iniciar.--command(str) — Un comando para ejecutar en el pod. Se puede pasar varias veces.--install_accelerate(bool) — Si se instala accelerate en el pod. El valor predeterminado es False.--accelerate_version(str) — La versión de accelerate que se instalará en el pod. Si no se especifica, se utilizará la última versión de pypi. Especifique ‘dev’ para instalar desde GitHub.--debug(bool) — Si se establece, se imprimirá el comando que se ejecutaría en lugar de ejecutarlo.
accelerate test
accelerate test o accelerate-test
Ejecuta accelerate/test_utils/test_script.py para verificar que 🤗 Accelerate se ha configurado correctamente en tu sistema y que se ejecuta.
Uso:
accelerate test [arguments]Argumentos opcionales:
--config_file CONFIG_FILE(str) — La ruta que se usará para almacenar el archivo de configuración. Por defecto, se usará un archivo llamado default_config.yaml en la ubicación de la caché, que es el contenido de la variable de entornoHF_HOMEcon el sufijo ‘accelerate’, o, si no tienes dicha variable de entorno, tu directorio de caché (~/.cacheo el contenido deXDG_CACHE_HOME) con el sufijohuggingface.-h,--help(bool) — Muestra un mensaje de ayuda y sale