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) — 설정 파일을 저장할 경로입니다. 기본값은 캐시 위치에 있는 HF_HOME 환경 변수의 값 뒤에 ‘accelerate’가 붙은 이름의 default_config.yaml 파일이며, 해당 환경 변수가 없으면 캐시 디렉터리(~/.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) — 설정 파일을 저장할 경로입니다. 기본값은 캐시 위치에 있는 HF_HOME 환경 변수의 값 뒤에 ‘accelerate’가 붙은 이름의 default_config.yaml 파일이며, 해당 환경 변수가 없으면 캐시 디렉터리(~/.cache 또는 XDG_CACHE_HOME의 값) 뒤에 huggingface가 붙은 경로입니다.

  • -h, --help (bool) — 도움말 메시지를 표시하고 종료합니다

  • --mixed_precision {no,fp16,bf16} (str) — 혼합 정밀도 학습을 사용할지 여부입니다. FP16과 BF16(bfloat16) 학습 중 하나를 선택합니다. BF16 학습은 Nvidia Ampere GPU와 PyTorch 1.10 이상에서만 지원됩니다.

accelerate config update

명령:

accelerate config update 또는 accelerate-config update

…

사용법:

accelerate config update [arguments]

선택 인자:

  • --config_file CONFIG_FILE (str) — 업데이트할 config file의 경로입니다. 기본값은 캐시 위치에 있는 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) — 설정 파일을 저장할 경로입니다. 기본값은 캐시 위치에 있는 HF_HOME 환경 변수의 값 뒤에 ‘accelerate’가 붙은 이름의 default_config.yaml 파일이며, 해당 환경 변수가 없으면 캐시 디렉터리(~/.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) — launch 스택 트레이스에서 서브프로세스 오류를 억제하여 관련 트레이스백만 표시합니다. (DeepSpeed 및 단일 프로세스 구성에만 적용됩니다.)

나머지 인수는 accelerate config를 통해 설정되며, 지정된 --config_file(또는 기본 구성)에서 값을 읽어옵니다. 수동으로 전달할 수도 있습니다.

하드웨어 선택 인자:

  • --cpu (bool) — CPU에서 훈련을 강제할지 여부.
  • --multi_gpu (bool) — 분산 GPU 학습을 시작할지 여부.
  • --tpu (bool) — TPU 학습을 시작할지 여부.

리소스 선택 인자:

다음 인수는 사용 가능한 하드웨어를 어떻게 사용할지 세밀하게 조정하는 데 유용합니다

  • --mixed_precision {no,fp16,bf16,fp8} (str) — 혼합 정밀도(mixed precision) 학습을 사용할지 여부입니다. FP16과 BF16(bfloat16) 학습 중 하나를 선택합니다. BF16 학습은 Nvidia Ampere GPU와 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 affinity 및 balancing을 활성화할지 여부. 현재 NVIDIA 하드웨어에서만 지원됩니다.

학습 패러다임 인자:

다음 인자들은 사용할 학습 패러다임을 선택하는 데 유용합니다.

  • --use_deepspeed (bool) — 학습에 DeepSpeed를 사용할지 여부.
  • --use_fsdp (bool) — 학습에 FullyShardedDataParallel을 사용할지 여부.
  • --use_megatron_lm (bool) — 학습에 Megatron-LM을 사용할지 여부.

분산 GPU 인자:

다음 인수는 multi_gpu가 전달되거나 accelerate config를 통해 멀티 GPU 학습이 구성된 경우에만 유용합니다:

  • --gpu_ids (str) — 이 머신에서 학습에 사용할 GPU를 쉼표로 구분된 ID 목록으로 지정
  • --same_network (bool) — 멀티노드 학습에 사용되는 모든 머신이 동일한 로컬 네트워크에 존재하는지 여부.
  • --machine_rank (int) — 이 스크립트가 실행되는 머신의 랭크입니다.
  • --main_process_ip (str) — rank 0 머신의 IP 주소입니다.
  • --main_process_port (int) — rank 0 머신과 통신하는 데 사용할 포트입니다.
  • -t, --tee (str) — 표준 스트림을 로그 파일과 콘솔에 동시에 기록합니다.
  • --log_dir (str) — torchrun/torch.distributed.run을 런처로 사용할 때 로그 파일에 사용할 기본 디렉터리입니다. —tee와 함께 사용하여 표준 스트림을 로그 파일로 리디렉션합니다.
  • --role (str) — 워커에 대한 사용자 정의 역할.
  • --rdzv_backend (str) — 사용할 rendezvous 방법입니다. ‘static’(기본값) 또는 ‘c10d’ 등이 있습니다.
  • --rdzv_conf (str) — 추가 rendezvous 구성 (<key1>=<value1>,<key2>=<value2>,…).
  • --max_restarts (int) — 실패하기 전에 worker group을 재시작할 최대 횟수.
  • --monitor_interval (int) — 워커 상태를 모니터링할 간격(초).

