# Komut Satırı 

Aşağıda, parametreleriyle birlikte 🤗 Accelerate'in tüm kullanılabilir komutlarının listesi yer almaktadır

## accelerate config

**Komut**:

`accelerate config` veya `accelerate-config`

Eğitim sisteminiz için bir `default_config.yml` yapılandırma dosyası oluşturmak ve kaydetmek üzere bir dizi istem başlatır. Her zaman makinenizde ilk olarak çalıştırılmalıdır.

**Kullanım**:

```bash
accelerate config [arguments]
```

**İsteğe Bağlı Argümanlar**:
* `--config_file CONFIG_FILE` (`str`) -- Yapılandırma dosyasını saklamak için kullanılacak yol. Varsayılan olarak, önbellek konumundaki default_config.yaml adlı bir dosya olur; bu, `HF_HOME` ortam değişkeninin içeriğinin 'accelerate' ekiyle birleştirilmesiyle oluşur ya da böyle bir ortam değişkeniniz yoksa önbellek dizininiz (`~/.cache` veya `XDG_CACHE_HOME` içeriği) `huggingface` ekiyle birleştirilir.
* `-h`, `--help` (`bool`) -- Yardım mesajı gösterir ve çıkar

## accelerate config varsayılan

**Komut**:

`accelerate config default` veya `accelerate-config default`

Sadece birkaç bayrak ayarlanmış bir varsayılan yapılandırma dosyası oluşturun.

**Kullanım**:

```bash
accelerate config default [arguments]
```

**İsteğe Bağlı Argümanlar**:
* `--config_file CONFIG_FILE` (`str`) -- Yapılandırma dosyasını saklamak için kullanılacak yol. Varsayılan olarak, önbellek konumundaki default_config.yaml adlı bir dosya olur; bu, `HF_HOME` ortam değişkeninin içeriğinin 'accelerate' ekiyle birleştirilmesiyle oluşur ya da böyle bir ortam değişkeniniz yoksa önbellek dizininiz (`~/.cache` veya `XDG_CACHE_HOME` içeriği) `huggingface` ekiyle birleştirilir.

* `-h`, `--help` (`bool`) -- Yardım mesajı gösterir ve çıkar
* `--mixed_precision {no,fp16,bf16}` (`str`) -- Karmaşıklık hassasiyeti (mixed precision) eğitiminin kullanılıp kullanılmayacağını belirtir. FP16 ve BF16 (bfloat16) eğitimi arasında seçim yapın. BF16 eğitimi yalnızca Nvidia Ampere GPU'larında ve PyTorch 1.10 veya daha yeni sürümlerinde desteklenir.

## accelerate config güncelle

**Komut**:

`accelerate config update` veya `accelerate-config update`

Mevcut yapılandırma dosyasını, eski yapılandırmayı koruyarak en son varsayılanlarla güncelleyin.

**Kullanım**:

```bash
accelerate config update [arguments]
```

**İsteğe Bağlı Argümanlar**:
* `--config_file CONFIG_FILE` (`str`) -- Güncellenecek yapılandırma dosyasının yolu. Varsayılan olarak, önbellek konumundaki `HF_HOME` ortam değişkeninin içeriğinin 'accelerate' ile sonlandırıldığı veya böyle bir ortam değişkeniniz yoksa önbellek dizininizin (`~/.cache` veya `XDG_CACHE_HOME` içeriğinin) `huggingface` ile sonlandırıldığı default_config.yaml adlı dosya kullanılır.

* `-h`, `--help` (`bool`) -- Yardım mesajı gösterir ve çıkar

## accelerate env

**Komut**:

`accelerate env` veya `accelerate-env` veya `python -m accelerate.commands.env`

