Transformers 和 PyTorch 的区别与安装指南
1. 核心区别
特性 | PyTorch | Transformers (Hugging Face) |
---|
定位 | 深度学习框架(Tensor 计算、自动微分) | 预训练模型库(基于 PyTorch/TensorFlow) |
功能 | 提供张量操作、神经网络构建、训练流程 | 提供现成的 NLP/CV 模型(如 BERT、GPT) |
使用场景 | 从零搭建模型 | 直接加载预训练模型进行微调或推理 |
代码示例 | ```python | ```python |
| import torch | from transformers import AutoModel |
| model = torch.nn.Linear(10, 2) | model = AutoModel.from_pretrained(“bert-base-uncased”) |
| ``` | ``` |
2. 依赖关系
- Transformers 依赖 PyTorch:
Hugging Face 的 transformers
库本身是模型接口,底层计算需要 PyTorch 或 TensorFlow 支持。
(如果你只安装 transformers
而不装 PyTorch,会报错!)
3. 安装方法
(1) 安装 PyTorch
(2) 安装 Transformers
- 直接安装:
pip install transformers
- 完整功能版(含数据集和评估工具):
pip install transformers[torch,dataloader,testing]
- 验证安装:
from transformers import pipeline
print(pipeline('sentiment-analysis')("I love Python!"))
4. 常见问题
Q1: 应该先装 PyTorch 还是 Transformers?
- 必须优先安装 PyTorch,否则
transformers
可能自动安装不兼容的 CPU 版 PyTorch。
Q2: 安装后提示 Could not find module 'torch'
?
Q3: 如何安装特定版本的 Transformers?
pip install transformers==4.40.0
5. 快速示例:用两者协作完成文本分类
import torch
from transformers import AutoModel, AutoTokenizer
model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)
inputs = tokenizer("Hello world!", return_tensors="pt")
with torch.no_grad():outputs = model(**inputs)print(outputs.last_hidden_state.shape)
总结
- PyTorch 是基础框架,负责张量计算和模型训练。
- Transformers 是上层工具库,提供现成模型,依赖 PyTorch 运行。
- 安装顺序:先 PyTorch → 再 Transformers。
- 如果需要 GPU 加速,务必安装 CUDA 版本的 PyTorch。