TPU 인자:

다음 인수는 tpu가 전달되거나 accelerate config를 통해 TPU 학습이 구성된 경우에만 유용합니다:

  • --tpu_cluster (bool) — 학습에 GCP TPU pod를 사용할지 여부.
  • --tpu_use_sudo (bool) — 각 pod에서 TPU 학습 스크립트를 실행할 때 sudo를 사용할지 여부.
  • --vm (str) — 단일 Compute VM 인스턴스 이름 목록입니다. 제공되지 않으면 인스턴스 그룹 사용으로 간주합니다. TPU 팟용입니다.
  • --env (str) — Compute VM 인스턴스에 설정할 환경 변수 목록입니다. TPU 팟용입니다.
  • --main_training_function (str) — 스크립트에서 실행할 메인 함수의 이름 (TPU 학습에만 해당).
  • --downcast_bf16 (bool) — TPU에서 bf16 정밀도를 사용할 때 float과 double 텐서를 모두 bfloat16으로 변환할지, 아니면 double 텐서는 float32로 유지할지를 결정합니다.

DeepSpeed 인자:

다음 인수는 use_deepspeed가 전달되거나 deepspeed가 accelerate config를 통해 구성된 경우에만 유용합니다:

  • --deepspeed_config_file (str) — DeepSpeed 설정 파일.
  • --zero_stage (int) — DeepSpeed의 ZeRO 최적화 단계.
  • --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) — 학습 스크립트에서 사용되는 Gradient clipping 값.
  • --zero3_init_flag (str) — 대규모 모델을 구성하기 위해 deepspeed.zero.Init를 활성화할지 여부(true|false)를 결정합니다. DeepSpeed ZeRO Stage-3에서만 적용됩니다.
  • --zero3_save_16bit_model (str) — ZeRO Stage-3를 사용할 때 16비트 모델 가중치를 저장할지 여부를 결정합니다 (true|false). DeepSpeed ZeRO Stage-3에서만 적용됩니다.
  • --deepspeed_hostfile (str) — 멀티노드 컴퓨트 리소스를 구성하기 위한 DeepSpeed hostfile입니다.
  • --deepspeed_exclusion_filter (str) — 멀티노드 구성을 사용할 때 DeepSpeed exclusion filter 문자열.
  • --deepspeed_inclusion_filter (str) — 멀티노드 구성을 사용할 때 DeepSpeed inclusion filter 문자열.
  • --deepspeed_multinode_launcher (str) — 사용할 DeepSpeed 멀티노드 런처입니다.
  • --deepspeed_moe_layer_cls_names (str) — 감싸기 위한 transformer MoE 레이어 클래스 이름의 쉼표로 구분된 목록(대소문자 구분), 예: MixtralSparseMoeBlock Qwen2MoeSparseMoeBlock, JetMoEAttention,JetMoEBlock

Fully Sharded Data Parallelism 인자:

다음 인수는 use_fsdp가 전달되거나 accelerate config를 통해 Fully Sharded Data Parallelism이 구성된 경우에만 유용합니다:

  • --fsdp_offload_params (str) — 매개변수와 기울기를 CPU로 오프로드할지 여부를 결정합니다 (true|false).
  • --fsdp_min_num_params (int) — FSDP의 Default Auto Wrapping에 사용되는 최소 파라미터 수입니다.
  • --fsdp_sharding_strategy (int) — FSDP의 Sharding Strategy입니다.
  • --fsdp_auto_wrap_policy (str) — FSDP의 자동 래핑 정책입니다.
  • --fsdp_transformer_layer_cls_to_wrap (str) — 래핑할 Transformer 레이어 클래스 이름(대소문자 구분), 예: BertLayer, GPTJBlock, T5Block …
  • --fsdp_backward_prefetch_policy (str) — FSDP의 backward prefetch 정책입니다.
  • --fsdp_state_dict_type (str) — FSDP의 state dict 유형.
  • --fsdp_forward_prefetch (str) — FSDP forward prefetch입니다.
  • --fsdp_use_orig_params (str) — True인 경우, FSDP 단위에서 비균일한 requires_grad가 혼합되는 것을 허용합니다.
  • --fsdp_cpu_ram_efficient_loading (str) — true인 경우, 첫 번째 프로세스만 사전 학습된 모델 체크포인트를 로드하고 모든 다른 프로세스는 빈 가중치를 가집니다. 이 옵션을 사용할 때 --fsdp_sync_module_states는 True여야 합니다.
  • --fsdp_sync_module_states (str) — true인 경우, 개별적으로 래핑된 각 FSDP 유닛이 rank 0에서 모듈 매개변수를 브로드캐스트합니다.
  • --fsdp_activation_checkpointing (bool) — forward pass 중 중간 activations가 해제되고, 체크포인트가 플레이스홀더로 남을지 여부를 결정합니다

