Transformers 库实战
本节定位
学预训练模型只停留在概念层很容易“会说不会用”。
这一节要解决的是另一个很现实的问题:
面对
transformers这个库,我到底该从哪里下手?
我们会尽量用不依赖外网下载的方式,把最核心接口走通。
学习目标
- 理解
transformers库里最常见的几个对象分别干什么 - 学会区分 tokenizer、config、model、pipeline 的角色
- 离线跑通一个 tokenizer + model 的最小示例
- 理解实际项目里怎样从“能跑”走向“可维护”
一、先把库里的几个主角分清楚
1.1 Tokenizer
负责把文本变成模型能吃的数字序列。
1.2 Config
负责描述模型结构参数,比如:
- hidden size
- 层数
- 头数
1.3 Model
真正负责前向计算。
1.4 Pipeline
是更高层的封装,帮你把:
- 分词
- 前向
- 后处理
串成一个更方便调用的接口。
一句话记:
tokenizer 负责进门,model 负责计算,pipeline 负责把整件事串起来。
二、为什么很多人第一次用 transformers 会晕?
因为它有两层世界:
2.1 概念层
你知道:
- BERT 是 encoder-only
- GPT 是 decoder-only
2.2 工具层
你又会遇到:
AutoTokenizerAutoModelAutoModelForSequenceClassificationpipelinefrom_pretrained
初学者经常会卡在:
名字太多,但不知道每个接口到底解决什么问题。
所以这一节的核心不是背接口,而是建立调用顺序的地图。