跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python Transformers 库使用指南

Transformers 是由 Hugging Face 开发的开源 Python 库,提供统一接口使用预训练 Transformer 模型。支持 PyTorch 和 TensorFlow,涵盖文本分类、问答、生成等多种任务。通过 Pipeline 可快速上手,也支持自定义微调。优势在于易用性和丰富生态,局限在于资源消耗和推理延迟。适合构建语言理解系统。

DebugKing发布于 2026/3/29更新于 2026/9/461 浏览
Python Transformers 库使用指南

一、什么是 Transformers?

Transformers 是一个由 Hugging Face 开发并维护的开源 Python 库,旨在为开发者提供简单、统一的接口来使用预训练的 Transformer 模型。它支持超过 300 种预训练模型(如 BERT、RoBERTa、GPT-2、T5、DistilBERT、XLM-R 等),适用于多种语言和任务。

该库的主要特点包括:

  • 支持 PyTorch 和 TensorFlow 框架。
  • 提供简洁的 API 接口,便于快速加载和使用模型。
  • 集成大量预训练模型,开箱即用。
  • 支持文本分类、命名实体识别、问答、翻译、摘要生成等多种任务。
  • 可轻松微调模型以适应特定应用场景。

二、安装 Transformers

要使用 Transformers,首先需要安装它。推荐使用 pip 安装:

pip install transformers

如果你还希望使用 PyTorch 或 TensorFlow,也需单独安装:

# 安装 PyTorch(推荐)
pip install torch
# 或者安装 TensorFlow
pip install tensorflow

此外,许多任务还需要分词器(Tokenizer),通常会自动随模型一起下载,但你也可以手动安装相关依赖。


三、核心组件介绍

1. 模型(Model)

Transformers 中的模型是执行具体 NLP 任务的核心。例如:

  • BertForSequenceClassification:用于文本分类。
  • BertForQuestionAnswering:用于问答任务。
  • GPT2LMHeadModel:用于文本生成。

你可以通过模型名称从 Hugging Face 模型中心加载预训练模型。

2. 分词器(Tokenizer)

分词器负责将原始文本转换为模型可理解的数字输入(token IDs)。每个模型都有对应的分词器。

例如,BERT 使用 WordPiece 分词,而 GPT 使用 Byte-Pair Encoding(BPE)。

from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
tokens = tokenizer("Hello, how are you?", return_tensors='pt')
print(tokens)

输出示例:

{
 'input_ids': tensor([[101, 7592, 1010, 2129, 2024, 2017, 102]]),
 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1]])
}

其中 101 和 102 分别代表 [CLS] 和 [SEP] 特殊标记。

3. 管道(Pipeline)

pipeline 是 Transformers 提供的高级 API,允许用户无需编写复杂代码即可完成常见任务。

示例 1:情感分析

from transformers import pipeline
classifier = pipeline("sentiment-analysis")
result = classifier("I love using the Transformers library!")
print(result) # 输出:[{'label': 'POSITIVE', 'score': 0.9998}]

示例 2:命名实体识别(NER)

ner_pipeline = pipeline("ner", grouped_entities=True)
entities = ner_pipeline("Apple is looking at buying a U.K. startup for $1 billion.")
print(entities)

示例 3:文本生成

generator = pipeline("text-generation", model="gpt2")
texts = generator("Once upon a time,", max_length=50, num_return_sequences=2)
for text in texts:
    print(text['generated_text'])

四、自定义模型微调(Fine-tuning)

虽然预训练模型已经很强大,但在特定数据集上微调通常能获得更好的性能。

以下是一个简单的文本分类微调示例(使用 PyTorch):

from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer
import torch
from datasets import load_dataset

# 加载数据集(以 IMDb 电影评论为例)
dataset = load_dataset('imdb')

# 加载分词器和模型
model_name = 'distilbert-base-uncased'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)

# 分词函数
def tokenize_function(examples):
    return tokenizer(examples['text'], truncation=True, padding=True, max_length=512)

# 对数据集进行分词
tokenized_datasets = dataset.map(tokenize_function, batched=True)

# 训练参数
training_args = TrainingArguments(
    output_dir='./results',
    evaluation_strategy="epoch",
    per_device_train_batch_size=8,
    per_device_eval_batch_size=8,
    num_train_epochs=3,
    weight_decay=0.01,
)

