The Transformers Library:模型定义的标准化
一句话总结:未来,我们的目标是让 Transformers 成为跨框架的支点:如果一个模型架构得到 transformers 的支持,那么你可以期待它在生态系统的其他部分也得到支持。
Transformers 创建于 2019 年,紧随 BERT Transformer 模型的发布。自那时起,我们一直致力于添加最先进的架构,最初专注于 NLP,然后扩展到音频和计算机视觉。如今,transformers 已成为 Python 生态系统中 LLM 和 VLM 的默认库。
Transformers 现在支持 300 多个模型架构,平均每周新增约 3 个架构。我们致力于及时发布这些架构;对最受追捧的架构(Llamas、Qwens、GLMs 等)提供零日支持。
一个模型定义库

随着时间的推移,Transformers 已成为 ML 生态系统的核心组件,成为模型多样性方面最完整的工具包之一;它已集成到所有流行的训练框架中,如 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 缓存、不同的注意力函数、内核优化)提供清晰简洁的 API。
- 我们将废弃冗余组件,转而采用简单、单一的方式使用我们的 API:通过废弃慢速分词器来鼓励高效分词,并类似地使用快速矢量化视觉处理器。
- 我们将继续加强对**模块化**模型定义的工作,目标是让新模型只需绝对最小的代码更改。六千行的贡献、新模型二十个文件的更改已成为过去。
这会如何影响你?
作为模型用户,这意味着什么
作为模型用户,未来您会发现您使用的工具之间有更多的互操作性。
这并不意味着我们打算让您在实验中只能使用 transformers
;相反,这意味着由于这种建模标准化,您可以期望您用于训练、推理和生产的工具能够高效地协同工作。
作为模型创建者,这意味着什么
作为模型创建者,这意味着一次贡献就能让您的模型在所有集成了该建模实现的相关库中可用。多年来,我们多次看到这种情况:发布模型压力很大,集成到所有重要库中通常会耗费大量时间。
通过以社区驱动的方式标准化模型实现,我们希望降低跨库的贡献门槛。
我们坚信这个新的方向将有助于标准化一个经常面临碎片化风险的生态系统。我们很乐意听取您对团队决定采取的方向的反馈,以及我们为实现目标可以做出哪些改变。请访问 Hugging Face Hub 上的 transformers-community 支持选项卡!