Accelerate documentation
A Linha de Comando
A Linha de Comando
Abaixo está a lista de todos os comandos disponíveis do 🤗 Accelerate com seus parâmetros
accelerate config
Comando:
accelerate config ou accelerate-config
Inicia uma série de prompts para criar e salvar um arquivo de configuração default_config.yml para o seu sistema de treinamento. Deve sempre ser executado primeiro na sua máquina.
Uso:
accelerate config [arguments]
Argumentos Opcionais:
--config_file CONFIG_FILE(str) — O caminho a ser usado para armazenar o arquivo de configuração. O padrão será um arquivo chamado default_config.yaml no local do cache, que é o conteúdo da variável de ambienteHF_HOMEcom o sufixo ‘accelerate’, ou, se você não tiver essa variável de ambiente, seu diretório de cache (~/.cacheou o conteúdo deXDG_CACHE_HOME) com o sufixohuggingface.-h,--help(bool) — Exibe uma mensagem de ajuda e sai
accelerate config default
Comando:
accelerate config default ou accelerate-config default
Crie um arquivo de configuração padrão para o Accelerate com apenas algumas flags definidas.
Uso:
accelerate config default [arguments]
Argumentos Opcionais:
--config_file CONFIG_FILE(str) — O caminho a ser usado para armazenar o arquivo de configuração. O padrão será um arquivo chamado default_config.yaml no local do cache, que é o conteúdo da variável de ambienteHF_HOMEcom o sufixo ‘accelerate’, ou, se você não tiver essa variável de ambiente, seu diretório de cache (~/.cacheou o conteúdo deXDG_CACHE_HOME) com o sufixohuggingface.-h,--help(bool) — Exibe uma mensagem de ajuda e sai--mixed_precision {no,fp16,bf16}(str) — Se deve ou não usar treinamento com precisão mista. Escolha entre treinamento com FP16 e BF16 (bfloat16). O treinamento com BF16 é suportado apenas em GPUs Nvidia Ampere e PyTorch 1.10 ou posterior.
accelerate config update
Comando:
accelerate config update ou accelerate-config update
Atualize um arquivo de configuração existente com os padrões mais recentes, mantendo a configuração antiga.
Uso:
accelerate config update [arguments]
Argumentos Opcionais:
--config_file CONFIG_FILE(str) — O caminho para o arquivo de configuração a ser atualizado. O padrão será um arquivo chamado default_config.yaml no local do cache, que é o conteúdo da variável de ambienteHF_HOMEcom o sufixo ‘accelerate’, ou, se você não tiver essa variável de ambiente, seu diretório de cache (~/.cacheou o conteúdo deXDG_CACHE_HOME) com o sufixohuggingface.-h,--help(bool) — Exibe uma mensagem de ajuda e sai
accelerate env
Comando:
accelerate env ou accelerate-env ou python -m accelerate.commands.env
Lista o conteúdo do arquivo de configuração do 🤗 Accelerate passado. Deve ser usado sempre que for abrir uma issue no repositório do GitHub.
Uso:
accelerate env [arguments]Argumentos Opcionais:
--config_file CONFIG_FILE(str) — O caminho a ser usado para armazenar o arquivo de configuração. O padrão será um arquivo chamado default_config.yaml no local do cache, que é o conteúdo da variável de ambienteHF_HOMEcom o sufixo ‘accelerate’, ou, se você não tiver essa variável de ambiente, seu diretório de cache (~/.cacheou o conteúdo deXDG_CACHE_HOME) com o sufixohuggingface.-h,--help(bool) — Exibe uma mensagem de ajuda e sai
accelerate launch
Comando:
accelerate launch ou accelerate-launch ou python -m accelerate.commands.launch
Inicia um script especificado em um sistema distribuído com os parâmetros corretos.
Uso:
accelerate launch [arguments] {training_script} --{training_script-argument-1} --{training_script-argument-2} ...Argumentos posicionais:
{training_script}— O caminho completo para o script a ser executado em paralelo--{training_script-argument-1}— Argumentos do script de treinamento
Argumentos Opcionais:
-h,--help(bool) — Exibe uma mensagem de ajuda e sai--config_file CONFIG_FILE(str)— O arquivo de configuração a ser usado para os valores padrão no script de lançamento.-m,--module(bool) — Altera cada processo para interpretar o script de inicialização como um módulo Python, executando com o mesmo comportamento de ‘python -m’.--no_python(bool) — Pula a adição de ‘python’ antes do script de treinamento - apenas execute-o diretamente. Útil quando o script não é um script Python.--debug(bool) — Se deve imprimir a stack trace do torch.distributed quando algo falha.-q,--quiet(bool) — Silencia erros de subprocessos da pilha de lançamento para exibir apenas os tracebacks relevantes. (Apenas aplicável a configurações de DeepSpeed e de processo único).
O restante desses argumentos é configurado por meio de accelerate config e seus valores são lidos do --config_file especificado (ou da configuração padrão). Eles também podem ser passados manualmente.
Argumentos de seleção de hardware:
--cpu(bool) — Se deve forçar o treinamento na CPU.--multi_gpu(bool) — Se deve ou não iniciar um treinamento distribuído em GPU.--tpu(bool) — Se deve ou não iniciar um treinamento em TPU.
Argumentos de seleção de recursos:
Os seguintes argumentos são úteis para ajustar como o hardware disponível deve ser utilizado
--mixed_precision {no,fp16,bf16,fp8}(str) — Se deve ou não usar treinamento com precisão mista. Escolha entre treinamento com FP16 e BF16 (bfloat16). O treinamento com BF16 é suportado apenas em GPUs Nvidia Ampere e PyTorch 1.10 ou posterior.--num_processes NUM_PROCESSES(int) — O número total de processos a serem lançados em paralelo.--num_machines NUM_MACHINES(int) — O número total de máquinas usadas neste treinamento.--num_cpu_threads_per_process NUM_CPU_THREADS_PER_PROCESS(int) — O número de threads de CPU por processo. Pode ser ajustado para desempenho ideal.--enable_cpu_affinity(bool) — Se a afinidade e o balanceamento de CPU devem ser habilitados. Atualmente, suportado apenas em hardware NVIDIA.
Argumentos do paradigma de treinamento:
Os seguintes argumentos são úteis para selecionar qual paradigma de treinamento usar.
--use_deepspeed(bool) — Se deve ou não usar DeepSpeed para o treinamento.--use_fsdp(bool) — Se deve ou não usar FullyShardedDataParallel para o treinamento.--use_megatron_lm(bool) — Se deve ou não usar o Megatron-LM para o treinamento.
Argumentos de GPU distribuída:
Os seguintes argumentos são úteis apenas quando multi_gpu é passado ou o treinamento multi-GPU é configurado por meio de accelerate config:
--gpu_ids(str) — Quais GPUs (por id) devem ser usadas para o treinamento nesta máquina, como uma lista separada por vírgulas--same_network(bool) — Se todas as máquinas usadas para treinamento multinó estão na mesma rede local.--machine_rank(int) — O rank da máquina na qual este script é iniciado.--main_process_ip(str) — O endereço IP da máquina do rank 0.--main_process_port(int) — A porta a ser usada para se comunicar com a máquina de rank 0.-t,--tee(str) — Redireciona os fluxos padrão para um arquivo de log e também para o console.--log_dir(str) — Diretório base a ser usado para arquivos de log ao utilizar torchrun/torch.distributed.run como lançador. Use com —tee para redirecionar as informações dos fluxos padrão para os arquivos de log.--role(str) — Papel definido pelo usuário para os workers.--rdzv_backend(str) — O método de rendezvous a ser usado, como ‘static’ (o padrão) ou ‘c10d’--rdzv_conf(str) — Configuração adicional de rendezvous (<key1>=<value1>,<key2>=<value2>,…).--max_restarts(int) — Número máximo de reinícios do grupo de workers antes de falhar.--monitor_interval(int) — Intervalo, em segundos, para monitorar o estado dos workers.
Argumentos de TPU:
Os seguintes argumentos são úteis apenas quando tpu é passado ou o treinamento em TPU é configurado por meio de accelerate config:
--tpu_cluster(bool) — Se deve usar um pod TPU do GCP para treinamento.--tpu_use_sudo(bool) — Se deve usarsudoao executar o script de treinamento do TPU em cada pod.--vm(str) — Lista de nomes de instâncias únicas de Compute VM. Se não for fornecida, assumimos o uso de grupos de instâncias. Para pods de TPU.--env(str) — Lista de variáveis de ambiente a serem definidas nas instâncias da Compute VM. Para pods de TPU.--main_training_function(str) — O nome da função principal a ser executada no seu script (apenas para treinamento em TPU).--downcast_bf16(bool) — Se, ao usar precisão bf16 em TPUs, tanto os tensores float quanto double são convertidos para bfloat16 ou se os tensores double permanecem como float32.
Argumentos do DeepSpeed:
Os seguintes argumentos são úteis apenas quando use_deepspeed é passado ou deepspeed é configurado por meio de accelerate config:
--deepspeed_config_file(str) — Arquivo de configuração do DeepSpeed.--zero_stage(int) — Etapa de otimização ZeRO do DeepSpeed.--offload_optimizer_device(str) — Define onde (none|cpu|nvme) descarregar os estados do otimizador.--offload_param_device(str) — Define onde (none|cpu|nvme) os parâmetros serão descarregados.--offload_optimizer_nvme_path(str) — Define o caminho Nvme para descarregar os estados do otimizador.--gradient_accumulation_steps(int) — Número de gradient_accumulation_steps usado no seu script de treinamento.--gradient_clipping(float) — Valor de recorte de gradiente usado no seu script de treinamento.--zero3_init_flag(str) — Decide se (true|false) deve ser habilitado odeepspeed.zero.Initpara a construção de modelos massivos. Aplicável apenas com DeepSpeed ZeRO Stage-3.--zero3_save_16bit_model(str) — Decide se (true|false) salvar os pesos do modelo de 16 bits ao usar ZeRO Stage-3. Aplicável apenas com DeepSpeed ZeRO Stage-3.--deepspeed_hostfile(str) — hostfile do DeepSpeed para configurar recursos de computação em múltiplos nós.--deepspeed_exclusion_filter(str) — String do filtro de exclusão do DeepSpeed ao usar configuração multi-nó.--deepspeed_inclusion_filter(str) — String do filtro de inclusão do DeepSpeed ao usar configuração multi-nó.--deepspeed_multinode_launcher(str) — Launcher de múltiplos nós do DeepSpeed a ser utilizado.--deepspeed_moe_layer_cls_names(str) — lista separada por vírgulas dos nomes das classes de camadas MoE do transformer (sensível a maiúsculas e minúsculas) a serem encapsuladas, por exemplo,MixtralSparseMoeBlockQwen2MoeSparseMoeBlock,JetMoEAttention,JetMoEBlock
Argumentos de Parallelismo de Dados Totalmente Fragmentados:
Os seguintes argumentos são úteis apenas quando use_fsdp é passado ou quando o Fully Sharded Data Parallelism é configurado por meio de accelerate config:
--fsdp_offload_params(str) — Decide se (true|false) os parâmetros e gradientes devem ser transferidos para a CPU.--fsdp_min_num_params(int) — Número mínimo de parâmetros do FSDP para o Auto Wrapping padrão.--fsdp_sharding_strategy(int) — Estratégia de Sharding do FSDP.--fsdp_auto_wrap_policy(str) — Política de auto wrap do FSDP.--fsdp_transformer_layer_cls_to_wrap(str) — Nome da classe da camada Transformer (sensível a maiúsculas e minúsculas) a ser envolvida, por exemplo,BertLayer,GPTJBlock,T5Block…--fsdp_backward_prefetch_policy(str) — Política de pré-busca reversa do FSDP.--fsdp_state_dict_type(str) — Tipo de state dict do FSDP.--fsdp_forward_prefetch(str) — Pré-busca de encaminhamento do FSDP.--fsdp_use_orig_params(str) — Se True, permiterequires_gradnão uniforme misturado em uma unidade FSDP.--fsdp_cpu_ram_efficient_loading(str) — Se true, apenas o primeiro processo carrega o checkpoint do modelo pré-treinado, enquanto todos os outros processos têm pesos vazios. Ao usar isso,--fsdp_sync_module_statesprecisa ser True.--fsdp_sync_module_states(str) — Se true, cada unidade FSDP individualmente envolvida fará o broadcast dos parâmetros do módulo a partir do rank 0.--fsdp_activation_checkpointing(bool) — Decide se as ativações intermediárias são liberadas durante a passagem de frente e se um checkpoint é deixado como marcador
Argumentos do Megatron-LM:
Os seguintes argumentos são úteis apenas quando use_megatron_lm é passado ou quando o Megatron-LM é configurado por meio de accelerate config:
--megatron_lm_tp_degree(“) — Grau de Tensor Parallelism (TP) do Megatron-LM.--megatron_lm_pp_degree(“) — Grau de Pipeline Parallelism (PP) do Megatron-LM.--megatron_lm_num_micro_batches(“) — número de micro lotes do Megatron-LM quando o grau de PP > 1.--megatron_lm_sequence_parallelism(“) — Decide se (true|false) o Sequence Parallelism deve ser habilitado quando o grau de TP > 1.--megatron_lm_recompute_activations(“) — Decide se (true|false) deve ativar a Recomputação Seletiva de Ativações.--megatron_lm_use_distributed_optimizer(“) — Decide se (true|false) deve ser usado um otimizador distribuído, que divide o estado do otimizador e os gradientes entre os ranks de Data Parallel (DP).--megatron_lm_gradient_clipping(“) — Valor de clipping de gradiente do Megatron-LM com base na norma L2 global (0 para desativar).
Argumentos de FP8:
--fp8_backend(str) — Escolha um backend para treinar com FP8 (aooute)--fp8_use_autocast_during_eval(bool) — Se deve usar FP8 autocast durante o modo de avaliação (útil apenas quando--fp8_backend=teé passado). Geralmente, métricas melhores são obtidas quando este argumento não é passado.--fp8_margin(int) — A margem a ser usada para o escalonamento do gradiente (útil apenas quando--fp8_backend=teé passado).--fp8_interval(int) — O intervalo a ser usado para a frequência de recálculo do fator de escala (útil apenas quando--fp8_backend=teé passado).--fp8_format(str) — O formato a ser usado para a receita FP8 (útil apenas quando--fp8_backend=teé passado).--fp8_amax_history_len(int) — O comprimento do histórico a ser usado para o cálculo do fator de escala (útil apenas quando--fp8_backend=teé passado).--fp8_amax_compute_algo(str) — O algoritmo a ser usado para o cálculo do fator de escala. (útil apenas quando--fp8_backend=teé passado).--fp8_override_linear_precision(Tuple[bool, bool, bool]) — Se os GEMMs defprop,dgradewgraddevem ser executados em maior precisão.
Argumentos do AWS SageMaker:
Os seguintes argumentos são úteis apenas ao treinar no SageMaker
--aws_access_key_id AWS_ACCESS_KEY_ID(str) — O AWS_ACCESS_KEY_ID usado para iniciar o job de treinamento do Amazon SageMaker--aws_secret_access_key AWS_SECRET_ACCESS_KEY(str) — O AWS_SECRET_ACCESS_KEY usado para iniciar o job de treinamento do Amazon SageMaker
accelerate estimate-memory
Comando:
accelerate estimate-memory ou accelerate-estimate-memory ou python -m accelerate.commands.estimate
Estima a quantidade total de vRAM necessária para carregar um modelo específico hospedado no Hub, incluindo uma estimativa para treinamento. Exige que huggingface_hub esteja instalado.
Ao realizar inferência, normalmente adicione ≤20% ao resultado como alocação geral conforme referenciado aqui. Teremos estimativas mais extensas no futuro que serão incluídas automaticamente no cálculo.
Uso:
accelerate estimate-memory {MODEL_NAME} --library_name {LIBRARY_NAME} --dtypes {dtype_1} {dtype_2} ...Argumentos obrigatórios:
MODEL_NAME(str)— O nome do modelo no Hugging Face Hub
Argumentos Opcionais:
--library_name {timm,transformers}(str) — A biblioteca com a qual o modelo possui uma integração, comotransformers, necessária apenas se essa informação não estiver armazenada no Hub--dtypes {float32,float16,int8,int4}([{float32,float16,int8,int4} ...]) — Os dtypes a serem usados para o modelo, devem ser um (ou vários) defloat32,float16,int8eint4--trust_remote_code(bool) — Se permite ou não o uso de modelos personalizados definidos no Hub em seus próprios arquivos de modelagem. Essa opção deve ser passada apenas para repositórios nos quais você confia e cujo código você leu, pois ela executará o código presente no Hub na sua máquina local.
accelerate tpu-config
accelerate tpu-config
Uso:
accelerate tpu-config [arguments]
Argumentos Opcionais:
-h,--help(bool) — Exibe uma mensagem de ajuda e sai
Argumentos de Configuração:
Argumentos que podem ser configurados por meio de accelerate config.
--config_file(str) — Caminho para o arquivo de configuração a ser usado pelo accelerate.--tpu_name(str) — O nome do TPU a ser usado. Se não for especificado, será utilizado o TPU definido no arquivo de configuração.--tpu_zone(str) — A zona do TPU a ser usada. Se não for especificada, será usada a zona especificada no arquivo de configuração.
Argumentos de TPU:
Argumentos para as opções executadas dentro do TPU.
--command_file(str) — O caminho para o arquivo contendo os comandos a serem executados no pod na inicialização.--command(str) — Um comando para executar no pod. Pode ser passado várias vezes.--install_accelerate(bool) — Se deve instalar o accelerate no pod. O valor padrão é False.--accelerate_version(str) — A versão do accelerate a ser instalada no pod. Se não for especificada, será usada a versão mais recente do pypi. Especifique ‘dev’ para instalar a partir do GitHub.--debug(bool) — Se definido, exibirá o comando que seria executado em vez de executá-lo.
accelerate test
accelerate test ou accelerate-test
Executa accelerate/test_utils/test_script.py para verificar se o 🤗 Accelerate foi configurado corretamente no seu sistema e está funcionando.
Uso:
accelerate test [arguments]Argumentos Opcionais:
--config_file CONFIG_FILE(str) — O caminho a ser usado para armazenar o arquivo de configuração. O padrão será um arquivo chamado default_config.yaml no local do cache, que é o conteúdo da variável de ambienteHF_HOMEcom o sufixo ‘accelerate’, ou, se você não tiver essa variável de ambiente, seu diretório de cache (~/.cacheou o conteúdo deXDG_CACHE_HOME) com o sufixohuggingface.-h,--help(bool) — Exibe uma mensagem de ajuda e sai