Geçirilen 🤗 Accelerate yapılandırma dosyasının içeriğini listeler. [GitHub deposu](https://github.com/huggingface/accelerate)nda bir sorun açarken her zaman kullanılmalıdır.

**Kullanım**:

```bash
accelerate env [arguments]
```

**İsteğe Bağlı Argümanlar**:
* `--config_file CONFIG_FILE` (`str`) -- Yapılandırma dosyasını saklamak için kullanılacak yol. Varsayılan olarak, önbellek konumundaki default_config.yaml adlı bir dosya olur; bu, `HF_HOME` ortam değişkeninin içeriğinin 'accelerate' ekiyle birleştirilmesiyle oluşur ya da böyle bir ortam değişkeniniz yoksa önbellek dizininiz (`~/.cache` veya `XDG_CACHE_HOME` içeriği) `huggingface` ekiyle birleştirilir.
* `-h`, `--help` (`bool`) -- Yardım mesajı gösterir ve çıkar

## accelerate launch

**Komut**:

`accelerate launch` veya `accelerate-launch` veya `python -m accelerate.commands.launch`

Belirtilen betiği doğru parametrelerle dağıtık bir sistemde başlatır.

**Kullanım**:

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

**Konumsal Argümanlar**:

- `{training_script}` -- Paralel olarak başlatılacak betiğin tam yolu
- `--{training_script-argument-1}` -- Eğitim betiğinin argümanları

**İsteğe Bağlı Argümanlar**:

* `-h`, `--help` (`bool`) -- Yardım mesajı gösterir ve çıkar
* `--config_file CONFIG_FILE` (`str`)-- Başlatma betiğindeki varsayılan değerler için kullanılacak yapılandırma dosyası.
* `-m`, `--module` (`bool`) -- Her sürecin, başlatma betiğini 'python -m' ile aynı davranışla çalıştırmak üzere bir Python modülü olarak yorumlamasını sağlar.
* `--no_python` (`bool`) -- Eğitim betiğinin başına 'python' eklemeyi atlayın - betiği doğrudan çalıştırın. Betik bir Python betiği olmadığında faydalıdır.
* `--debug` (`bool`) -- Bir şey başarısız olduğunda torch.distributed yığın izini yazdırıp yazdırmayacağı.
* `-q`, `--quiet` (`bool`) -- Başlatma yığın izinden alt süreç hatalarını susturarak yalnızca ilgili yığın izlerini gösterir. (Yalnızca DeepSpeed ve tek süreç yapılandırmaları için geçerlidir).

Bu argümanların geri kalanı `accelerate config` ile yapılandırılır ve değerleri belirtilen `--config_file`'den (veya varsayılan yapılandırmadan) okunur. Bunlar ayrıca manuel olarak da geçirilebilir.

**Donanım Seçimi Argümanları**:

* `--cpu` (`bool`) -- Eğitimin CPU üzerinde zorlanıp zorlanmayacağı.
* `--multi_gpu` (`bool`) -- Dağıtık GPU eğitimini başlatıp başlatmayacağı.
* `--tpu` (`bool`) -- TPU eğitimi başlatılacak mı?

**Kaynak Seçim Argümanları**:

Aşağıdaki argümanlar, kullanılabilir donanımın nasıl kullanılacağına ilişkin ince ayar yapmak için faydalıdır

* `--mixed_precision {no,fp16,bf16,fp8}` (`str`) -- Karma hassasiyetli eğitim kullanılıp kullanılmayacağı. FP16 ve BF16 (bfloat16) eğitimi arasında seçim yapın. BF16 eğitimi yalnızca Nvidia Ampere GPU'larında ve PyTorch 1.10 veya daha yeni sürümlerinde desteklenir.
* `--num_processes NUM_PROCESSES` (`int`) -- Paralel olarak başlatılacak toplam süreç sayısı.
* `--num_machines NUM_MACHINES` (`int`) -- Bu eğitimde kullanılan toplam makine sayısı.
* `--num_cpu_threads_per_process NUM_CPU_THREADS_PER_PROCESS` (`int`) -- İşlem başına CPU iş parçacığı sayısı. Optimal performans için ayarlanabilir.
* `--enable_cpu_affinity` (`bool`) -- CPU affinity ve dengelemenin etkinleştirilip etkinleştirilmeyeceğini belirtir. Şu anda yalnızca NVIDIA donanımlarında desteklenir.

**Eğitim Paradigması Argümanları**:

Aşağıdaki argümanlar, kullanılacak eğitim paradigmasını seçmek için faydalıdır.

* `--use_deepspeed` (`bool`) -- Eğitim için DeepSpeed kullanılıp kullanılmayacağı.
* `--use_fsdp` (`bool`) -- Eğitim için FullyShardedDataParallel kullanılacak mı?
* `--use_megatron_lm` (`bool`) -- Eğitim için Megatron-LM kullanılacak mı?

**Dağıtık GPU Argümanları**:

Aşağıdaki argümanlar yalnızca `multi_gpu` geçirildiğinde veya çoklu GPU eğitimi `accelerate config` üzerinden yapılandırıldığında işe yarar:

* `--gpu_ids` (`str`) -- Bu makinede eğitim için kullanılacak GPU'ların (kimliklerine göre) virgülle ayrılmış listesi
* `--same_network` (`bool`) -- Çoklu düğüm eğitiminde kullanılan tüm makinelerin aynı yerel ağda bulunup bulunmadığı.
* `--machine_rank` (`int`) -- Bu betiğin başlatıldığı makinenin rütbesi.
* `--main_process_ip` (`str`) -- 0. sıralı makinenin IP adresi.
* `--main_process_port` (`int`) -- 0. sıralı makineyle iletişim için kullanılacak port.
* `-t`, `--tee` (`str`) -- std akışlarını bir günlük dosyasına ve aynı zamanda konsola yönlendirir.
* `--log_dir` (`str`) -- torchrun/torch.distributed.run başlatıcısı kullanıldığında günlük dosyaları için kullanılacak temel dizin. --tee ile birlikte kullanılarak standart akış bilgilerini günlük dosyalarına yönlendirin.
* `--role` (`str`) -- İşçiler için kullanıcı tanımlı rol.
* `--rdzv_backend` (`str`) -- Kullanılacak buluşma yöntemi, örneğin 'static' (varsayılan) veya 'c10d'
* `--rdzv_conf` (`str`) -- Ek buluşma yapılandırması (=,=,...).
* `--max_restarts` (`int`) -- Başarısız olmadan önce işçi grubunun yeniden başlatılma sayısı üst sınırı.
* `--monitor_interval` (`int`) -- İşçilerin durumunu izlemek için saniye cinsinden aralık.

**TPU Argümanları**:

Aşağıdaki argümanlar yalnızca `tpu` geçirildiğinde veya TPU eğitimi `accelerate config` üzerinden yapılandırıldığında işe yarar:

* `--tpu_cluster` (`bool`) -- Eğitim için GCP TPU pod'u kullanılıp kullanılmayacağı.
* `--tpu_use_sudo` (`bool`) -- Her pod'da TPU eğitim betiğini çalıştırırken `sudo` kullanılıp kullanılmayacağı.
* `--vm` (`str`) -- Tekil Compute VM örnek adlarının listesi. Sağlanmazsa örnek gruplarının kullanıldığı varsayılır. TPU podları için.
* `--env` (`str`) -- Compute VM örneklerinde ayarlanacak ortam değişkenlerinin listesi. TPU podları için.
* `--main_training_function` (`str`) -- Betiğinizde çalıştırılacak ana fonksiyonun adı (yalnızca TPU eğitimi için).
* `--downcast_bf16` (`bool`) -- TPU'larda bf16 hassasiyeti kullanılırken hem float hem de double tensörlerin bfloat16'ya mı yoksa double tensörlerin float32 olarak mı kalacağına dair bir belirleme.

**DeepSpeed Argümanları**:

Aşağıdaki argümanlar yalnızca `use_deepspeed` geçirildiğinde veya `deepspeed` `accelerate config` üzerinden yapılandırıldığında işe yarar:

* `--deepspeed_config_file` (`str`) -- DeepSpeed yapılandırma dosyası.
* `--zero_stage` (`int`) -- DeepSpeed'in ZeRO optimizasyon aşaması.
* `--offload_optimizer_device` (`str`) -- Optimizer durumlarının nerede (none|cpu|nvme) dışa aktarılacağını belirler.
* `--offload_param_device` (`str`) -- Parametrelerin nerede (none|cpu|nvme) boşaltılacağını belirler.
* `--offload_optimizer_nvme_path` (`str`) -- Optimizer durumlarının offload edileceği Nvme yolunu belirler.
* `--gradient_accumulation_steps` (`int`) -- Eğitim betiğinizde kullanılan gradient_accumulation_steps sayısı.
* `--gradient_clipping` (`float`) -- Eğitim betiğinizde kullanılan gradyan kırpma değeri.
* `--zero3_init_flag` (`str`) -- Devasa modellerin oluşturulması için `deepspeed.zero.Init`'in etkinleştirilip etkinleştirilmeyeceğini (true|false) belirler. Yalnızca DeepSpeed ZeRO Stage-3 ile kullanılabilir.
* `--zero3_save_16bit_model` (`str`) -- ZeRO Stage-3 kullanılırken 16-bit model ağırlıklarının kaydedilip kaydedilmeyeceğini (true|false) belirler. Yalnızca DeepSpeed ZeRO Stage-3 ile geçerlidir.
* `--deepspeed_hostfile` (`str`) -- Çoklu düğüm hesaplama kaynaklarını yapılandırmak için DeepSpeed hostfile.
* `--deepspeed_exclusion_filter` (`str`) -- Çoklu düğüm kurulumu kullanılırken DeepSpeed hariç tutma filtresi dizesi.
* `--deepspeed_inclusion_filter` (`str`) -- Çoklu düğüm kurulumu kullanılırken DeepSpeed kapsama filtresi dizesi.
* `--deepspeed_multinode_launcher` (`str`) -- Kullanılacak DeepSpeed çoklu düğüm başlatıcısı.
* `--deepspeed_moe_layer_cls_names` (`str`) -- sarılacak transformer MoE katman sınıf adlarının virgülle ayrılmış listesi (büyük/küçük harfe duyarlı), örn. `MixtralSparseMoeBlock` `Qwen2MoeSparseMoeBlock`, `JetMoEAttention,JetMoEBlock`

**Tamamen Parçalı Veri Paralelliği Argümanları**:

Aşağıdaki argümanlar yalnızca `use_fsdp` geçirildiğinde veya Fully Sharded Data Parallelism `accelerate config` üzerinden yapılandırıldığında işe yarar:

* `--fsdp_offload_params` (`str`) -- Parametrelerin ve gradyanların CPU'ya aktarılmasının (true|false) belirlenmesini sağlar.
* `--fsdp_min_num_params` (`int`) -- FSDP'nin varsayılan Otomatik Sarma (Auto Wrapping) için minimum parametre sayısı.
* `--fsdp_sharding_strategy` (`int`) -- FSDP'nin Sharding Stratejisi.
* `--fsdp_auto_wrap_policy` (`str`) -- FSDP'nin otomatik sarma politikası.
* `--fsdp_transformer_layer_cls_to_wrap` (`str`) -- Sarılacak Transformer katman sınıfı adı (büyük/küçük harfe duyarlı), örn. `BertLayer`, `GPTJBlock`, `T5Block` ...
* `--fsdp_backward_prefetch_policy` (`str`) -- FSDP'nin geriye dönük ön yükleme politikası.
* `--fsdp_state_dict_type` (`str`) -- FSDP'nin state dict türü.
* `--fsdp_forward_prefetch` (`str`) -- FSDP ileri yönde ön yükleme.
* `--fsdp_use_orig_params` (`str`) -- True ise, bir FSDP biriminde karışık olarak yer alan düzensiz `requires_grad` değerlerine izin verir.
* `--fsdp_cpu_ram_efficient_loading` (`str`) -- True ise, önceden eğitilmiş model kontrol noktasını yalnızca ilk süreç yüklerken diğer tüm süreçlerin ağırlıkları boş kalır. Bunu kullanırken `--fsdp_sync_module_states` True olmalıdır.
* `--fsdp_sync_module_states` (`str`) -- true ise, her bir ayrı sarmalanmış FSDP birimi, modül parametrelerini rank 0'dan yayınlayacaktır.
* `--fsdp_activation_checkpointing` (`bool`) -- İleri geçiş sırasında ara aktivasyonların serbest bırakılıp bırakılmayacağına ve bir kontrol noktasının yer tutucu olarak bırakılıp bırakılmayacağına karar verir

**Megatron-LM Argümanları**:

Aşağıdaki argümanlar yalnızca `use_megatron_lm` geçirildiğinde veya Megatron-LM `accelerate config` üzerinden yapılandırıldığında işe yarar:

* `--megatron_lm_tp_degree` (``) -- Megatron-LM'in Tensor Parallelism (TP) derecesi.
* `--megatron_lm_pp_degree` (``) -- Megatron-LM'in Pipeline Parallelism (PP) derecesi.
* `--megatron_lm_num_micro_batches` (``) -- PP derecesi > 1 olduğunda Megatron-LM'nin mikro batch sayısı.
* `--megatron_lm_sequence_parallelism` (``) -- TP derecesi > 1 olduğunda Sequence Parallelism'in etkinleştirilip etkinleştirilmeyeceğini (true|false) belirler.
* `--megatron_lm_recompute_activations` (``) -- Selective Activation Recomputation'ın etkinleştirilip etkinleştirilmeyeceğini (true|false) belirler.
* `--megatron_lm_use_distributed_optimizer` (``) -- Optimizer durumunu ve gradyanları Data Parallel (DP) rank'leri arasında parçalayan dağıtık optimizasyonun (true|false) kullanılıp kullanılmayacağını belirler.
* `--megatron_lm_gradient_clipping` (``) -- Küresel L2 Normuna dayalı Megatron-LM gradyan kırpma değeri (devre dışı bırakmak için 0).

**FP8 Argümanları**:

* `--fp8_backend` (`str`) -- FP8 ile eğitim için bir backend seçin (`ao` veya `te`)
* `--fp8_use_autocast_during_eval` (`bool`) -- Eval modunda FP8 autocast kullanılacak mı (yalnızca `--fp8_backend=te` geçirildiğinde faydalıdır). Bu parametre geçirilmediğinde genellikle daha iyi metrikler elde edilir.
* `--fp8_margin` (`int`) -- Gradyan ölçeklendirmesi için kullanılacak pay (yalnızca `--fp8_backend=te` geçirildiğinde kullanışlıdır).
* `--fp8_interval` (`int`) -- Ölçekleme faktörünün ne sıklıkla yeniden hesaplanacağı için kullanılacak aralık (yalnızca `--fp8_backend=te` geçirildiğinde kullanışlıdır).
* `--fp8_format` (`str`) -- FP8 tarifi için kullanılacak biçim (yalnızca `--fp8_backend=te` geçirildiğinde kullanışlıdır).
* `--fp8_amax_history_len` (`int`) -- Ölçekleme faktörü hesabında kullanılacak geçmişin uzunluğu (yalnızca `--fp8_backend=te` geçirildiğinde kullanışlıdır).
* `--fp8_amax_compute_algo` (`str`) -- Ölçekleme faktörü hesabı için kullanılacak algoritma. (yalnızca `--fp8_backend=te` geçirildiğinde kullanışlıdır).
* `--fp8_override_linear_precision` (`Tuple[bool, bool, bool]`) -- `fprop`, `dgrad` ve `wgrad` GEMM'lerinin daha yüksek hassasiyetle çalıştırılıp çalıştırılmayacağı.

**AWS SageMaker Argümanları**:

Aşağıdaki argümanlar yalnızca SageMaker'da eğitim sırasında kullanışlıdır

* `--aws_access_key_id AWS_ACCESS_KEY_ID` (`str`) -- Amazon SageMaker eğitim işini başlatmak için kullanılan AWS_ACCESS_KEY_ID
* `--aws_secret_access_key AWS_SECRET_ACCESS_KEY` (`str`) -- Amazon SageMaker eğitim işini başlatmak için kullanılan AWS_SECRET_ACCESS_KEY

## accelerate estimate-memory

**Komut**:

`accelerate estimate-memory` veya `accelerate-estimate-memory` veya `python -m accelerate.commands.estimate`

Hub üzerinde barındırılan belirli bir modelin yüklenmesi için gereken toplam vRAM'i, eğitim için bir tahminle birlikte tahmin eder. `huggingface_hub`'ün yüklü olması gerekir.

    Çıkarım (inference) sırasında, genellikle [burada belirtildiği gibi](https://blog.eleuther.ai/transformer-math/) genel tahsisat olarak sonuca ≤%20 eklenir. Gelecekte, hesaplama otomatik olarak dahil edilecek daha kapsamlı tahminler sunacağız.

**Kullanım**:

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

**Zorunlu Argümanlar**:

* `MODEL_NAME` (`str`)-- Hugging Face Hub'daki model adı

**İsteğe Bağlı Argümanlar**:

* `--library_name {timm,transformers}` (`str`) -- Modelin entegrasyonunun olduğu kütüphane, örneğin `transformers`; bu bilgi Hub'da saklanmıyorsa gereklidir
* `--dtypes {float32,float16,int8,int4}` (`[{float32,float16,int8,int4} ...]`) -- Model için kullanılacak dtypes, `float32`, `float16`, `int8` ve `int4` değerlerinden biri (veya birkaçı) olmalıdır
* `--trust_remote_code` (`bool`) -- Hub'da kendi modelleme dosyalarında tanımlanan özel modellere izin verilip verilmeyeceğini belirtir. Bu seçenek, yalnızca güvendiğiniz ve kodunu incelediğiniz depolar için geçirilmelidir; çünkü Hub'da bulunan kodu yerel makinenizde çalıştırır.

## accelerate tpu-config

`accelerate tpu-config`

**Kullanım**:

```bash
accelerate tpu-config [arguments]
```

**İsteğe Bağlı Argümanlar**:
* `-h`, `--help` (`bool`) -- Yardım mesajı gösterir ve çıkar

**Yapılandırma Argümanları**:

`accelerate config` ile yapılandırılabilen argümanlar.

* `--config_file` (`str`) -- accelerate için kullanılacak yapılandırma dosyasının yolu.
* `--tpu_name` (`str`) -- Kullanılacak TPU'nun adı. Belirtilmezse, yapılandırma dosyasında belirtilen TPU kullanılır.
* `--tpu_zone` (`str`) -- Kullanılacak TPU'nun bölgesi. Belirtilmezse, yapılandırma dosyasında belirtilen bölge kullanılır.

**TPU Argümanları**:

TPU içinde çalıştırılan seçenekler için argümanlar.

* `--command_file` (`str`) -- Pod başlatılırken çalıştırılacak komutları içeren dosyanın yolu.
* `--command` (`str`) -- Pod üzerinde çalıştırılacak bir komut. Birden fazla kez geçirilebilir.
* `--install_accelerate` (`bool`) -- Pod üzerinde accelerate kurulup kurulmayacağı. Varsayılan olarak False.
* `--accelerate_version` (`str`) -- Pod'a yüklenecek accelerate sürümü. Belirtilmezse, en son pypi sürümü kullanılır. GitHub'dan yüklemek için 'dev' belirtin.
* `--debug` (`bool`) -- Ayarlanırsa, komutu çalıştırmak yerine çalıştırılacak komutu yazdırır.

## accelerate test

`accelerate test` veya `accelerate-test`

Sisteminizde 🤗 Accelerate'in doğru yapılandırıldığını ve çalıştığını doğrulamak için `accelerate/test_utils/test_script.py` çalıştırılır.

**Kullanım**:

```bash
accelerate test [arguments]
```

**İsteğe Bağlı Argümanlar**:
* `--config_file CONFIG_FILE` (`str`) -- Yapılandırma dosyasını saklamak için kullanılacak yol. Varsayılan olarak, önbellek konumundaki default_config.yaml adlı bir dosya olur; bu, `HF_HOME` ortam değişkeninin içeriğinin 'accelerate' ekiyle birleştirilmesiyle oluşur ya da böyle bir ortam değişkeniniz yoksa önbellek dizininiz (`~/.cache` veya `XDG_CACHE_HOME` içeriği) `huggingface` ekiyle birleştirilir.
* `-h`, `--help` (`bool`) -- Yardım mesajı gösterir ve çıkar

