跳到主要内容

Hugging Face Transformers 教程

欢迎学习 Hugging Face Transformers!本教程将带你从零开始,深入理解 Transformer 模型架构,掌握使用 Transformers 库进行自然语言处理、计算机视觉和多模态任务开发的完整技能。

什么是 Hugging Face Transformers?

Hugging Face Transformers 是一个开源的 Python 库,提供了大量基于 Transformer 架构的预训练模型,支持文本、图像、音频、视频和多模态任务。它是目前最流行的预训练模型库之一,在学术研究和工业应用中都有广泛应用。

Transformers 的核心定位

Transformers 库在整个 AI 生态系统中扮演着模型定义框架的核心角色:

┌─────────────────────────────────────────────────────────────────────────┐
│ AI 生态系统架构 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 训练框架 Transformers 推理引擎 │
│ ┌──────────┐ ┌─────────────┐ ┌──────────┐ │
│ │ Axolotl │ │ │ │ vLLM │ │
│ │ Unsloth │◄────────────►│ 模型定义 │◄────────────►│ SGLang │ │
│ │DeepSpeed │ │ 标准中心 │ │ TGI │ │
│ │ FSDP │ │ │ │ llama.cpp│ │
│ │PyTorch- │ │ 100万+模型 │ │ mlx │ │
│ │ Lightning│ │ checkpoints│ │ │ │
│ └──────────┘ └─────────────┘ └──────────┘ │
│ │
│ 核心功能 │
│ ┌─────────────────────────┐ │
│ │ • Pipeline 推理 │ │
│ │ • Trainer 训练 │ │
│ │ • generate 文本生成 │ │
│ │ • 模型导出与部署 │ │
│ └─────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘

Transformers 的核心特点

特点说明
统一的模型架构所有模型都基于 Config + Model + Preprocessor 三类核心类
跨框架支持支持 PyTorch、TensorFlow、JAX 三大深度学习框架
丰富的预训练模型超过 100 万个模型 checkpoint 可在 Hugging Face Hub 使用
多模态能力支持文本、图像、音频、视频和多模态任务
易用性设计Pipeline 和 Trainer 简化推理和训练流程
生态兼容性与 vLLM、DeepSpeed、Axolotl 等工具无缝集成

支持的模型类型

Transformers 库支持多种 Transformer 架构模型:

编码器模型(Encoder-only)

  • BERT、RoBERTa、ALBERT、DistilBERT、ELECTRA
  • 适用于:文本分类、命名实体识别、问答

解码器模型(Decoder-only)

  • GPT 系列、LLaMA、Mistral、Claude、Qwen
  • 适用于:文本生成、对话、代码生成

编码器-解码器模型(Encoder-Decoder)

  • T5、BART、Pegasus、Marian
  • 适用于:翻译、摘要、文本生成

视觉模型

  • ViT、Swin Transformer、DETR、SAM
  • 适用于:图像分类、目标检测、分割

多模态模型

  • CLIP、LLaVA、BLIP、Qwen-VL
  • 适用于:图文理解、视觉问答

为什么学习 Transformers?

1. 行业标准工具

  • 学术界:顶会论文中超过 80% 的 NLP 研究使用 Transformers
  • 工业界:OpenAI、Google、Meta、Microsoft 等公司广泛使用
  • 开源社区:GitHub 上最受欢迎的预训练模型库

2. 降低开发门槛

# 使用 Pipeline 只需几行代码即可完成复杂任务
from transformers import pipeline

# 情感分析
classifier = pipeline("sentiment-analysis")
result = classifier("I love using Transformers!")
# [{'label': 'POSITIVE', 'score': 0.9998}]

# 文本生成
generator = pipeline("text-generation", model="gpt2")
result = generator("The future of AI is")

3. 完整的工具链

┌─────────────────────────────────────────────────────────────┐
│ Hugging Face 生态系统 │
├─────────────────────────────────────────────────────────────┤
│ │
│ transformers datasets tokenizers │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ 预训练模型 │ │ 数据集加载 │ │ 高效分词 │ │
│ │ 推理训练 │ │ 数据处理 │ │ 多语言支持 │ │
│ └───────────┘ └───────────┘ └───────────┘ │
│ │
│ accelerate peft trl │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ 分布式训练 │ │ 参数高效微调│ │ RLHF训练 │ │
│ │ 混合精度 │ │ LoRA/QLoRA│ │ DPO训练 │ │
│ └───────────┘ └───────────┘ └───────────┘ │
│ │
│ huggingface_hub evaluate optimum │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ 模型托管 │ │ 模型评估 │ │ 推理优化 │ │
│ │ 版本管理 │ │ 指标计算 │ │ ONNX导出 │ │
│ └───────────┘ └───────────┘ └───────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