Megatron-LM 인자:

다음 인수는 use_megatron_lm가 전달되거나 accelerate config를 통해 Megatron-LM이 구성된 경우에만 유용합니다:

  • --megatron_lm_tp_degree (“) — Megatron-LM의 Tensor Parallelism(TP) degree.
  • --megatron_lm_pp_degree (“) — Megatron-LM의 Pipeline Parallelism(PP) degree.
  • --megatron_lm_num_micro_batches (“) — PP degree가 1보다 큰 경우 Megatron-LM의 micro batch 수.
  • --megatron_lm_sequence_parallelism (“) — TP degree가 1보다 큰 경우 Sequence Parallelism을 활성화할지(true|false) 결정합니다.
  • --megatron_lm_recompute_activations (“) — Selective Activation Recomputation을 활성화할지 여부(true|false)를 결정합니다.
  • --megatron_lm_use_distributed_optimizer (“) — Data Parallel (DP) rank에 걸쳐 옵티마이저 상태와 그래디언트를 샤딩하는 분산 옵티마이저를 사용할지 여부(true|false)를 결정합니다.
  • --megatron_lm_gradient_clipping (“) — 전역 L2 Norm 기반 Megatron-LM의 gradient clipping 값(0이면 비활성화).

FP8 인자:

  • --fp8_backend (str) — FP8로 학습할 백엔드를 선택합니다 (ao 또는 te)
  • --fp8_use_autocast_during_eval (bool) — eval 모드에서 FP8 autocast를 사용할지 여부(--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]) — fprop, dgrad, wgrad GEMM을 더 높은 정밀도로 실행할지 여부.

AWS SageMaker 인자:

다음 인수는 SageMaker에서 학습할 때만 유용합니다

  • --aws_access_key_id AWS_ACCESS_KEY_ID (str) — Amazon SageMaker 학습 작업을 시작하는 데 사용되는 AWS_ACCESS_KEY_ID
  • --aws_secret_access_key AWS_SECRET_ACCESS_KEY (str) — Amazon SageMaker 학습 작업을 시작하는 데 사용되는 AWS_SECRET_ACCESS_KEY

accelerate estimate-memory

명령:

accelerate estimate-memory 또는 accelerate-estimate-memory 또는 python -m accelerate.commands.estimate

Hub에 호스팅된 특정 모델을 학습을 위한 추정치와 함께 로드하는 데 필요한 총 vRAM을 추정합니다. 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} ...]) — 모델에 사용할 dtype으로, float32, float16, int8, int4 중 하나(또는 여러 개)여야 합니다
  • --trust_remote_code (bool) — Hub에 있는 커스텀 모델이 자체 modeling 파일에서 정의된 경우 이를 허용할지 여부입니다. 이 옵션은 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의 zone입니다. 지정하지 않으면 config 파일에 지정된 zone을 사용합니다.

TPU 인자:

TPU에서 실행된 옵션에 대한 인자

  • --command_file (str) — pod 시작 시 실행할 명령어가 포함된 파일의 경로입니다.
  • --command (str) — pod에서 실행할 명령입니다. 여러 번 전달할 수 있습니다.
  • --install_accelerate (bool) — pod에 accelerate를 설치할지 여부입니다. 기본값은 False입니다.
  • --accelerate_version (str) — pod에 설치할 accelerate의 버전입니다. 지정하지 않으면 최신 pypi 버전을 사용합니다. GitHub에서 설치하려면 ‘dev’를 지정합니다.
  • --debug (bool) — 설정하면 실행 대신 실행될 명령을 출력합니다.

accelerate test

accelerate test 또는 accelerate-test

accelerate/test_utils/test_script.py를 실행하여 시스템에서 🤗 Accelerate가 올바르게 구성되고 실행되는지 확인합니다.

사용법:

accelerate test [arguments]

선택 인자:

  • --config_file CONFIG_FILE (str) — 설정 파일을 저장할 경로입니다. 기본값은 캐시 위치에 있는 HF_HOME 환경 변수의 값 뒤에 ‘accelerate’가 붙은 이름의 default_config.yaml 파일이며, 해당 환경 변수가 없으면 캐시 디렉터리(~/.cache 또는 XDG_CACHE_HOME의 값) 뒤에 huggingface가 붙은 경로입니다.
  • -h, --help (bool) — 도움말 메시지를 표시하고 종료합니다
Update on GitHub