边写代码零食不停口 盼盼麦香鸡味块 、卡乐比(Calbee)薯条三兄弟 独立小包、好时kisses多口味巧克力糖、老金磨方【黑金系列】黑芝麻丸
边写代码边贴面膜 事业美丽两不误 DR. YS 野森博士+【AOUFSE/澳芙雪特证】377专研美白淡斑面膜组合 优惠劵
别光顾写代码更要多喝茶水,提神有营养 六安瓜片茶叶茶香二级200g 2025年新茶雨前盒装自己喝
让AI成为我们的得力助手:《用Cursor玩转AI辅助编程——不写代码也能做软件开发》
以下是一份关于 transformers
库的全面讲解,包含基础知识、高级用法、案例代码及学习路径。内容经过组织,适合不同阶段的学习者。
一、基础知识
1. Transformers 库简介
- 作用:提供预训练模型(如 BERT、GPT、RoBERTa)和工具,用于 NLP 任务(文本分类、翻译、生成等)。
- 核心组件:
Tokenizer
:文本分词与编码Model
:神经网络模型架构Pipeline
:快速推理的封装接口
2. 安装与环境配置
pip install transformers torch datasets
3. 快速上手示例
from transformers import pipeline
# 使用情感分析流水线
classifier = pipeline("sentiment-analysis")
result = classifier("I love programming with Transformers!")
print(result) # [{'label': 'POSITIVE', 'score': 0.9998}]
二、核心模块详解
1. Tokenizer(分词器)
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
text = "Hello, world!"
encoded = tokenizer(text,
padding=True,
truncation=True,
return_tensors="pt") # 返回PyTorch张量
print(encoded)
# {'input_ids': tensor([[101, 7592, 1010, 2088, 999, 102]]),
# 'attention_mask': tensor([[1, 1, 1, 1, 1, 1]])}
2. Model(模型加载)
from transformers import AutoModel
model = AutoModel.from_pretrained("bert-base-uncased")
outputs = model(**encoded) # 前向传播
last_hidden_states = outputs.last_hidden_state
三、高级用法
1. 自定义模型训练(PyTorch示例)
from transformers import BertForSequenceClassification, Trainer, TrainingArguments
from datasets import load_dataset
# 加载数据集
dataset = load_dataset("imdb")
tokenized_datasets = dataset.map(
lambda x: tokenizer(x["text"], padding=True, truncation=True),
batched=True
)
# 定义模型
model = BertForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)
# 训练参数配置
training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=8,
evaluation_strategy="epoch"
)
# 训练器配置
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["test"]
)
# 开始训练
trainer.train()
2. 模型保存与加载
model.save_pretrained("./my_model")
tokenizer.save_pretrained("./my_model")
# 加载自定义模型
new_model = AutoModel.from_pretrained("./my_model")
四、深入进阶
1. 注意力机制可视化
from transformers import BertModel, BertTokenizer
import torch
model = BertModel.from_pretrained("bert-base-uncased", output_attentions=True)
inputs = tokenizer("The cat sat on the mat", return_tensors="pt")
outputs = model(**inputs)
# 提取第0层的注意力权重
attention = outputs.attentions[0][0]
print(attention.shape) # [num_heads, seq_len, seq_len]
2. 混合精度训练
from transformers import TrainingArguments
training_args = TrainingArguments(
fp16=True, # 启用混合精度
...
)
五、完整案例:命名实体识别(NER)
from transformers import pipeline
# 加载NER流水线
ner_pipeline = pipeline("ner", model="dslim/bert-base-NER")
text = "Apple was founded by Steve Jobs in Cupertino."
results = ner_pipeline(text)
# 结果可视化
for entity in results:
print(f"{
entity['word']} -> {
entity['entity']} (confidence: {
entity['score']:.2f})")
六、学习路径建议
- 入门阶段:
- 官方文档:huggingface.co/docs/transformers
- 学习
pipeline
和基础模型使用
- 中级阶段:
- 掌握自定义训练流程
- 理解模型架构(Transformer、BERT原理)
- 高级阶段:
- 模型蒸馏与量化
- 自定义模型架构开发
- 大模型微调技巧
七、资源推荐
- 必读论文:
- 《At