Transformers 库介绍及环境搭建
1 课程概览
本课介绍 Transformers 库及环境搭建。HuggingFace 是开源的基于 Transformer 模型结构的预训练语言模型提供方。Transformers 库用于加载 HuggingFace 网站上的预训练模型。三种加载方式:Pipeline(管道,初学者)、AutoModel(自动,中间)、具体模型(原材料,大佬)。国内可用 ModelScope(魔搭社区)替代。
2 核心概念与定义
- HuggingFace:开源的预训练语言模型提供方,总部位于美国纽约。
- Transformers:用于加载 HuggingFace 网站上预训练模型的库。
- Pipeline:管道方式,初学者使用。
- AutoModel:自动模型方式,中间用户使用。
- 具体模型:原材料方式,大佬使用。
- ModelScope:国内的魔搭社区,替代 HuggingFace。
3 模型与算法详解
HuggingFace 介绍
开源的基于 Transformer 模型结构的预训练语言模型提供方。
- 总部位于美国纽约
- 最早做聊天机器人
- 后来致力于 NLP 平民化,做开源
- 提供 BERT、GPT、RoBERTa 等预训练模型
- 支持 PyTorch、TensorFlow,且支持相互转换
Transformers 库的作用
加载 HuggingFace 网站上的预训练模型。
- 从 HuggingFace 网站下载预训练模型
- 加载模型到代码中使用
- 支持各种 NLP 预训练语言模型
三种加载方式
| 方式 | 名称 | 适用人群 | 类比 |
|---|---|---|---|
| Pipeline | 管道 | 初学者 | 预制菜 |
| AutoModel | 自动模型 | 中间用户 | 去饭店点餐 |
| 具体模型 | 原材料 | 大佬 | 原材料自己做 |
六个任务
| 任务 | 说明 |
|---|---|
| 文本分类 | 给文本打标签(如好评/差评) |
| 特征提取 | 提取文本特征 |
| 完形填空 | 预测缺失的词 |
| 阅读理解 | 根据文本回答问题 |
| 文本摘要 | 生成文本摘要 |
| NER | 命名实体识别 |
| 词性标注 | POS,名词、动词等 |
18 个案例
3 种方式 × 6 个任务 = 18 个案例。
- Pipeline:6 个任务
- AutoModel:6 个任务
- 具体模型:6 个任务(和 AutoModel 差不多,只讲 1 个)
国内替代方案
HuggingFace 需要梯子,国内可用 ModelScope。
| 网站 | 说明 |
|---|---|
| huggingface.co | 需要梯子 |
| ModelScope(魔搭社区) | 国内可用 |
4 数学原理与推导
Transformers 加载流程
1. 从 HuggingFace 网站下载预训练模型
2. 使用 Transformers 库加载模型
3. 使用模型进行 NLP 任务
三种方式的关系
Pipeline(最简单)→ AutoModel(中等)→ 具体模型(最灵活)
5 代码示例
# 环境搭建
# pip install transformers
# pip install datasets
# Transformers 库基本使用
from transformers import pipeline
def dm_transformers_intro():
"""Transformers 库介绍"""
# 1. 使用 Pipeline 方式(最简单)
# 指定模型路径
model_path = "C:/software/softwallg/chinese_text_classification"
# 创建 pipeline
classifier = pipeline(
"text-classification",
model=model_path,
tokenizer=model_path
)
# 2. 使用模型进行预测
result = classifier("我爱北京天安门")
print(f"预测结果: {result}")
return classifier
# 测试
if __name__ == "__main__":
print("=== Transformers 库介绍 ===")
classifier = dm_transformers_intro()
代码说明
| 代码 | 说明 |
|---|---|
pip install transformers | 安装 Transformers 库 |
pip install datasets | 安装 Datasets 库 |
pipeline("text-classification", ...) | 创建 Pipeline |
classifier(text) | 进行预测 |
6 重难点与易错提醒
- ❗重点:Transformers 库用于加载 HuggingFace 网站上的预训练模型。
- ❗重点:三种加载方式:Pipeline、AutoModel、具体模型。
- ❗重点:3 种方式 × 6 个任务 = 18 个案例。
- ⚠️易错:HuggingFace 需要梯子,国内可用 ModelScope。
- 💡深入理解:HuggingFace 最早做聊天机器人,后来致力于 NLP 平民化。
7 课堂问答精选
Q1:HuggingFace 是什么?
A:开源的基于 Transformer 模型结构的预训练语言模型提供方,总部位于美国纽约。最早做聊天机器人,后来致力于 NLP 平民化,做开源。
Q2:Transformers 库的作用是什么?
A:用于加载 HuggingFace 网站上的预训练模型,加载到代码中使用。
Q3:有几种加载方式?
A:三种:①Pipeline(管道,初学者);②AutoModel(自动模型,中间用户);③具体模型(原材料,大佬)。3 种方式 × 6 个任务 = 18 个案例。
Q4:HuggingFace 访问不了怎么办?
A:HuggingFace 需要梯子。国内可用 ModelScope(魔搭社区)替代。
8 本课小结
- HuggingFace:开源的预训练语言模型提供方。
- Transformers:加载 HuggingFace 网站上的预训练模型。
- 三种加载方式:Pipeline、AutoModel、具体模型。
- 3 种方式 × 6 个任务 = 18 个案例。
- 国内可用 ModelScope 替代。
9 延伸思考
- Pipeline 方式如何进行文本分类?
- 如何在线测试模型?