Accelerate documentation

Командная строка

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

Командная строка

Ниже приведен список всех доступных команд 🤗 Accelerate с их параметрами

accelerate config

Команда:

accelerate config или accelerate-config

Запускает серию запросов для создания и сохранения файла конфигурации default_config.yml для вашей системы обучения. Всегда должен выполняться первым на вашем компьютере.

Использование:

accelerate config [arguments]

Необязательные аргументы:

  • --config_file CONFIG_FILE (str) — Путь для хранения файла конфигурации. По умолчанию используется файл с именем default_config.yaml в каталоге кэша, который определяется как содержимое переменной окружения HF_HOME с добавлением суффикса ‘accelerate’, либо, если такая переменная окружения не задана, ваш каталог кэша (~/.cache или содержимое XDG_CACHE_HOME) с добавлением суффикса huggingface.
  • -h, --help (bool) — Показать сообщение справки и выйти

accelerate config default

Команда:

accelerate config default или accelerate-config default

Создайте файл конфигурации по умолчанию для Accelerate, установив лишь несколько флагов.

Использование:

accelerate config default [arguments]

Необязательные аргументы:

  • --config_file CONFIG_FILE (str) — Путь для хранения файла конфигурации. По умолчанию используется файл с именем default_config.yaml в каталоге кэша, который определяется как содержимое переменной окружения HF_HOME с добавлением суффикса ‘accelerate’, либо, если такая переменная окружения не задана, ваш каталог кэша (~/.cache или содержимое XDG_CACHE_HOME) с добавлением суффикса huggingface.

  • -h, --help (bool) — Показать сообщение справки и выйти

  • --mixed_precision {no,fp16,bf16} (str) — Использовать ли обучение с смешанной точностью. Выберите между обучением в FP16 и BF16 (bfloat16). Обучение в BF16 поддерживается только на GPU Nvidia Ampere и PyTorch 1.10 или более поздних версиях.

accelerate config update

Команда:

accelerate config update или accelerate-config update

Обновите существующий файл конфигурации с последними значениями по умолчанию, сохранив при этом старую конфигурацию.

Использование:

accelerate config update [arguments]

Необязательные аргументы:

  • --config_file CONFIG_FILE (str) — Путь к файлу конфигурации, который нужно обновить. По умолчанию используется файл с именем default_config.yaml в каталоге кэша, который является содержимым переменной окружения HF_HOME с добавлением суффикса ‘accelerate’, либо, если такой переменной окружения нет, ваш каталог кэша (~/.cache или содержимое XDG_CACHE_HOME) с добавлением суффикса huggingface.

  • -h, --help (bool) — Показать сообщение справки и выйти

accelerate env

Команда:

accelerate env или accelerate-env или python -m accelerate.commands.env

Выводит содержимое переданного файла конфигурации 🤗 Accelerate. Всегда следует использовать при создании обращения в репозитории GitHub.

Использование:

accelerate env [arguments]

Необязательные аргументы:

  • --config_file CONFIG_FILE (str) — Путь для хранения файла конфигурации. По умолчанию используется файл с именем default_config.yaml в каталоге кэша, который определяется как содержимое переменной окружения HF_HOME с добавлением суффикса ‘accelerate’, либо, если такая переменная окружения не задана, ваш каталог кэша (~/.cache или содержимое XDG_CACHE_HOME) с добавлением суффикса huggingface.
  • -h, --help (bool) — Показать сообщение справки и выйти

accelerate launch

Команда:

accelerate launch или accelerate-launch или python -m accelerate.commands.launch

Запускает указанный скрипт в распределённой системе с правильными параметрами.

Использование:

accelerate launch [arguments] {training_script} --{training_script-argument-1} --{training_script-argument-2} ...

Позиционные аргументы:

  • {training_script} — полный путь к скрипту, который будет запущен параллельно
  • --{training_script-argument-1} — аргументы скрипта обучения

Необязательные аргументы:

  • -h, --help (bool) — Показать сообщение справки и выйти
  • --config_file CONFIG_FILE (str)— Файл конфигурации, используемый для значений по умолчанию в скрипте запуска.
  • -m, --module (bool) — заставляет каждый процесс интерпретировать сценарий запуска как модуль Python, с тем же поведением, что и у ‘python -m’.
  • --no_python (bool) — Не добавлять «python» перед скриптом обучения — запускать его напрямую. Полезно, если скрипт не является Python-скриптом.
  • --debug (bool) — Выводить ли трассировку стека torch.distributed при возникновении ошибки.
  • -q, --quiet (bool) — Подавляет ошибки дочерних процессов из стека запуска, чтобы отображались только соответствующие трассировки. (Применимо только к конфигурациям DeepSpeed и с одним процессом).

