[ PROMPT_NODE_27506 ]
模型加载与管理
[ SKILL_DOCUMENTATION ]
# 模型加载与管理
## 概述
Transformers 库提供了灵活的模型加载方式,支持自动架构检测、设备管理和配置控制。
## 加载模型
### AutoModel 类
使用 AutoModel 类进行自动架构选择:
python
from transformers import AutoModel, AutoModelForSequenceClassification, AutoModelForCausalLM
# 基础模型(无任务头)
model = AutoModel.from_pretrained("bert-base-uncased")
# 序列分类
model = AutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased")
# 因果语言建模 (GPT 风格)
model = AutoModelForCausalLM.from_pretrained("gpt2")
# 掩码语言建模 (BERT 风格)
from transformers import AutoModelForMaskedLM
model = AutoModelForMaskedLM.from_pretrained("bert-base-uncased")
# 序列到序列 (T5 风格)
from transformers import AutoModelForSeq2SeqLM
model = AutoModelForSeq2SeqLM.from_pretrained("t5-small")
### 常用 AutoModel 类
**NLP 任务:**
- `AutoModelForSequenceClassification`: 文本分类、情感分析
- `AutoModelForTokenClassification`: 命名实体识别 (NER)、词性标注 (POS)
- `AutoModelForQuestionAnswering`: 抽取式问答
- `AutoModelForCausalLM`: 文本生成 (GPT, Llama)
- `AutoModelForMaskedLM`: 掩码语言建模 (BERT)
- `AutoModelForSeq2SeqLM`: 翻译、摘要 (T5, BART)
**视觉任务:**
- `AutoModelForImageClassification`: 图像分类
- `AutoModelForObjectDetection`: 目标检测
- `AutoModelForImageSegmentation`: 图像分割
**音频任务:**
- `AutoModelForAudioClassification`: 音频分类
- `AutoModelForSpeechSeq2Seq`: 语音识别
**多模态:**
- `AutoModelForVision2Seq`: 图像描述、视觉问答 (VQA)
## 加载参数
### 基础参数
**pretrained_model_name_or_path**: 模型标识符或本地路径
python
model = AutoModel.from_pretrained("bert-base-uncased") # 从 Hub 加载
model = AutoModel.from_pretrained("./local/model/path") # 从磁盘加载
**num_labels**: 分类任务的输出标签数量
python
model = AutoModelForSequenceClassification.from_pretrained(
"bert-base-uncased",
num_labels=3
)
**cache_dir**: 自定义缓存位置
python
model = AutoModel.from_pretrained("model-id", cache_dir="./my_cache")
### 设备管理
**device_map**: 大模型的自动设备分配
python
# 自动分布在 GPU 和 CPU 上
model = AutoModelForCausalLM.from_