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

Python Transformers 库使用指南

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

DebugKing发布于 2026/3/29更新于 2026/5/2828 浏览
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    )
 'attention_mask' tensor(      )

,
2129
,
2024
,
2017
,
102
]
]
,
:
[
[
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. 参考资料
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 从 HTAP 到 AI 加速,KingbaseES 的技术演进之路
  • Java AI 辅助开发实战:从代码生成到架构优化指南
  • 基于 UniApp 微信小程序的健身俱乐部课程预订与场地预约系统
  • Linux 开发工具:GDB 调试器使用指南
  • 网络安全基础核心知识点梳理与防护策略
  • 基于腾讯云 HAI 与 DeepSeek 快速构建个人网页
  • Stable Diffusion 3 Medium 模型在 ComfyUI 中的部署与使用
  • 从硅谷产品经理视角看 AI 产品经理是否需要懂技术与算法
  • Telegram 关键词搜索机器人搭建指南(含 Python 脚本)
  • 转行Python的实践与思考
  • AI 语音机器人在复杂噪声环境下的语义识别准确率对比分析
  • PCL 点云处理核心算法与模块汇总 (C++)
  • 简化版 Transformer 架构研究:移除残差连接与归一化层
  • 大模型应用开发:RAG 入门与实战
  • Ollama 实战:使用 Spring AI 调用本地大模型
  • C/C++ 输入输出实战:OJ 场景与性能优化
  • C++ 智能指针:使用场景、实现原理与内存泄漏防治
  • AI 产品经理产品开发全流程解析
  • 本地知识库与 RAG 技术详解:大模型如何结合外部资料库
  • Android 面试核心考点与实战经验总结

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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