Остальные аргументы настраиваются через accelerate config и читаются из указанного --config_file (или конфигурации по умолчанию). Их также можно передать вручную.

Аргументы выбора оборудования:

  • --cpu (bool) — Принудительно выполнять обучение на CPU.
  • --multi_gpu (bool) — Запускать ли распределённое обучение на GPU.
  • --tpu (bool) — Запускать ли обучение на TPU.

Аргументы выбора ресурсов:

Следующие аргументы полезны для тонкой настройки того, как следует использовать доступное оборудование

  • --mixed_precision {no,fp16,bf16,fp8} (str) — Использовать ли обучение с смешанной точностью. Выберите между обучением в FP16 и BF16 (bfloat16). Обучение в BF16 поддерживается только на GPU Nvidia Ampere и PyTorch 1.10 или более поздних версиях.
  • --num_processes NUM_PROCESSES (int) — Общее количество процессов, запускаемых параллельно.
  • --num_machines NUM_MACHINES (int) — Общее количество машин, используемых в этом обучении.
  • --num_cpu_threads_per_process NUM_CPU_THREADS_PER_PROCESS (int) — Количество потоков CPU на процесс. Можно настроить для оптимальной производительности.
  • --enable_cpu_affinity (bool) — Включать ли привязку и балансировку CPU. В настоящее время поддерживается только на оборудовании NVIDIA.

Аргументы парадигмы обучения:

Следующие аргументы полезны для выбора парадигмы обучения.

  • --use_deepspeed (bool) — Использовать ли DeepSpeed для обучения.
  • --use_fsdp (bool) — Использовать ли FullyShardedDataParallel для обучения.
  • --use_megatron_lm (bool) — Использовать ли Megatron-LM для обучения.

Аргументы распределённых GPU:

Следующие аргументы полезны только при передаче multi_gpu или при настройке обучения на нескольких GPU через accelerate config:

  • --gpu_ids (str) — Список идентификаторов GPU, разделённых запятыми, которые следует использовать для обучения на этом компьютере
  • --same_network (bool) — Указывает, находятся ли все машины, используемые для обучения на нескольких узлах, в одной локальной сети.
  • --machine_rank (int) — Ранг машины, на которой запускается данный скрипт.
  • --main_process_ip (str) — IP-адрес машины с рангом 0.
  • --main_process_port (int) — Порт для связи с машиной ранга 0.
  • -t, --tee (str) — Записывать потоки std в файл журнала и одновременно выводить в консоль.
  • --log_dir (str) — Базовый каталог для файлов журнала при использовании torchrun/torch.distributed.run в качестве лаунчера. Используйте вместе с —tee для перенаправления потоков std в файлы журнала.
  • --role (str) — Пользовательская роль для рабочих процессов.
  • --rdzv_backend (str) — Метод rendezvous, например, ‘static’ (по умолчанию) или ‘c10d’
  • --rdzv_conf (str) — Дополнительные параметры конфигурации rendezvous (<key1>=<value1>,<key2>=<value2>,…).
  • --max_restarts (int) — Максимальное количество перезапусков группы рабочих процессов перед сбоем.
  • --monitor_interval (int) — Интервал в секундах для мониторинга состояния рабочих процессов.

Аргументы TPU:

Следующие аргументы полезны только при передаче tpu или при настройке обучения на TPU через accelerate config:

  • --tpu_cluster (bool) — Использовать ли GCP TPU pod для обучения.
  • --tpu_use_sudo (bool) — Использовать ли sudo при запуске скрипта обучения TPU в каждом поде.
  • --vm (str) — Список имён отдельных экземпляров Compute VM. Если не указан, предполагается использование групп экземпляров. Для подов TPU.
  • --env (str) — Список переменных окружения, которые нужно установить на экземплярах Compute VM. Для подов TPU.
  • --main_training_function (str) — имя основной функции, которая будет выполнена в вашем скрипте (только для обучения на TPU).
  • --downcast_bf16 (bool) — Определяет, следует ли при использовании точности bf16 на TPU приводить как тензоры float, так и double к bfloat16, или сохранять тензоры double в формате float32.

Аргументы DeepSpeed:

