Hugging Face 发布 Transformers v5:简化模型定义并强化推理与量化
Transformers v5: Simple model definitions powering the AI ecosystem
Hugging Face 发布 Transformers v5 首个候选版本 v5.0.0rc-0,主题为互操作性。官方称该库每日 pip 安装量已超 300 万次,累计安装超 12 亿次,支持的模型架构从 v4 时的 40 个增至 400 余个,Hub 上兼容的模型 checkpoint 超过 75 万个。
官方长文给出 v5 在模块化定义、推理接口与量化上的改动,读者可据此判断迁移成本与生态兼容性。
![]()
Transformers 的 v4.0.0rc-1 版本,也就是 4.0 版本的首个候选发布版,于 2020 年 11 月 19 日发布。五年之后,我们现在发布了 v5.0.0rc-0。
今天,随着我们发布 v5,Transformers 通过 pip 每天的安装量已超过 300 万次——相比 v4 时的 每天 2 万次大幅增长 🤯。总计而言,它如今已突破 12 亿次安装!
生态系统已从 v4 时的 40 种模型架构扩展到如今的 400 多种,社区已在 Hub 上贡献了超过 75 万个与 Transformers 兼容的模型检查点,而 v4 时这一数字约为 1000 个。
这种增长得益于该领域的演进以及如今 AI 的主流化普及。作为生态系统中领先的模型定义库,我们需要持续演进并调整该库,以保持其相关性。重塑自我是 AI 领域长久立足的关键。
我们很幸运能与许多基于 transformers 构建的库和应用合作,排名不分先后:llama.cpp、MLX、onnxruntime、Jan、LMStudio、vLLM、SGLang、Unsloth、LlamaFactory、dLLM、MaxText、TensorRT、Argmax,以及许多其他朋友。
对于 v5,我们希望着力于几个显著方面:简洁性、训练、推理和生产。我们将在本文中详细介绍为此所做的工作。
简洁性
团队的首要关注点是简洁性。在开发 transformers 时,我们将代码视为产品。我们希望模型集成保持整洁,以便生态系统可以依赖我们的模型定义,理解底层真正发生了什么、模型之间有何不同,以及每个新模型的关键特性。简洁性带来更广泛的标准化、通用性和更广泛的支持。
新增模型
Transformers 是数十万个项目的支柱,Unsloth 也包括在内。我们基于 Transformers 构建,帮助人们高效地微调和训练模型,无论是 BERT、文本转语音(TTS)还是其他;即使模型尚未在其他库中得到支持,也能为强化学习(RL)运行快速推理。我们对 Transformers v5 感到兴奋,也非常高兴能与 HF Mirror 团队合作!
—— Unsloth 的 Michael Han
Transformers 的核心仍然是一个模型架构工具包。我们旨在囊括所有最新架构,并成为模型定义的“权威来源”。五年来,我们每周新增 1 到 3 个新模型,如下图所示的时间线:
我们一直致力于改进这一模型新增流程。
模块化方法
在过去一年里,我们大力推行模块化设计,将其作为向前迈出的重要一步。这使得维护更轻松、集成更快速,并促进社区间更好的协作。
我们在 Maintain the Unmaintainable 博文中给出了更深入的概述。简而言之,我们的目标是实现更简便的模型贡献流程,同时降低维护负担。我们可以强调的一个指标是,当使用模块化时,需要贡献(和审查)的代码行数显著下降:

