Transformers documentation
在 Apple Silicon 芯片上进行 PyTorch 训练
开始使用
教程
使用pipelines进行推理使用AutoClass编写可移植的代码预处理数据微调预训练模型通过脚本训练模型使用🤗Accelerate进行分布式训练使用🤗 PEFT加载和训练adapters分享您的模型使用LLMs进行生成生成策略
开发者指南
使用 🤗 Tokenizers 中的分词器使用多语言模型进行推理使用特定于模型的 API共享自定义模型聊天模型的模板导出为 ONNX与 GGUF 格式的互操作性与 Tiktoken 文件的互操作性社区资源
性能和可扩展性
贡献
概念指南
应用程序接口 (API)
You are viewing main version, which requires installation from source. If you'd like
regular pip install, checkout the latest stable version (v5.9.0).
在 Apple Silicon 芯片上进行 PyTorch 训练
之前,在 Mac 上训练模型仅限于使用 CPU 训练。不过随着PyTorch v1.12的发布,您可以通过在 Apple Silicon 芯片的 GPU 上训练模型来显著提高性能和训练速度。这是通过将 Apple 的 Metal 性能着色器 (Metal Performance Shaders, MPS) 作为后端集成到PyTorch中实现的。MPS后端 将 PyTorch 操作视为自定义的 Metal 着色器来实现,并将对应模块部署到mps设备上。
某些 PyTorch 操作目前还未在 MPS 上实现,可能会抛出错误提示。可以通过设置环境变量
PYTORCH_ENABLE_MPS_FALLBACK=1来使用CPU内核以避免这种情况发生(您仍然会看到一个UserWarning)。
如果您遇到任何其他错误,请在PyTorch库中创建一个 issue,因为
Trainer类中只集成了 MPS 后端.
配置好mps设备后,您可以:
- 在本地训练更大的网络或更大的批量大小
- 降低数据获取延迟,因为 GPU 的统一内存架构允许直接访问整个内存存储
- 降低成本,因为您不需要再在云端 GPU 上训练或增加额外的本地 GPU
在确保已安装PyTorch后就可以开始使用了。 MPS 加速支持macOS 12.3及以上版本。
pip install torch torchvision torchaudio
TrainingArguments类默认使用mps设备(如果可用)因此无需显式设置设备。例如,您可以直接运行run_glue.py脚本,在无需进行任何修改的情况下自动启用 MPS 后端。
export TASK_NAME=mrpc
python examples/pytorch/text-classification/run_glue.py \
--model_name_or_path google-bert/bert-base-cased \
--task_name $TASK_NAME \
- --use_mps_device \
--do_train \
--do_eval \
--max_seq_length 128 \
--per_device_train_batch_size 32 \
--learning_rate 2e-5 \
--num_train_epochs 3 \
--output_dir /tmp/$TASK_NAME/ \用于分布式设置的后端(如gloo和nccl)不支持mps设备,这也意味着使用 MPS 后端时只能在单个 GPU 上进行训练。
您可以在Introducing Accelerated PyTorch Training on Mac博客文章中了解有关 MPS 后端的更多信息。
Update on GitHub