Transformers documentation
Phần cứng
Phần cứng
Transformers chạy trên CPU, GPU NVIDIA, GPU AMD, Apple Silicon, TPU Google, các instance Trainium của AWS và nhiều hơn nữa thông qua các backend PyTorch của chúng.
- Đối với huấn luyện, TrainingArguments tự động phát hiện backend.
- Đối với suy luận, việc phát hiện tự động không bao phủ mọi backend, vì vậy hãy truyền chuỗi thiết bị để chọn một cách rõ ràng. Trang này liệt kê chuỗi thiết bị và gói cho từng backend, những gì TrainingArguments cấu hình cho nó, và cách Transformers quyết định sử dụng thiết bị nào.
Tìm phần cứng của bạn
Mỗi backend có một chuỗi thiết bị mà bạn truyền vào device_map hoặc device. CPU và Apple Silicon hoạt động với gói torch tiêu chuẩn. Các backend khác yêu cầu một gói mở rộng PyTorch để đăng ký backend với PyTorch.
| Phần cứng | Chuỗi thiết bị | Gói |
|---|---|---|
| CPU | cpu | torch |
| GPU NVIDIA | cuda | torch |
| GPU AMD | cuda | torch (bản build ROCm) |
| AWS Trainium | neuron | torch-neuronx |
| Google TPU | tpu | torch-tpu |
| GPU Intel | xpu | torch |
| Apple Silicon | mps | torch |
| Intel Gaudi | hpu | habana-torch-plugin |
| NPU Huawei Ascend | npu | torch-npu |
| Cambricon MLU | mlu | torch-mlu |
| GPU Moore Threads | musa | torch-musa |
Nếu một backend phần cứng không có trong bảng này và bạn tin rằng Transformers hỗ trợ nó, vui lòng mở một issue.
Cách Transformers chọn thiết bị
Transformers chọn thiết bị khác nhau cho huấn luyện và suy luận.
Huấn luyện
TrainingArguments tự động phát hiện backend thông qua Accelerate. Trong một lần chạy phân tán, mỗi tiến trình sử dụng thiết bị mà Accelerate gán cho nó. Trong một tiến trình đơn, TrainingArguments chọn backend khả dụng đầu tiên và chuyển sang CPU nếu không có backend nào khả dụng. Đặt use_cpu=True để buộc huấn luyện trên CPU.
Suy luận
from_pretrained() tải mô hình lên CPU theo mặc định.
Đặt device_map="auto" để đặt mô hình lên các bộ tăng tốc khả dụng. Việc đặt tự động dựa vào Accelerate để phát hiện CUDA, Intel XPU, Intel Gaudi (HPU) và Apple Silicon (MPS), trong số các hệ thống khác, nhưng không bao phủ mọi backend. Đối với các backend khác, chẳng hạn như AWS Trainium và Google TPU, hãy truyền chuỗi thiết bị cho device_map một cách tường minh.
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B", device_map="neuron")