Следующие аргументы полезны только при передаче use_deepspeed или при конфигурации deepspeed через accelerate config:

  • --deepspeed_config_file (str) — файл конфигурации DeepSpeed.
  • --zero_stage (int) — этап оптимизации ZeRO в DeepSpeed.
  • --offload_optimizer_device (str) — Определяет, куда (none|cpu|nvme) выгружать состояния оптимизатора.
  • --offload_param_device (str) — Определяет, куда (none|cpu|nvme) выгружать параметры.
  • --offload_optimizer_nvme_path (str) — Определяет путь Nvme для выгрузки состояний оптимизатора.
  • --gradient_accumulation_steps (int) — Количество шагов gradient_accumulation_steps, используемых в вашем скрипте обучения.
  • --gradient_clipping (float) — Значение обрезки градиентов, используемое в вашем скрипте обучения.
  • --zero3_init_flag (str) — Определяет, следует ли (true|false) включать deepspeed.zero.Init для построения крупных моделей. Применимо только с DeepSpeed ZeRO Stage-3.
  • --zero3_save_16bit_model (str) — Определяет, сохранять ли (true|false) веса модели в 16-битном формате при использовании ZeRO Stage-3. Применимо только с DeepSpeed ZeRO Stage-3.
  • --deepspeed_hostfile (str) — файл hostfile DeepSpeed для настройки вычислительных ресурсов в мультинодовой конфигурации.
  • --deepspeed_exclusion_filter (str) — строка фильтра исключений DeepSpeed при использовании многоузловой конфигурации.
  • --deepspeed_inclusion_filter (str) — строка фильтра включения DeepSpeed при использовании многоузловой конфигурации.
  • --deepspeed_multinode_launcher (str) — запускатель DeepSpeed для мультинодовой конфигурации.
  • --deepspeed_moe_layer_cls_names (str) — список через запятую имён классов MoE-слоёв трансформера (с учётом регистра), которые нужно обернуть, например, MixtralSparseMoeBlock Qwen2MoeSparseMoeBlock, JetMoEAttention,JetMoEBlock

Аргументы для полностью шардированной параллельной обработки данных:

Следующие аргументы полезны только при передаче use_fsdp или при настройке Fully Sharded Data Parallelism через accelerate config:

  • --fsdp_offload_params (str) — Определяет, следует ли (true|false) выгружать параметры и градиенты на CPU.
  • --fsdp_min_num_params (int) — минимальное количество параметров для Default Auto Wrapping в FSDP.
  • --fsdp_sharding_strategy (int) — стратегия шардирования FSDP.
  • --fsdp_auto_wrap_policy (str) — политика автоматического обёртывания FSDP.
  • --fsdp_transformer_layer_cls_to_wrap (str) — имя класса слоя Transformer (с учётом регистра), который нужно обернуть, например, BertLayer, GPTJBlock, T5Block …
  • --fsdp_backward_prefetch_policy (str) — политика предварительной загрузки (prefetch) в обратном проходе для FSDP.
  • --fsdp_state_dict_type (str) — тип state dict для FSDP.
  • --fsdp_forward_prefetch (str) — FSDP forward prefetch.
  • --fsdp_use_orig_params (str) — Если True, разрешает неравномерное requires_grad внутри блока FSDP.
  • --fsdp_cpu_ram_efficient_loading (str) — Если true, то только первый процесс загружает контрольную точку предобученной модели, а все остальные процессы имеют пустые веса. При использовании этого параметра --fsdp_sync_module_states должен быть True.
  • --fsdp_sync_module_states (str) — Если значение true, каждая индивидуально обернутая единица FSDP будет рассылать параметры модуля с ранга 0.
  • --fsdp_activation_checkpointing (bool) — Определяет, освобождаются ли промежуточные активации во время прямого прохода, а вместо них оставляется контрольная точка

Аргументы Megatron-LM:

Следующие аргументы полезны только при передаче use_megatron_lm или при конфигурировании Megatron-LM через accelerate config:

  • --megatron_lm_tp_degree (“) — степень Tensor Parallelism (TP) в Megatron-LM.
  • --megatron_lm_pp_degree (“) — степень Pipeline Parallelism (PP) в Megatron-LM.
  • --megatron_lm_num_micro_batches (“) — количество микробатчей в Megatron-LM при степени PP > 1.
  • --megatron_lm_sequence_parallelism (“) — Определяет, следует ли (true|false) включать Sequence Parallelism, если степень TP > 1.
  • --megatron_lm_recompute_activations (“) — Определяет, следует ли (true|false) включать Selective Activation Recomputation.
  • --megatron_lm_use_distributed_optimizer (“) — Определяет, следует ли (true|false) использовать распределённый оптимизатор, который распределяет состояние оптимизатора и градиенты по рангам Data Parallel (DP).
  • --megatron_lm_gradient_clipping (“) — значение обрезки градиентов в Megatron-LM на основе глобальной L2-нормы (0 для отключения).

