Transformers-Tutorials
40+ 主流 Transformer 架构的 Jupyter Notebook 实践教程,配套 Co
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
40+ 主流 Transformer 架构的 Jupyter Notebook 实践教程,配套 Co
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:作者 Niels Rogge 头像
想象你是一名科研新手,好不容易在 HuggingFace Hub 上找到了一个效果不错的 BERT 模型,心里跃跃欲试打算微调它来完成情感分析任务——但当你真正动手时,问题接踵而至:数据集怎么预处理?Tokenizer 和 Model 怎么配合?训练参数怎么调?评估指标看哪个?
这种"拿到屠龙刀却不知如何挥动"的困境,正是 Niels Rogge 创建 Transformers-Tutorials 的出发点。这位 HuggingFace 的 NLP 研究工程师,在 2020 年左右开始系统性地将自己复现论文模型的经验整理成 Jupyter Notebook,发布在这个仓库里。十多年间,这个仓库积累了大量主流 Transformer 架构的实践案例,成为 NLP 和 CV 领域研究者公认的"手把手教程"。
Transformers-Tutorials 不是一个传统意义上的开源工具库,它更像一座由代码构建的学习宝库。仓库中所有内容均为 .ipynb 格式的 Jupyter Notebook,每个 Notebook 对应一篇重要论文的模型实现,涵盖从加载预训练权重、推理、微调到训练的全流程。
目前仓库已收录超过 40 种主流模型架构的教程,分布在 NLP、计算机视觉和多模态三大领域:
自然语言处理方向包括 BERT 的命名实体识别(NER)、GPT-2 的文本生成、T5 的摘要任务、BART 的机器翻译、BERTweet 的情感分析等经典案例;计算机视觉方向有 Vision Transformer(ViT)的图像分类、DINO 和 DINOv2 的自监督学习可视化、DETR 和 Deformable DETR 的目标检测、SAM(Segment Anything)的交互式分割、SegFormer 的语义分割、DPT 的单目深度估计等;多模态方向则涵盖 BLIP-2 的图文对话、CLIPSeg 的零样本图像分割、Donut 的文档理解、GIT 的图像描述生成等前沿工作。
这种"论文即教程"的结构,让学习者可以一边阅读原论文,一边运行可执行的代码,将抽象的算法原理转化为可触摸的运行结果。
每个模型的 Notebook 通常提供两条路径:推理路径(Inference)和微调路径(Fine-tuning)。推理路径展示了如何加载模型、检查点权重文件,并应用于具体数据;微调路径则从数据加载、预处理、训练循环到评估指标,完整复现了一个模型训练的全过程。
以 DETR(DEtection TRansformer)为例,仓库中提供了:最小推理示例、带 Feature Extractor 的推理版本、COCO 数据集上的评估脚本,以及在自定义气球数据集上微调的完整流程。学习者可以根据自己的数据规模和数据类型,选择相应的 Notebook 开始实践。
仓库使用 PyTorch 作为唯一的深度学习框架(README 明确说明"Currently, all of them are implemented in PyTorch"),但兼容多个 HuggingFace 生态库:transformers 提供模型架构,datasets 处理数据加载,accelerate 加速分布式训练,tokenizers 处理文本分词。pyproject.toml 显示依赖版本要求极高:transformers >= 4.57.3、torch >= 2.9.1、lightning >= 2.6.0,这意味着仓库始终保持与最新版本库的同步。
从依赖列表中可以看到,lightning 和 pytorch-lightning 的双重引入表明部分 Notebook 采用了 PyTorch Lightning 框架来简化训练循环管理;bitsandbytes 支持模型量化;wandb 用于实验追踪;av 和 torchcodec 支持音视频编解码,覆盖了从 LLM 到多模态的多样化任务需求。
几乎每个 Notebook 标题旁边都有"Open In Colab"按钮,这不是一个简单的 badge,而是整个项目降低门槛策略的核心。每个 Notebook 都经过精心设计,确保在 Google Colab 的免费 GPU 环境下可以无缝运行——模型权重自动从 HuggingFace Hub 下载,数据集自动加载,学习者只需要点击按钮、运行代码块,就能看到模型输出的结果。
这种设计思维让 Transformers-Tutorials 成为了一个真正的"零配置学习环境":不需要安装任何依赖,不需要配置 CUDA 环境,不需要理解 Docker,只要有一个浏览器和一个 Google 账号。
从代码组织角度看,仓库采用了"按模型架构分目录"的扁平结构。每个子目录(如 /BERT、/DETR、/DINOv2)对应一个模型族,内部包含一个或多个 .ipynb 文件和一个 README.md 说明文件。这种结构便于按图索骥——如果读者想学习 DETR,直接进入 /DETR 目录即可找到所有相关教程。
依赖管理采用现代 Python 项目的标准实践:pyproject.toml 定义了全部依赖和 Python 版本要求(>= 3.12),uv.lock 锁定了具体版本。这种配置既适合本地开发环境(通过 uv sync 或 pip install -e .),也适合在 Colab 中直接安装。
值得注意的是,仓库中没有 Dockerfile、docker-compose.yml 或 Kubernetes manifest——这是一个纯开发/学习资源库,而非可部署的生产系统。这也解释了为什么 Deployment Analysis 中 quick_deploy 被判定为 partially_supported:依赖管理完善,但缺少容器化封装。
从模型训练的内存需求来看,大多数演示涉及中等规模的 Transformer 模型(参数量从几亿到几十亿不等)。pyproject.toml 中 bitsandbytes >= 0.49.1 的存在暗示仓库支持 8-bit 量化训练,这对于显存有限的用户是一个重要选项。
推荐硬件配置为:NVIDIA GPU(RTX 3080 或更高,8GB+ 显存),16GB 系统内存,20GB 磁盘空间用于存储模型权重和数据集。没有 GPU 也能运行推理部分,但训练任何模型都会非常缓慢。
对于 AI 爱好者,这个仓库的入口价值在于提供了大量"看得到结果"的 AI 演示:运行一个 notebook,就能看到模型在真实数据上的表现。对于已经有一定基础、想要深入某一模型的开发者,这个仓库提供了经过验证的微调代码,可以直接在自己的数据集上复用。
由于每个 Notebook 都是独立编写和更新的,代码风格和实践方式存在不一致性。例如有些 Notebook 使用纯 PyTorch 训练循环,有些则使用 PyTorch Lightning。在复用代码时,学习者需要自行理解和适配这些差异。
README 明确说"All of them are implemented in PyTorch",对于使用 JAX/Flax 或 TensorFlow 的开发者,这个仓库的参考价值大打折扣。不过考虑到 HuggingFace 生态以 PyTorch 为主导,这个限制在实践中影响有限。
仓库目前有 313 个 open issues,涵盖了模型版本不兼容、API 变更、新功能缺失等问题。Notebook 的数量持续增长(从最初的几个到现在的 40+),维护者需要持续跟进 transformers 库的 API 变化,这是一个不小的工程负担。
Transformers-Tutorials 是 HuggingFace 生态的重要组成部分。从增长数据看,仓库从早期的默默无闻到如今的 11,600+ stars,反映了 NLP 和 CV 领域学习需求的爆炸式增长。它代表了一种重要的知识传播范式:论文即教程,代码即文档——不再是先有库再有文档,而是在文档中诞生库的理解。
随着多模态大模型(GPT-4V、Gemini、LLaVA 等)的兴起,这个仓库也在持续扩展多模态方向的教程(如 BLIP-2、GIT 等),保持了对最新研究趋势的跟进。对于任何想要深入理解 Transformer 架构实践的人来说,这个仓库都是不可绕过的资源。
本报告基于 NielsRogge/Transformers-Tutorials GitHub 仓库分析生成,数据截止 2026年5月