项目详情

Transformers

ML 生态的「模型定义标准」——518 种架构、1M+ 权重检查点的统一语言,训练与推理框架共同的 pivot

GitHub 地址 Apache-2.0 165k Stars Python · PyTorch v5.17.0

更新于 2026-09-14

← 返回汇总
项目速览

一句话定位

深度学习模型界的「USB 接口」

Hugging Face 的开源模型定义框架:文本、视觉、音频、视频、多模态模型的统一实现与 API,覆盖推理与训练。官方自述 v5 定位——模型定义在此集中,全生态达成共识:训练框架、推理引擎、相邻建模库都以它为 pivot。8 年历史,GitHub 165k stars(Python 项目历史前三),4,100+ 贡献者,Hub 上 1M+ 可用检查点。不是最有速度的运行时,而是整个生态公认的「定义层」。

项目速览

核心数据

165k
Stars
4.1k
贡献者
518
模型架构
1M+
Hub 检查点
来龙去脉

八年:从 BERT 移植件到生态标准

2018-10 pytorch-pretrained-bert:Google BERT 的 PyTorch 移植,一个人(Thomas Wolf 等)的复现项目
2019 更名 pytorch-transformers → transformers:从单模型移植转向「所有 SOTA 模型的统一 API」赌注
2020 EMNLP 论文发表;GPT-2/BART/T5 时代,AutoClass + Hub 飞轮成型——新模型首发即带 HF 权重成为行业惯例
2021-23 扩张到视觉/音频/多模态;100k stars;成为「AI 界的事实标准库」(类比 numpy 之于数值计算)
2024-25 推理侧让位 vLLM/TGI/llama.cpp(更快),训练侧让位专用框架——但模型定义仍在此
2026 v5 大版本:官方重述定位「model-definition framework」+ 新增 transformers serve / transformers chat CLI,Python 3.10+ / PyTorch 2.5+ 基线
核心理念

当年的赌注:统一 API 赢过一切

赌局背景

2018-19 年每个新模型都是孤岛:官方 TF 实现、社区 PyTorch 移植、各家 tokenizer 不互通——用五个模型要学五套加载代码。

下注

一套 from_pretrained() 吃遍所有模型:配置、分词器、权重、处理器统一接口——为兼容性牺牲每个模型的「原汁原味」。

结果

实验室为了被用,主动把新架构移植进 transformers;用户为了省事,只用 transformers 加载——双向飞轮滚成 1M+ 检查点的标准。

这是「接口标准化」的经典胜利:赢的方式不是最快、不是最灵活,而是让所有人不用再做选择。

🔥 核心架构

三个类学完全库:分层而「故意不抽象」

pipeline() — 高层推理入口(一个函数) from transformers import pipeline; pipeline("text-generation", model="Qwen/Qwen2.5-1.5B")("...") 预处理→模型→后处理全自动 · 支持 20+ 任务(文本/视觉/音频/多模态)· 命令行 transformers chat 直接对话 AutoClass — 统一加载层(三个类) AutoModel / AutoTokenizer / AutoProcessor:按 checkpoint 的 config 自动路由到具体实现,518 种架构一个入口 训练再配 Trainer / TrainingArguments(3 行起训);框架间迁移(PyTorch/JAX)接口等价 模型内部 — 518 个架构目录(src/transformers/models/*) 每个模型 = configuration + tokenizer/processor + modeling 文件,结构平行、互不复用 设计决策(README 自陈):模型代码「故意不做额外抽象」——研究者改一个模型不用跨抽象层追代码 代价:仓库 513 MB、CI 矩阵巨大、相似代码遍布 518 份——换来的是「每个模型都可独立阅读修改」 v5 定位:这层就是「模型定义」本身——下游框架以此为规范实现各自的高性能运行时
用户入口 统一加载 模型定义(故意不抽象)
🔥 生态位

v5 官方自述:生态的 pivot(转轴)

transformers 模型定义 · 518 架构 · 统一格式 (checkpoint = config + tokenizer + weights) 训练框架(消费定义) DeepSpeed · FSDP · PyTorch-Lightning Axolotl · Unsloth 推理引擎(消费定义) vLLM · SGLang · TGI 优化运行时,速度远超本库 相邻建模库(转换定义) llama.cpp · mlx GGUF 转换 · 端侧/Apple 芯片 Hugging Face Hub(分发层) 1M+ 检查点 · 模型卡 · 安全扫描 实验室首发即上 HF 已成惯例 一家定义 · 全生态兼容 (官方 README 原话:pivot across frameworks)
定义中心 生态消费方/供给方
复盘

为什么赢:不是技术胜利,是生态胜利

诚实边界

README 自己告诉你何时别用它

不是积木工具箱

模型代码故意不抽象——想拿它当 nn.Module 乐高拼自研网络?设计上就不支持。要积木请用 timm / 原生 PyTorch。

不是最快运行时

生产高并发推理应上 vLLM / SGLang / TGI;端侧用 llama.cpp / GGUF。本库是「定义与参考实现」,慢是明码标价的代价。

训练 API 绑定自家模型

Trainer 优化于「本库模型」的训练;通用 ML 循环请用 Accelerate。examples 目录只是示例,不保证开箱即用。

值得学习的姿态:把「不该用我」写进 README 首页——标准的确立恰恰来自克制,什么都想做好的库成不了标准。

工程观察

4 万亿 token 时代怎么维护 518 个模型

上手

五分钟路径

# Python 3.10+ · PyTorch 2.5+
uv venv .my-env && source .my-env/bin/activate
uv pip install "transformers[torch]"

python
>>> from transformers import pipeline
>>> pipe = pipeline(task="text-generation",
...     model="Qwen/Qwen2.5-1.5B")
>>> pipe("the secret to baking a good cake is")

# 命令行直接聊
$ transformers serve          # 起本地服务
$ transformers chat Qwen/Qwen2.5-0.5B-Instruct
  • 三段学习曲线:pipeline(会调函数)→ AutoClass + Trainer(懂加载与训练)→ 读模型源码(懂注意力怎么写的,518 份平行代码任你解剖)
  • 权重即下即缓存:from_pretrained 自动下载到本地缓存,离线复用
  • 找模型先上 Hub:huggingface.co/models 按 library=transformers 筛,1M+ 检查点带模型卡与安全扫描
  • 文档多语言:官方文档完善,README 有 21 种语言翻译(含简体中文)
风险提示

需要警惕

潜力评估

评分:9.5 / 10 · tracking

生态地位
10
文档与上手
10
工程质量
9.5
社区治理
9.0
运行时性能
6.0

已过「潜力」阶段——它是既成标准,评的是「继续持有」的价值。只要新 SOTA 模型还在往 Hub 发权重、下游框架还按它的定义实现,这个 pivot 的地位就无可替代。对个人的意义:读懂它 = 读懂整个开源模型生态的语法。


上一个
watermarks-remover
下一个
colibrì
1 / 13