Transformers documentation
GPU Intel
GPU Intel
GPU Intel menjalankan PyTorch melalui backend XPU, dengan string perangkat xpu. Build XPU PyTorch berasal dari indeks paket yang terpisah, sehingga perintah instalasi di bawah ini menambahkannya sebagai indeks tambahan.
Instalasi
Instal driver GPU Intel untuk PyTorch, lalu jalankan xpu-smi untuk mengonfirmasi bahwa sistem Anda mendeteksi GPU.
Install PyTorch dari indeks XPU bersama dengan Transformers.
pip install "transformers[torch]" --extra-index-url https://download.pytorch.org/whl/xpuPeriksa bahwa PyTorch dapat melihat GPU.
import torch
print(torch.xpu.is_available(), torch.xpu.device_count())Ia mencetak True dan jumlah GPU, misalnya True 2.
Pilih dan urutkan XPU
Gunakan variabel lingkungan ZE_AFFINITY_MASK untuk memilih XPU. Tetapkan variabel ini pada baris perintah yang sama dengan eksekusi, karena variabel yang diekspor namun terlupakan dapat secara diam-diam mengarahkan eksekusi berikutnya ke XPU yang salah.
Sebagai contoh, untuk memilih XPU 0 dan 2 dari empat:
ZE_AFFINITY_MASK=0,2 torchrun trainer-program.py ...PyTorch hanya melihat XPU 0 dan 2. Urutan nilai dalam ZE_AFFINITY_MASK tidak mengubah urutan yang digunakan PyTorch untuk mendaftar perangkat tersebut. Untuk mendapatkan urutan yang konsisten antar eksekusi, juga atur ZE_ENABLE_PCI_ID_DEVICE_ORDER=1, yang melaporkan perangkat dari PCI bus ID terendah hingga tertinggi.
ZE_ENABLE_PCI_ID_DEVICE_ORDER=1 ZE_AFFINITY_MASK=0,2 torchrun trainer-program.py ...Lihat spesifikasi Level Zero untuk informasi lebih lanjut tentang enumerasi perangkat.
Pilih backend perhatian
Anda mengatur backend perhatian dengan attn_implementation saat memuat model, dan ini berlaku untuk inferensi maupun pelatihan. Model menggunakan SDPA secara default. Dengan PyTorch 2.8 atau lebih baru, SDPA pada XPU menangani grouped-query attention secara langsung, tanpa perlu mengulang kepala key dan value terlebih dahulu.
attn_implementation="flash_attention_2" memuat kernels-community/flash-attn2 dari Hub, yang menyediakan build XPU. Instal ekstra kernels untuk menggunakannya. FlashAttention-3 dan FlashAttention-4 hanya berjalan pada GPU NVIDIA.
pip install "transformers[kernels]"from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-0.6B",
dtype="bfloat16",
device_map="xpu",
attn_implementation="flash_attention_2",
)Jalankan inferensi
Lewati device_map="auto" ke from_pretrained() untuk membagi model yang tidak muat di satu XPU ke seluruh XPU yang tersedia, atau device_map="xpu" untuk memuatnya di satu XPU. pipeline() memilih XPU secara otomatis ketika Anda tidak melewatkan device.
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B", dtype="bfloat16", device_map="xpu")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-0.6B")
inputs = tokenizer("Intel GPUs are", 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))Continuous batching mendukung grafik XPU dan batching asinkron pada GPU Intel, serta secara otomatis menentukan apakah akan menggunakannya.
Gunakan kernel Hub
Setel use_kernels=True di from_pretrained() untuk mengganti lapisan yang didukung dengan kernel yang dioptimalkan dari Hub. GPU Intel mencakup sebagian besar lapisan yang sama dengan GPU NVIDIA, seperti aktivasi, RMSNorm, dan rotary embeddings. Instal ekstra kernels untuk menggunakannya.
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-0.6B", dtype="bfloat16", device_map="xpu", use_kernels=True
)Hub kernels juga berlaku untuk pelatihan. Memanggil model.train() atau model.eval() akan mengganti kernel untuk mode tersebut. Untuk memilih kernel secara manual, berikan KernelConfig dan gunakan "xpu" sebagai kunci perangkat untuk pemetaan khusus XPU. Lihat Memuat kernel untuk pemetaan lengkap.
Kuantisasi model
Quantization memungkinkan model yang lebih besar muat di memori GPU. Periksa kolom Intel GPU di ringkasan quantization untuk metode yang berjalan di XPU.
Untuk melakukan fine-tuning pada model yang tidak muat di memori GPU, muat model tersebut dalam 4-bit dengan bitsandbytes dan latih adapter LoRA dengan PEFT.
Latih dengan Trainer
TrainingArguments mendeteksi GPU Intel dan mengatur perangkat ke xpu, sehingga Trainer dapat melatih di atasnya tanpa pengaturan perangkat apa pun. TrainingArguments memeriksa dukungan bf16 dengan torch.xpu.is_bf16_supported() dan melempar ValueError jika GPU tidak mendukungnya.
from transformers import TrainingArguments
training_args = TrainingArguments(
output_dir="./outputs",
bf16=True,
)
print(training_args.device)Ia mencetak xpu:0 ketika Trainer akan melatih pada satu XPU.
Pelatihan terdistribusi
Pelatihan terdistribusi menggunakan backend kolektif xccl. Jalankan satu proses per XPU dengan torchrun atau accelerate launch.
torchrun --nproc_per_node=2 train.py
Lihat DDP, FSDP2, DeepSpeed ZeRO, dan Tensor parallelism untuk memilih strategi paralelisme.
Langkah selanjutnya
- Baca panduan memulai dengan Intel GPU di PyTorch untuk perangkat keras dan platform yang didukung.
- Baca Backend perhatian untuk mempelajari bagaimana
attn_implementationmemilih fungsi perhatian.