Transformers documentation

Accelerate

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Accelerate

Accelerate, FSDP veya DeepSpeed gibi dağıtık eğitim altyapıları için birleşik bir arayüz sunar. Ortamınızı (GPU sayısı, dağıtık altyapı, karma hassasiyet vb.) algılar ve eğitim yapılandırmasını otomatik olarak ayarlar; ister 1 GPU ile DDP, ister 8 GPU ile FSDP kullanıyor olun.

Accelerate, modeli uygun dağıtık sarmalayıcıyla sarar, doğru cihaza taşır ve uyumlu bir optimizör oluşturur. Eğitim sırasında Accelerate, karma hassasiyet için gradyan ölçeklemesini yönetmek üzere kendi backward yöntemini kullanır. Trainer, uygun Accelerate API'lerini çağırır ve tüm dağıtık mekaniklerini Accelerate'e devreder.

Trainer için Accelerate yapılandırmasını bir Accelerate yapılandırma dosyası veya TrainingArguments ile yapılandırın.

Accelerate yapılandırma dosyası

accelerate config komutunu çalıştırın ve donanımınız ile eğitim kurulumunuzla ilgili soruları yanıtlayın. Bu işlem, önbelleğinizde bir default_config.yaml dosyası oluşturur. Aşağıdaki örnek FSDP içindir.

compute_environment: LOCAL_MACHINE
distributed_type: FSDP
fsdp_config:
  fsdp_version: 2
  fsdp_reshard_after_forward: true
  fsdp_cpu_offload: false
  fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP
  fsdp_cpu_ram_efficient_loading: true
  fsdp_activation_checkpointing: false
  fsdp_state_dict_type: SHARDED_STATE_DICT
  fsdp_transformer_layer_cls_to_wrap: LlamaDecoderLayer
mixed_precision: bf16
num_machines: 1
num_processes: 4

accelerate launch komutunu Trainer tabanlı bir betikle çalıştırın; Accelerate, eğitimi yapılandırmak için yapılandırma dosyasını okur. fsdp_config ve deepspeed argümanları, Accelerate yapılandırma dosyası aynı ayarları kapsadığı için gereksizdir.

accelerate launch train.py

accelerator_config, özel üst düzey argümanları olmayan ayarları kabul eder. Örneğin, GPU verimliliğini artırmak için veri aktarımını hesaplama ile çakıştırmak üzere non_blocking=True değerini dataloader_pin_memory() ile birlikte ayarlayın.

from transformers import TrainingArguments

TrainingArguments(
    ...,
    dataloader_pin_memory=True,
    accelerator_config={
        "non_blocking": True,
    },
)

TrainingArguments

TrainingArguments sınıfına backend'e özgü bir yapılandırma geçirin. create_accelerator_and_postprocess() metodu ayarları okur ve eğitimi yapılandırır.

FSDP
DeepSpeed
DDP

~TrainingArguments.fsdp_config parametresine bir JSON yapılandırma dosyası veya sözlük (dict) iletin. Tam bir kılavuz ve yapılandırma referansı için FSDP bölümüne bakın.

from transformers import TrainingArguments

TrainingArguments(
    ...,
    fsdp=True,
    fsdp_config="path/to/fsdp.json",
)

Sonraki adımlar

  • Modeliniz tek bir GPU'ya sığıyorsa veri paralel eğitim için DDP'ye bakın.
  • Parametrelerin, gradyanların ve optimizör durumlarının GPU'lar arasında bölünmesi için FSDP'ye bakın.
  • ZeRO optimizasyonu ve offload için DeepSpeed'e bakın.
Update on GitHub