Accelerate documentation
명령줄
명령줄
다음은 🤗 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 레이어 클래스 이름의 쉼표로 구분된 목록(대소문자 구분), 예:MixtralSparseMoeBlockQwen2MoeSparseMoeBlock,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,wgradGEMM을 더 높은 정밀도로 실행할지 여부.
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) — 도움말 메시지를 표시하고 종료합니다