安装配置

系统要求

  • Python 3.8 或更高版本
  • PyTorch 2.0+ 或 TensorFlow 2.0+
  • (可选)CUDA 11.8+ 用于 GPU 加速

安装 Transformers

基础安装

pip install transformers

完整安装(推荐)

# 安装 PyTorch(根据 CUDA 版本选择)
pip install torch torchvision torchaudio

# 安装 Transformers 及生态工具
pip install transformers datasets evaluate accelerate

# 图像处理支持
pip install pillow

# 音频处理支持
pip install librosa

使用 conda 安装

conda install -c huggingface transformers
conda install -c huggingface datasets

验证安装

import transformers

print(f"Transformers 版本: {transformers.__version__}")

# 测试基本功能
from transformers import pipeline
classifier = pipeline("sentiment-analysis")
print(classifier("Hello, World!"))

Hugging Face Hub 登录

访问 Hugging Face 创建账号,然后登录:

# 命令行登录
huggingface-cli login

# 或在代码中登录
from huggingface_hub import login
login() # 会提示输入 access token

核心概念

1. 三类核心类

每个预训练模型都由三个基础类组成:

┌─────────────────────────────────────────────────────────────┐
│ 预训练模型结构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ │
│ │ Configuration │ 模型配置:层数、隐藏维度、注意力头数等 │
│ │ (Config) │ 例:BertConfig, GPT2Config │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ PreTrainedModel│ 模型架构:Transformer 层实现 │
│ │ (Model) │ 例:BertModel, GPT2LMHeadModel │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Preprocessor │ 预处理器:Tokenizer、ImageProcessor │
│ │ (Tokenizer) │ 例:BertTokenizer, AutoTokenizer │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

2. AutoClass 自动推断

使用 AutoClass 自动识别模型架构:

from transformers import AutoModel, AutoTokenizer, AutoConfig

# 自动加载对应架构的模型和分词器
model = AutoModel.from_pretrained("bert-base-chinese")
tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
config = AutoConfig.from_pretrained("bert-base-chinese")

3. 任务特定模型头

根据任务类型选择对应的模型类:

任务类型模型类后缀示例
特征提取ModelBertModel
文本分类ForSequenceClassificationBertForSequenceClassification
Token 分类ForTokenClassificationBertForTokenClassification
问答ForQuestionAnsweringBertForQuestionAnswering
文本生成ForCausalLMGPT2LMHeadModel
序列到序列ForSeq2SeqLMT5ForConditionalGeneration
掩码语言模型ForMaskedLMBertForMaskedLM

教程目录

本教程涵盖从入门到精通的完整内容:

基础入门

核心技能

经典模型详解

  • BERT 模型 - 双向编码器表示(敬请期待)
  • GPT 模型 - 生成式预训练 Transformer(敬请期待)
  • T5 模型 - 文本到文本转换 Transformer(敬请期待)

进阶应用

  • 多模态模型 - 视觉-语言模型应用(敬请期待)
  • 模型部署 - 导出与生产部署(敬请期待)

知识速查

学习建议

1. 前置知识

学习 Transformers 前建议掌握:

  • Python 基础:面向对象编程、函数式编程
  • 深度学习基础:神经网络、反向传播、优化器
  • PyTorch/TensorFlow:至少熟悉其中一个框架
  • Transformer 架构:自注意力机制、位置编码

2. 学习路径

基础阶段          核心阶段          进阶阶段          实战阶段
│ │ │ │
▼ ▼ ▼ ▼
环境配置 → Pipeline → 模型微调 → 项目实战
理解架构 → 模型加载 → 参数高效微调 → 模型部署
分词器使用 → 训练流程 → 多模态应用 → 性能优化

3. 实践建议

参考资源

官方资源

学习资源

准备好了吗?

准备好开始学习 Hugging Face Transformers 了吗?本教程将带你深入理解 Transformer 模型,掌握从简单推理到复杂微调的完整技能。点击下一章开始你的学习之旅!