虽然我们尊重“一个模型,一个文件”的理念,但我们继续引入一些抽象,使常见辅助工具的管理更加简单。最典型的例子是引入了 AttentionInterface,它为注意力方法提供了集中式抽象。eager 方法将保留在建模文件中;其他的,如 FA1/2/3、FlexAttention 或 SDPA,则移到了该接口中。
在过去几年中,对新模型架构越来越多的 0-day 支持以及注意力处理的标准化,帮助我们简化了对后训练现代 LLM 的支持。
—— Wing Lian,Axolotl
模型转换工具
我们正在构建工具,以帮助我们识别新模型类似于哪种现有模型架构。该功能使用机器学习来查找独立建模文件之间的代码相似性。更进一步,我们的目标是通过为新模型打开一个草稿 PR,将其集成到我们的 transformers 格式中,从而自动化转换过程。此过程减少了人工工作并确保了 consistency。
代码精简
简化建模与分词/处理文件
我们大幅重构了建模和分词文件。得益于上述模块化方法,再加上跨模型的标准化,建模文件得到了极大改进。标准化有助于抽象出大多数不构成模型的工具,从而使建模代码只包含模型前向/反向传播的相关部分。
与此同时,我们正在简化分词和处理文件:今后,我们将只专注于 tokenizers 后端,移除“Fast”和“Slow”分词器的概念。
我们将使用 tokenizers 作为主要的分词后端,就像我们对基于 PyTorch 的模型所做的那样。我们将为基于 Sentencepiece 或 MistralCommon 的分词器提供替代方案,这些方案将是非默认的,但会得到支持。图像处理器现在将只存在其快速变体,该变体依赖于 torchvision 后端。
最后,我们正在逐步停止对 Flax/TensorFlow 的支持,转而专注于将 PyTorch 作为唯一后端;不过,我们也正在与 Jax 生态系统的合作伙伴合作,以确保我们的模型与该生态系统之间的兼容性。
随着 v5 版本的发布,transformers 将全力投入 PyTorch。Transformers 是整个领域建模的事实来源和基础;我们一直在与该团队合作,以确保整个技术栈的良好性能。
我们很高兴未来继续在训练、推理和部署方面推动这一方向。
—— Matt White,PyTorch Foundation 执行董事。Linux Foundation AI 总经理
训练
在我们迈向 v5 之际,训练仍然是团队的重点:以前我们会主要关注微调,而不是大规模的预训练/全量训练,但我们最近也做了大量工作来改进对后者的支持。
大规模预训练
支持预训练意味着重做我们模型的初始化,确保它们能够在不同并行范式下大规模运行,并交付对前向和反向传播的优化内核的支持。
展望未来,我们很高兴将兼容性扩展到了 torchtitan、megatron、nanotron,以及任何有意与我们合作的其他预训练工具。
微调与后训练
我们继续与 Python 生态中的所有微调工具紧密合作。我们的目标是继续提供与 Unsloth、Axolotl、LlamaFactory、TRL 以及 PyTorch 生态中其他工具兼容的模型实现;同时我们也在与 JAX 生态中的 MaxText 等工具合作,以使其框架与 transformers 之间具备良好的互操作性。
所有微调和后训练工具现在都可以依赖 transformers 获取模型定义;并通过 OpenEnv 或 Prime Environment Hub 进一步支持 Agentic 用例。
推理
我们在 v5 中重点聚焦推理,带来了若干范式上的变化:引入专用内核、更简洁的默认值、新 API,以及对优化推理引擎的支持。
与训练类似,我们也在努力对 kernels 进行打包,使其在你的硬件和软件允许的情况下自动启用。如果你之前没听说过 kernels,我们建议看看这份文档。
与此同时,我们推出了两个专用于推理的新 API:
- 我们提供了对连续批处理和分页注意力机制的支持。这已在内部使用了一段时间,我们正在努力收尾细节并编写使用指南。
- 我们引入了
transformers serve作为 transformers 专用的新服务系统,它部署了一个与 OpenAI API 兼容的服务器。
我们认为这是评估等用例的一大进步,因为在这些场景中会同时发起大量推理请求。我们并不打算像专用推理引擎(vLLM、SGLang、TensorRT LLM)那样做专门的优化。相反,我们的目标是与其完美互操作,详见下一节。
vLLM 中的 Transformers 后端极大地帮助了更多架构(如 BERT 和其他编码器)为更多用户所用。我们一直在与 Transformers 团队合作,确保多种模态的众多模型能够以尽可能最佳的性能提供。这只是我们合作的开始:我们很高兴看到 Transformers 团队将在第 5 版中将其作为重点。
—— Simon Mo、Harry Mellor,vLLM
标准化是加速 AI 创新的关键。Transformers v5 让 SGLang 团队能够减少在模型重实现上的时间,将更多精力投入到内核优化上。我们期待共同构建一个更高效、更统一的 AI 生态!
—— Chenyang Zhao,SGLang
生产与本地
最近,我们一直与最流行的推理引擎携手合作,让它们使用 transformers 作为后端。其带来的价值是显著的:一旦某个模型被添加到 transformers,它就能在这些推理引擎中可用,同时充分利用每个引擎所提供的优势:推理优化、专用内核、动态批处理等。
我们还与 ONNXRuntime、llama.cpp 和 MLX 保持着非常紧密的合作,使 transformers 与这些建模库之间的实现具备良好的互操作性。例如,得益于社区的共同努力,现在可以非常轻松地在 transformers 中加载 GGUF 文件以进行进一步的微调。反过来,transformers 模型也可以轻松地转换为 GGUF 文件以便与 llama.cpp 配合使用。
Transformers 框架是参考级 AI 模型实现的首选之地。该框架在赋能整个技术栈的现代 AI 方面发挥着至关重要的作用。项目背后的团队和社区真正理解并践行了开源开发与协作的精神。
—— Georgi Gerganov,ggml-org
MLX 也是如此,transformers 的 safetensors 文件与 MLX 的模型直接兼容。
Transformers(以及 datasets、tokenizers 等)对开源乃至整个 AI 生态的重要性怎么强调都不为过。我自己已经数不清有多少次将 Transformers 作为权威参照来使用。
—— Awni Hannun,MLX
最后,我们正在突破本地推理的边界,并与 executorch 团队携手合作,让 transformers 模型能够在设备端可用。我们正通过 optimum 将覆盖范围扩展到多模态模型(视觉、音频)。
量化
量化正迅速成为最先进模型开发的标准。许多 SOTA 模型如今以 8 位和 4 位等低精度格式发布(例如 gpt-oss、Kimi-K2、Deepseek-r1),硬件也越来越针对低精度工作负载进行优化,社区也在积极分享高质量的量化检查点。在 v5 中,我们将量化作为 Transformers 支持的核心重点,确保与所有主要特性完全兼容,并提供一个可靠的训练和推理框架。
我们对模型中权重的加载方式引入了重大变革;借此,量化成为一等公民。
我们与 Transformers 团队的合作卓有成效,他们积极主动的代码审查、反馈和技术专长令人印象深刻。他们的支持对于集成 TorchAO、扩展量化特性以及改进文档以推动 V5 中的更广泛采用至关重要。
—— Jerry Zhang,TorchAO
我们很高兴 v5 将量化提升为一等公民。这为 bitsandbytes 更好地支持 TP 和 MoE 等关键特性奠定了基础,也让集成新的量化方法变得更加容易。
—— Matthew Douglas 与 Titus von Koeller,bitsandbytes
结语
这个第 5 版发布的总体主题是“互操作性”。所有的重构、性能改进和标准化都与这一主题保持一致。v5 与不断壮大的生态系统配合默契、端到端打通:用 Unsloth/Axolotl/LlamaFactory/MaxText 训练模型,用 vLLM/SGLang 部署,再将其导出到 llama.cpp/executorch/MLX 在本地运行!
第 5 版无疑是我们社区中众多人士过去五年努力的成果。我们也将其视为一份承诺,以及指引我们希望前进方向的灯塔。
我们以此为契机整理了工具包并分离出关键部分;现在我们有了一个干净的基础,可以在其上继续构建。得益于社区和团队带来的诸多改动,性能、可用性和可读性方面的改进将更容易交付。
现在 v5.0.0 的首个 RC 已经发布,我们将热切期待您的反馈。请查看我们的发布说明了解所有技术细节,我们将在我们的GitHub issues 中等待您的反馈!
来源:Hugging Face Blog · hf-mirror.com