Transformers documentation

Intel Gaudi

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

Intel Gaudi

Intel Gaudi hızlandırıcıları, hpu cihaz dizesiyle Intel Gaudi yığını üzerinde PyTorch çalıştırır. Gaudi, varsayılan olarak PyTorch'u aceleci (eager) modda çalıştırır. Aceleci mod, her işlemi çağrıldığı anda çalıştırır; bu da PyTorch'un CPU veya GPU üzerinde çalıştığı gibidir. Bu nedenle Transformers modelleri, Gaudi'ye özgü değişiklikler gerektirmeden Gaudi üzerinde çalışır. Modeli bir grafa almak içinse torch.compile ile derleyin.

Kurulum

Intel Gaudi yazılımını ve PyTorch paketini (habana-torch-plugin, habana_frameworks olarak içe aktarılır) Intel Gaudi kurulum kılavuzu ile, ayrıca Accelerate 1.5.0 veya daha yeni bir sürümle yükleyin.

Transformers, token kimlikleri için int64 tensörleri kullandığından Gaudi üzerinde int64 desteğini etkinleştirin. Transformers’ın Gaudi CI’si de aynı ayarla çalışır.

export PT_ENABLE_INT64_SUPPORT=1

Transformers'ın cihazı görebildiğinden emin olun.

from transformers import is_torch_hpu_available

print(is_torch_hpu_available())

Gaudi kullanıma hazır olduğunda True, 1.5.0'tan eski bir Accelerate sürümünde ise Gaudi cihazı mevcut olsa bile False basar.

Cihazları seçin

Bir Docker konteynerini başlattığınızda, konteynerin hangi Gaudi cihazlarını kullanabileceğini seçin. Modül kimliklerini belirtmek için HABANA_VISIBLE_MODULES değişkenini ayarlayın; bu kimlikler yeniden başlatma ve sürücü yeniden kurulumlarında aynı kalır. Alternatif olarak, değişebilen cihaz dizinlerini belirtmek için HABANA_VISIBLE_DEVICES değişkenini ayarlayın. Hiçbiri ayarlanmazsa, PyTorch sunucudaki kullanılabilir herhangi bir Gaudi cihazını kullanır.

docker run --runtime=habana -e HABANA_VISIBLE_MODULES=0,1,2,3 ...

Aygıt dizinlerini modül kimliklerine eşlemek için hl-smi -Q index,module_id -f csv komutunu çalıştırın. Bir sunucunun bir kısmında dağıtık bir iş yükü için Intel yalnızca 2 aygıtlık ve 4 aygıtlık grupları destekler. Desteklenen modül kimliği kombinasyonları için Her biri tek bir iş yüküne sahip birden fazla Docker bölümüne bakın.

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

device_map="hpu" parametresini from_pretrained() fonksiyonuna iletin. device parametresini iletmezseniz pipeline() Gaudi'yi otomatik olarak seçer.

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B", device_map="hpu")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-0.6B")

inputs = tokenizer("Intel Gaudi is", return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=50, do_sample=False)
print(tokenizer.decode(output[0], skip_special_tokens=True))

Modelleri kuantize et

bitsandbytes, Gaudi 2 ve Gaudi 3 üzerinde modelleri 4 veya 8 bit olarak kuantize eder. device_map parametresini iletmezseniz, modeli mevcut Gaudi cihazına yerleştirir.

Tek bir cihaza sığmayan bir modeli ince ayar yapmak için, modeli bitsandbytes ile 4-bit olarak yükleyin ve PEFT ile LoRA adaptörlerini eğitin.

Trainer ile Eğitim

TrainingArguments, Gaudi'yi algılar ve cihazı hpu olarak ayarlar; bu sayede Trainer, herhangi bir cihaz ayarı gerektirmeden üzerinde eğitim yapar. Tüm Gaudi nesilleri bf16'yi destekler.

from transformers import TrainingArguments

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

Trainer Gaudi üzerinde eğitim yapacaksa hpu cihazını yazdırır.

Modeli derle

Transformers, Gaudi üzerinde torch.compile işlevini sarmalar; bu nedenle hpu_backend veya eager dışında bir arka uçla yapılan herhangi bir çağrı, modelleme kodundaki @torch.compile dekoratörü dahil, hpu_backend olarak değiştirilir ve bir uyarı günlüğe kaydedilir. Bu sarmalayıcı, çıkarım veya eğitim olsun, her torch.compile çağrısına uygulanır.

Bir modeli eğitim için derlemek için TrainingArguments içinde torch_compile=True değerini ayarlayın; bu, torch_compile_backend değerini "hpu_backend" olarak belirler.

from transformers import TrainingArguments

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

Dağıtık eğitim

Dağıtık eğitim, HCCL kolektif arka ucunu kullanır. Transformers, Gaudi üzerinde bunu seçer ve ayrıca ddp_backend="hccl" ile açıkça ayarlayabilirsiniz.

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

cihazları seçtikten sonra, her Gaudi cihazı için torchrun veya accelerate launch ile bir süreç başlatın. --num_processes parametresini iletmezseniz, accelerate launch süreç sayısını Gaudi cihazlarının sayısına ayarlar.

accelerate launch train.py

Sonraki adımlar

Update on GitHub