Accelerate documentation
Командная строка
Командная строка
Ниже приведен список всех доступных команд 🤗 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-слоёв трансформера (с учётом регистра), которые нужно обернуть, например,MixtralSparseMoeBlockQwen2MoeSparseMoeBlock,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) — Показать сообщение справки и выйти