Transformers documentation

CPU

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

and get access to the augmented documentation experience

to get started

CPU

CPUs, hızlandırıcı olmadan cpu cihaz dizgesiyle Transformers modellerini çalıştırır. GPU'lar kullanılamadığında veya maliyet etkin bir kurulum istendiğinde hem çıkarım hem de eğitim için işe yararlar.

Çıkarım çalıştır

device_map parametresini iletmediğinizde modeller varsayılan olarak CPU’da yüklenir ve hızlandırıcı bulunmadığında pipeline() CPU’yu kullanır. Hem hızlandırıcı hem de CPU bulunan bir makinede CPU’yu kullanmak için device_map="cpu" veya device="cpu" parametresini iletin.

from transformers import pipeline

generator = pipeline("text-generation", model="Qwen/Qwen3-0.6B", device="cpu")
print(generator("CPUs are", max_new_tokens=50, do_sample=False)[0]["generated_text"])

Trainer ile Eğitim

bf16 desteğine sahip CPU'lar, örneğin son nesil Intel ve AMD işlemciler, PyTorch AMP ile bf16 karma hassasiyetli eğitim kullanabilir; bu yöntem bellek kullanımını azaltır ve eğitimi hızlandırır.

Aşağıdaki örnekler, tek bir CPU'dan, tek bir CPU'nun yetersiz kaldığı durumlarda birden fazla makineye kadar üç farklı kurulumu kapsamaktadır:

  • tek bir CPU
  • tek bir makinede birden çok süreç (CPU soketi başına bir tane)
  • birden fazla makinede birden çok süreç

Tek düğüm ve çoklu düğüm örnekleri, Intel oneAPI HPC Toolkit bileşeni olan Intel MPI'den mpirun ile süreçleri başlatır ve Trainer, gloo arka ucu üzerinden DDP çalıştırır.

tek CPU
dağıtık CPU (tek düğüm)
dağıtık CPU (birden fazla düğüm)

TrainingArguments içinde bf16=True ve use_cpu=True değerlerini ayarlayın veya bir eğitim betiğine --bf16 ve --use_cpu parametrelerini iletin. CPU üzerinde fp16 yerine bf16 tercih edin çünkü sayısal olarak daha kararlıdır.

from transformers import TrainingArguments

training_args = TrainingArguments(
    output_dir="./outputs",
    bf16=True,
    use_cpu=True,
)

CPU performansını ayarlayın

CPU eğitimindeki yükü azaltmak için daha hızlı bir bellek ayıracı ve Intel’in OpenMP çalışma zamanını önceden yükleyin. google-perftools (libtcmalloc için) ve intel-openmp Python paketini (libiomp5 için) kurun, ardından eğitim başlatmadan önce her iki kütüphaneyi de LD_PRELOAD ortam değişkenine ekleyin.

OMP_NUM_THREADS değerini, her bir sürecin kullanabileceği çekirdek sayısına ayarlayın. CPU sınırları olan bir konteynerde veya küme işinde bu, tahsis edilen CPU birimlerinin sayısıdır; bu nedenle sistem süreçleri için bazı çekirdekleri tahsis etmemiş bırakın.

Sonraki adımlar

  • Modern Intel donanımlarında BF16 performansına daha derinlemesine bakmak için Intel Sapphire Rapids ile PyTorch Transformers'ı Hızlandırma blog yazısını okuyun.
  • Çoklu işlem örneklerinin kullandığı dağıtık strateji hakkında daha fazla bilgi için DDP bölümünü okuyun.
  • OMP_NUM_THREADS'in performansı nasıl etkilediğini öğrenmek için PyTorch CPU threading notlarını okuyun.
  • Kubernetes üzerinde dağıtık CPU eğitimi çalıştırmak için Kubeflow PyTorchJob kılavuzunu okuyun.
Update on GitHub