Transformers 是什么:概念介绍
一、Transformers 是什么:概念介绍
这里说的 Transformers 指 Hugging Face 的 transformers 库,不是那篇论文里的网络结构。它的角色是模型与代码之间的统一适配层:同一套 AutoModel / AutoTokenizer API,可以加载上千种不同架构的预训练模型,把「下载权重、对齐词表、拼装前向、加载配置」这些重复劳动收敛成几个类方法。
它解决的问题是复现成本。没有这层抽象时,换一个模型就要重新读一遍作者仓库的建模代码、重写数据预处理、重写生成逻辑;有了这层抽象,换模型多数时候只是换一个字符串。围绕它还形成了完整的生态:datasets 管数据、tokenizers 管分词(Rust 实现)、accelerate 管设备与分布式、peft 管参数高效微调、evaluate 管指标。
与相邻方案的区别
| 方案 | 定位 | 与 transformers 的关系 |
|---|---|---|
| transformers | 模型定义 + 权重加载 + 训练/推理高层 API | 本体 |
| datasets | 数据集加载、映射、流式读取 | 官方配套,训练脚本的标配 |
| accelerate | 设备放置、混合精度、分布式启动 | 让同一份 Trainer 代码跑单卡到多卡 |
| peft | LoRA、Prefix Tuning 等参数高效微调 | 在 transformers 模型上挂适配器 |
| vLLM / SGLang | 高吞吐推理服务 | 加载同一份权重,但换掉推理执行引擎 |
| 原生 PyTorch 手写 | 完全掌控 | 灵活但复现成本高,适合结构创新的研究 |
核心术语
| 术语 | 含义 |
|---|---|
| pipeline | 把分词、前向、后处理封成一行调用,适合快速验证 |
| AutoTokenizer | 按模型名自动选分词器,负责 padding / truncation |
| AutoModel / AutoModelForCausalLM | 按任务自动选模型头(分类、生成、问答等) |
| config | 模型结构配置(层数、隐层维度、词表大小等),与权重配套 |
| safetensors | 更安全的权重格式,加载时不会执行任意代码 |
| Trainer / TrainingArguments | 官方训练封装,接管训练循环、日志、checkpoint |
| device_map | 把模型各层放到哪张卡上,用于多卡或显存不足时的切分 |
| trust_remote_code | 允许执行模型仓库里的自定义代码,安全上要谨慎 |
| generation_config | 生成参数集合(采样方式、最大长度、惩罚项等) |
