# Perangkat Keras

Transformers berjalan di CPU, GPU NVIDIA, GPU AMD, Apple Silicon, TPU Google, instans Trainium AWS, dan lainnya melalui backend PyTorch mereka.

- Untuk pelatihan, [TrainingArguments](/docs/transformers/main/id/main_classes/trainer#transformers.TrainingArguments) mendeteksi backend secara otomatis.
- Untuk inferensi, deteksi otomatis tidak mencakup semua backend, sehingga Anda perlu meneruskan string perangkat untuk memilihnya secara eksplisit. Halaman ini mencantumkan string perangkat dan paket untuk setiap backend, apa yang dikonfigurasi oleh [TrainingArguments](/docs/transformers/main/id/main_classes/trainer#transformers.TrainingArguments), dan bagaimana Transformers menentukan perangkat mana yang akan digunakan.

## Temukan perangkat keras Anda

Setiap backend memiliki string perangkat yang Anda lewati ke `device_map` atau `device`. CPU dan Apple Silicon bekerja dengan paket standar `torch`. Backend lainnya memerlukan paket ekstensi PyTorch yang mendaftarkan backend tersebut ke PyTorch.

| Perangkat Keras                         | String perangkat | Paket               |
|----------------------------------|---------------|-----------------------|
| [CPU](./cpu)                     | `cpu`         | `torch`               |
| [NVIDIA GPU](./nvidia_gpu)       | `cuda`        | `torch`               |
| [GPU AMD](./amd_gpu)             | `cuda`        | `torch` (build ROCm)  |
| [AWS Trainium](./aws_trainium)   | `neuron`      | `torch-neuronx`       |
| [Google TPU](./google_tpu)       | `tpu`         | `torch-tpu`           |
| [GPU Intel](./intel_gpu)         | `xpu`         | `torch`               |
| [Apple Silicon](./apple_silicon) | `mps`         | `torch`               |
| [Intel Gaudi](./intel_gaudi)     | `hpu`         | `habana-torch-plugin` |
| Huawei Ascend NPU                | `npu`         | `torch-npu`           |
| Cambricon MLU                    | `mlu`         | `torch-mlu`           |
| GPU Moore Threads                | `musa`        | `torch-musa`          |

> [!TIP]
> Jika backend perangkat keras tidak ada dalam tabel ini dan Anda yakin Transformers mendukungnya, silakan [buat masalah](https://github.com/huggingface/transformers/issues/new/choose).

## Cara Transformers memilih perangkat

Transformers memilih perangkat yang berbeda untuk pelatihan dan inferensi.

### Pelatihan

[TrainingArguments](/docs/transformers/main/id/main_classes/trainer#transformers.TrainingArguments) mendeteksi backend secara otomatis melalui [Accelerate](https://hf.co/docs/accelerate/index). Dalam eksekusi terdistribusi, setiap proses menggunakan perangkat yang ditugaskan oleh Accelerate. Dalam satu proses, [TrainingArguments](/docs/transformers/main/id/main_classes/trainer#transformers.TrainingArguments) memilih backend pertama yang tersedia, dan beralih ke CPU jika tidak ada yang tersedia. Atur `use_cpu=True` untuk memaksa pelatihan di CPU.

### Inferensi

[from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) memuat model di CPU secara default.

Setel `device_map="auto"` untuk menempatkan model pada akselerator yang tersedia. Penempatan otomatis bergantung pada Accelerate untuk mendeteksi CUDA, Intel XPU, Intel Gaudi (HPU), dan Apple Silicon (MPS), di antara lainnya, tetapi tidak mencakup semua backend. Untuk backend lain, seperti AWS Trainium dan Google TPU, berikan string perangkat ke `device_map` secara eksplisit.

```py
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B", device_map="neuron")
```

