Transformers documentation
Аппаратное обеспечение
Аппаратное обеспечение
Transformers работает на CPU, GPU NVIDIA, GPU AMD, Apple Silicon, TPU Google, инстансах AWS Trainium и других устройствах через их бэкенды PyTorch.
- Для обучения TrainingArguments автоматически определяет бэкенд.
- Для инференса автоматическое определение не покрывает все бэкенды, поэтому передайте строку устройства, чтобы явно выбрать нужный. На этой странице перечислены строка устройства и пакет для каждого бэкенда, для чего TrainingArguments настраивает его, и как Transformers определяет, какое устройство использовать.
Найдите своё оборудование
У каждого бэкенда есть строка устройства, которую вы передаёте в device_map или device. CPU и Apple Silicon работают со стандартным пакетом torch. Для остальных бэкендов требуется пакет-расширение PyTorch, который регистрирует бэкенд в PyTorch.
| Аппаратное обеспечение | Строка устройства | Пакет |
|---|---|---|
| CPU | cpu | torch |
| GPU NVIDIA | cuda | torch |
| GPU AMD | cuda | torch (сборка 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 |
| Huawei Ascend NPU | npu | torch-npu |
| Cambricon MLU | mlu | torch-mlu |
| GPU Moore Threads | musa | torch-musa |
Если в этой таблице отсутствует какой-либо аппаратный бэкенд, а вы считаете, что Transformers его поддерживает, пожалуйста, создайте issue.
Как Transformers выбирает устройство
Transformers выбирает разные устройства для обучения и инференса.
Обучение
TrainingArguments автоматически определяет бэкенд через Accelerate. В распределённом запуске каждый процесс использует устройство, назначенное ему Accelerate. В однопроцессном режиме TrainingArguments выбирает первый доступный бэкенд, а если ни один не найден — переключается на CPU. Чтобы принудительно запустить обучение на CPU, установите use_cpu=True.
Вывод
from_pretrained() по умолчанию загружает модель на CPU.
Установите device_map="auto", чтобы разместить модель на доступных ускорителях. Автоматическое размещение использует Accelerate для обнаружения CUDA, Intel XPU, Intel Gaudi (HPU) и Apple Silicon (MPS), среди прочего, но не охватывает все бэкенды. Для других бэкендов, таких как AWS Trainium и Google TPU, явно передайте строку устройства в device_map.
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B", device_map="neuron")