Hugging Face 宣布将 Transformers 定位为跨框架的模型定义标准库
The Transformers Library: standardizing model definitions
Hugging Face 官方宣布,未来 Transformers 将作为跨框架的模型定义标准,凡支持的 300+ 模型架构可望在 vLLM、SGLang 等推理引擎及 Axolotl、Unsloth 等训练框架中获得支持。团队还将简化模型贡献流程,目标是让新模型不再需要 6000 行代码、20 个文件的改动,并与 llama.cpp、MLX 加强 GGUF 等格式互转。
官方阐明 Transformers 定位为模型定义标准,读者可据此理解训练与推理框架间互操作的工作流变化。
Transformers 库:标准化模型定义
发布于 2025 年 5 月 15 日
TLDR:展望未来,我们的目标是让 Transformers 成为跨框架的枢纽:如果某个模型架构受到 transformers 支持,你就可以期待它也能在生态系统的其余部分得到支持。
Transformers 诞生于 2019 年,紧随 BERT Transformer 模型发布之后。从那时起,我们一直致力于添加最先进的架构,最初专注于 NLP,随后扩展到音频和计算机视觉。如今,transformers 已成为 Python 生态系统中 LLM 和 VLM 的默认库。
Transformers 目前支持 300 多个模型架构,平均每周新增约 3 个新架构。我们力求这些架构能够及时发布;对最受追捧的架构(Llamas、Qwens、GLMs 等)提供第 0 天支持。
模型定义库
随着时间的推移,Transformers 已成为机器学习生态系统的核心组件,在模型多样性方面成为最完整的工具包之一;它已集成到所有流行的训练框架中,如 Axolotl、Unsloth、DeepSpeed、FSDP、PyTorch-Lightning、TRL、Nanotron 等。
最近,我们一直与最流行的推理引擎(vLLM、SGLang、TGI 等)携手合作,让它们使用 transformers 作为后端。其带来的价值是显著的:一旦某个模型被添加到 transformers,它就能在这些推理引擎中使用,同时充分利用每个引擎所提供的优势:推理优化、专用内核、动态批处理等。
举个例子,以下是在 vLLM 中使用 transformers 后端的方式:
from vllm import LLM
llm = LLM(model="new-transformers-model", model_impl="transformers")
这就是让一个新模型在 vLLM 中享受超快速、生产级服务所需的全部工作!
在 vLLM 文档中了解更多相关信息。
我们还一直与 llama.cpp 和 MLX 紧密合作,使 transformers 与这些建模库之间的实现具有出色的互操作性。例如,得益于社区的巨大努力,现在可以非常轻松地在 transformers 中加载 GGUF 文件以进行进一步的微调。反过来,transformers 模型也可以轻松地转换为 GGUF 文件以供 llama.cpp 使用。
MLX 也是如此,transformers 的 safetensors 文件与 MLX 的模型直接兼容。
我们非常自豪 transformers 格式正被社区采用,带来了我们都能从中受益的大量互操作性。用 Unsloth 训练模型,用 SGLang 部署,再导出到 llama.cpp 在本地运行!我们致力于在未来继续支持社区。
力求更简单的模型贡献
为了让社区更容易将 transformers 用作模型定义的参考,我们努力大幅降低模型贡献的门槛。我们为此已经努力了几年,但在接下来的几周内我们将大幅加速:
- 每个模型的建模代码将进一步简化;为最重要的组件(KV 缓存、不同的 Attention 函数、内核优化)提供清晰、简洁的 API
- 我们将弃用冗余组件,转而采用简单、单一的方式来使用我们的 API:通过弃用慢速分词器来鼓励高效分词,并同样使用快速向量化视觉处理器。
- 我们将继续加强围绕模块化模型定义的工作,目标是让新模型只需极少的代码改动。新模型动辄 6000 行贡献、20 个文件改动将成为过去。
这对你有什么影响?
作为模型用户,这对你意味着什么
作为模型用户,未来你应该会在所使用的工具中看到更多的互操作性。
这并不意味着我们打算将你锁定在实验中使用 transformers;相反,这意味着得益于这种建模标准化,你可以期待用于训练、推理和生产的工具能够高效地协同工作。
作为模型创建者,这对你意味着什么
作为模型创建者,这意味着一次贡献就能让你的模型在所有集成了该建模实现的下游库中可用。多年来我们已多次见证这一点:发布模型压力很大,而集成到所有重要库中往往非常耗时。
通过以社区驱动的方式标准化模型实现,我们希望降低跨库对该领域贡献的门槛。
我们坚信这一新方向将有助于标准化一个常常面临碎片化风险的生态系统。我们很想听听你对团队所决定的方向的反馈,以及我们可以做出哪些改变来实现这一目标。请到 Hub 上的transformers-community 支持标签页来找我们!
本文中提到的 Spaces 1
Running 23 #### Support 🏢 23 显示有关 Transformers 的近期讨论和发布
更多来自我们博客的文章
transformers v5 community Hot ## Transformers v5:驱动 AI 生态系统的简单模型定义 *
*
*
*
315 2025年12月1日 lysandre 等
社区
![]()
好消息!让 Transformers 成为尽可能多模型在 day 0 的默认接入点,以及能够使用所选的推理引擎,这是一个了不起的目标!
❤️
3
3
回复
•
如果一个模型架构得到 transformers 支持,你就可以期待它在生态系统的其余部分也得到支持。
这很有意思,但似乎不管 TLDR 怎么说,Llama.CPP 都维护着自己的实现,因此不会从 Transformers 对新架构的“day-0 支持”中受益。我一度还希望 Llama 能直接获得 Transformer 兼容性。
不清楚那里到底有什么变化,如果有的话。
·
![]()
文章作者 May 23, 2025
好问题 @usbphone!
你说得完全正确,llama.cpp 维护着自己的实现;不过我们一直与该团队携手合作,以提高互操作性:在双方框架之间导出(从 transformers 到 llama.cpp,以及反过来)。
此外,由于最近频繁发布 VLM,我们一直在直接与 @ngxson 合作,当实现已经存在于 transformers 中时,让其在 llama.cpp 中实现 day-0(或 week-0)。
我们不会有“自动 day-0 支持”,因为这两个库有不同的后端;但我们仍然可以尝试让两者更兼容,从而缩短实现所需的时间。
谢谢 @lysandre。如果我听起来过于消极,我道歉,这是一个非常好的目标。
由于我怀疑 Llama.cpp 不会像 VLM 那样直接实现 Transformers(尽管那样会很好),也许可以利用 Llama 提供的底层 C 绑定做一个中间项目。我相信 llama-cpp-python 和类似项目就是这样工作的。
不过我也不确定这能带来多少好处,但值得思考。
回复
编辑预览
通过拖入文本输入框、粘贴或点击此处来上传图片、音频和视频。
点击或粘贴此处以上传图片
本文提到的 Spaces 1
Running 23 #### Support 🏢 23 Display recent discussions and releases about Transformers
系统主题
公司
网站
来源:Hugging Face:Blog · huggingface.co