# 创建 Trainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_datasets['train'],
    eval_dataset=tokenized_datasets['test']
)

# 开始训练
trainer.train()

注意:上述代码需要额外安装 datasets 库:pip install datasets


五、支持的任务类型

Transformers 支持广泛的任务,包括但不限于:

任务类型示例模型
文本分类BERT, DistilBERT
命名实体识别(NER)BERT, RoBERTa
问答(QA)BERT, ALBERT
文本生成GPT-2, GPT-Neo
机器翻译T5, MarianMT
文本摘要BART, Pegasus
句子相似度Sentence-BERT

六、优势与局限

优点:
  • 易用性高:pipeline 接口让新手也能快速上手。
  • 生态丰富:与 Datasets、Accelerate、Evaluate 等库无缝集成。
  • 社区活跃:Hugging Face Hub 上有成千上万共享模型。
  • 跨框架支持:同时支持 PyTorch 和 TensorFlow。
局限:
  • 资源消耗大:大型模型(如 GPT-3)需要高性能 GPU。
  • 推理延迟高:实时应用中可能需要模型压缩或蒸馏。
  • 黑盒性质:部分模型难以解释其决策过程。

七、结语

Transformers 不仅是一个 Python 库,更是一个推动 NLP 民主化的重要平台。它让研究人员和开发者能够以前所未有的速度构建强大的语言理解系统。无论你是想快速实现一个情感分析工具,还是在专业场景下微调模型解决实际问题,Transformers 都是一个不可或缺的工具。

未来,随着模型小型化、多模态融合(如图像 + 文本)的发展,Transformers 也将持续进化,继续引领 AI 技术的前沿。


参考资料

  • 官方网站:https://huggingface.co/transformers
  • GitHub 仓库:https://github.com/huggingface/transformers
  • Hugging Face 模型中心:https://huggingface.co/models

目录

  1. 一、什么是 Transformers?
  2. 二、安装 Transformers
  3. 安装 PyTorch(推荐)
  4. 或者安装 TensorFlow
  5. 三、核心组件介绍
  6. 1. 模型(Model)
  7. 2. 分词器(Tokenizer)
  8. 3. 管道(Pipeline)
  9. 四、自定义模型微调(Fine-tuning)
  10. 加载数据集(以 IMDb 电影评论为例)
  11. 加载分词器和模型
  12. 分词函数
  13. 对数据集进行分词
  14. 训练参数
  15. 创建 Trainer
  16. 开始训练
  17. 五、支持的任务类型
  18. 六、优势与局限
  19. 优点:
  20. 局限:
  21. 七、结语
  22. 参考资料

更多推荐文章

查看全部
  • Git 工作流程详解:从概念到实战选择
  • 网络安全怎么入门:岗位方向与学习路线
  • 高鋒集團 Web3Labs 黃俊瑯:以資本與生態賦能傳統企業 Web3 轉型
  • VS Code 集成 Git 操作指南:从环境配置到分支管理
  • Maxar Open Data:开源卫星影像数据集完整指南
  • AI Skill 开发实战:网页内容抓取功能实现
  • JDK + Maven + IDEA 安装配置指南
  • 基于 Python 的 AI 三工具实战:文档总结、代码生成与智能检索
  • AR 试妆肤色匹配算法公平性测试:框架构建与实战
  • C++与Linux基础:语言特性上的文件操作
  • Kali Linux 2025.4 在 VMware 中鼠标不显示的解决方法
  • Java 25 虚拟线程核心优化与使用
  • GitHub 教育认证通过后如何领取 Copilot Pro
  • Cogito-v1-preview-llama-3B:128k 长文本中的跨段落逻辑矛盾检测
  • 美团 EvoCUA 刷新开源 SOTA:具备持续进化能力的计算机操作智能体
  • MixAIHub:主流 AI 模型聚合访问平台
  • 删除排序链表中的重复元素 II(链表)
  • Qwen-Image-Lightning 水墨画生成实战指南
  • C++ 手写 Web 服务器:JSON 序列化与 HTTP 协议实战
  • Antigravity 上手指南:打造 VS Code 风格的 AI IDE

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online