Аргументы FP8:

  • --fp8_backend (str) — Выберите бэкенд для обучения с FP8 (ao или te)
  • --fp8_use_autocast_during_eval (bool) — Использовать ли FP8 autocast в режиме eval (актуально только при передаче --fp8_backend=te). Как правило, лучшие метрики достигаются, когда этот параметр не передан.
  • --fp8_margin (int) — Поле, используемое для масштабирования градиентов (актуально только при передаче --fp8_backend=te).
  • --fp8_interval (int) — Интервал, определяющий, как часто пересчитывается масштабный коэффициент (используется только при передаче --fp8_backend=te).
  • --fp8_format (str) — Формат, используемый для рецепта FP8 (актуально только при передаче --fp8_backend=te).
  • --fp8_amax_history_len (int) — Длина истории, используемой для вычисления коэффициента масштабирования (актуально только при передаче --fp8_backend=te).
  • --fp8_amax_compute_algo (str) — Алгоритм, используемый для вычисления коэффициента масштабирования (актуально только при передаче --fp8_backend=te).
  • --fp8_override_linear_precision (Tuple[bool, bool, bool]) — Указывает, следует ли выполнять GEMM-операции fprop, dgrad и wgrad с повышенной точностью.

Аргументы AWS SageMaker:

Следующие аргументы полезны только при обучении в SageMaker

  • --aws_access_key_id AWS_ACCESS_KEY_ID (str) — AWS_ACCESS_KEY_ID, используемый для запуска задачи обучения Amazon SageMaker
  • --aws_secret_access_key AWS_SECRET_ACCESS_KEY (str) — AWS_SECRET_ACCESS_KEY, используемый для запуска задачи обучения Amazon SageMaker

accelerate estimate-memory

Команда:

accelerate estimate-memory или accelerate-estimate-memory или python -m accelerate.commands.estimate

Оценивает общий объём vRAM, необходимый для загрузки определённой модели с Hub, с учётом оценки для обучения. Требуется установка huggingface_hub.

При выполнении инференса, как правило, к результату добавляют ≤20% в качестве общего резерва в соответствии со ссылкой здесь. В будущем появятся более подробные оценки, которые будут автоматически учитываться в расчётах.

Использование:

accelerate estimate-memory {MODEL_NAME} --library_name {LIBRARY_NAME} --dtypes {dtype_1} {dtype_2} ...

Обязательные аргументы:

  • MODEL_NAME (str) — имя модели на Hugging Face Hub

Необязательные аргументы:

  • --library_name {timm,transformers} (str) — библиотека, с которой у модели есть интеграция, например transformers; требуется только в том случае, если эта информация не сохранена на Hub
  • --dtypes {float32,float16,int8,int4} ([{float32,float16,int8,int4} ...]) — Типы данных (dtypes) для модели, должны быть одним (или несколькими) из float32, float16, int8 и int4
  • --trust_remote_code (bool) — Разрешает ли загрузку пользовательских моделей, определённых на Hub в собственных файлах моделирования. Этот параметр следует передавать только для репозиториев, которым вы доверяете и код которых вы изучили, поскольку он выполняет код, присутствующий на Hub, на вашем локальном компьютере.

accelerate tpu-config

accelerate tpu-config

Использование:

accelerate tpu-config [arguments]

Необязательные аргументы:

  • -h, --help (bool) — Показать сообщение справки и выйти

Аргументы конфигурации:

Аргументы, которые можно настроить с помощью accelerate config.

  • --config_file (str) — Путь к файлу конфигурации, используемому в accelerate.
  • --tpu_name (str) — Имя используемого TPU. Если не указано, будет использован TPU, указанный в файле конфигурации.
  • --tpu_zone (str) — Зона TPU, которую следует использовать. Если не указано, будет использована зона, заданная в файле конфигурации.

Аргументы TPU:

Аргументы для опций, выполнявшихся внутри TPU.

  • --command_file (str) — Путь к файлу, содержащему команды для запуска на поде при старте.
  • --command (str) — Команда для выполнения на поде. Может быть передана несколько раз.
  • --install_accelerate (bool) — Устанавливать ли accelerate на под. По умолчанию False.
  • --accelerate_version (str) — Версия accelerate, которую нужно установить на под. Если не указано, будет использована последняя версия с pypi. Укажите ‘dev’, чтобы установить из GitHub.
  • --debug (bool) — Если установлено, выводит команду, которая должна была быть выполнена, вместо её запуска.

accelerate test

accelerate test или accelerate-test

Запускает accelerate/test_utils/test_script.py, чтобы проверить, что 🤗 Accelerate правильно настроен и работает на вашей системе.

Использование:

accelerate test [arguments]

Необязательные аргументы:

  • --config_file CONFIG_FILE (str) — Путь для хранения файла конфигурации. По умолчанию используется файл с именем default_config.yaml в каталоге кэша, который определяется как содержимое переменной окружения HF_HOME с добавлением суффикса ‘accelerate’, либо, если такая переменная окружения не задана, ваш каталог кэша (~/.cache или содержимое XDG_CACHE_HOME) с добавлением суффикса huggingface.
  • -h, --help (bool) — Показать сообщение справки и выйти
Update on GitHub