Transformers 和 PyTorch 的区别与安装指南


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
  • 官方推荐命令 (根据你的环境选择):

    bash 复制代码
    # CUDA 12.1 版本(GPU 加速)
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
    
    # 纯 CPU 版本
    pip install torch torchvision torchaudio
    • 验证安装:

      python 复制代码
      import torch
      print(torch.__version__)  # 输出版本号(如 2.3.0)
      print(torch.cuda.is_available())  # 检查 GPU 是否可用
(2) 安装 Transformers
  • 直接安装

    bash 复制代码
    pip install transformers
  • 完整功能版(含数据集和评估工具)

    bash 复制代码
    pip install transformers[torch,dataloader,testing]
  • 验证安装:

    python 复制代码
    from transformers import pipeline
    print(pipeline('sentiment-analysis')("I love Python!"))
    # 输出: [{'label': 'POSITIVE', 'score': 0.9998}]

4. 常见问题

Q1: 应该先装 PyTorch 还是 Transformers?
  • 必须优先安装 PyTorch ,否则 transformers 可能自动安装不兼容的 CPU 版 PyTorch。
Q2: 安装后提示 Could not find module 'torch'
  • 检查 Python 环境是否匹配(用 python -m pip install 避免装错环境)。

  • 尝试重新安装 PyTorch 指定版本:

    bash 复制代码
    pip uninstall torch -y
    pip install torch==2.3.0
Q3: 如何安装特定版本的 Transformers?
bash 复制代码
pip install transformers==4.40.0  # 指定版本

5. 快速示例:用两者协作完成文本分类

python 复制代码
import torch
from transformers import AutoModel, AutoTokenizer

# 1. 加载预训练模型(Transformers)
model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)

# 2. 数据预处理(PyTorch 张量转换)
inputs = tokenizer("Hello world!", return_tensors="pt")  # 输出 PyTorch Tensor

# 3. 模型推理(PyTorch 计算)
with torch.no_grad():
    outputs = model(**inputs)

print(outputs.last_hidden_state.shape)  # torch.Size([1, 3, 768])

总结

  • PyTorch 是基础框架,负责张量计算和模型训练。
  • Transformers 是上层工具库,提供现成模型,依赖 PyTorch 运行。
  • 安装顺序:先 PyTorch → 再 Transformers。
  • 如果需要 GPU 加速,务必安装 CUDA 版本的 PyTorch。