Transformers documentation
Intel Gaudi
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=1Transformers'ı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
- Donanım ayrıntıları, yazılım yığını ve Gaudi mimarisi için Intel Gaudi belgelerini okuyun.
- Eğitim ve çıkarım için Gaudi-optimize model uygulamalarını denemek üzere Optimum for Intel Gaudi'yi deneyin.