Hugging Face Transformers:标准化模型定义以实现生态系统互操作性
Hugging Face 正在将 Transformers 库确立为模型定义的主要参考,以确保库支持的任何架构都能自动兼容更广泛的机器学习生态系统。此标准化旨在减少碎片化,并使模型能够在训练框架、推理引擎和本地部署工具之间无缝迁移。
Transformers 作为生态系统枢纽
Transformers 库目前支持超过 300 种模型架构,平均每周新增约三种架构。作为中心枢纽,Transformers 使模型只需一次集成即可在各种工具中使用,并在多个平台上可用:
- 推理引擎: 像 vLLM、SGLang 和 TGI 等流行引擎正在将 Transformers 作为后端集成。例如,在 vLLM 中,用户现在可以使用
model_impl="transformers"加载新模型,使模型在加入 Transformers 库后即可受益于生产级服务、动态批处理和专用内核。 - 训练框架: 该库已集成到包括 Axolotl、Unsloth、DeepSpeed、FSDP、PyTorch-Lightning、TRL 和 Nanotron 在内的主要训练工具中。
- 本地部署与互操作性: 与
llama.cpp和 MLX 具有强大的互操作性。这包括能够在 Transformers 中直接加载 GGUF 文件进行微调,以及将 Transformers 模型转换为 GGUF 文件以供llama.cpp使用。此外,Transformers 的 safetensors 文件可直接与 MLX 模型兼容。
简化模型贡献
为了降低添加新架构的门槛,Hugging Face 正在加速简化建模代码的工作。目标是从大型、复杂的贡献(例如跨 20 个文件的 6,000 行代码)转向更模块化的方法:
- API 简化: 为关键组件(如 KV 缓存和各种 Attention 函数)实现清晰、简洁的 API。
- 去除冗余: 删除冗余组件,采用单一高效的路径,例如弃用慢速分词器而使用高效分词,并使用快速向量化视觉处理器。
- 模块化定义: 加强模块化模型定义,确保新模型的实现只需最少的代码更改。
对用户和创作者的影响
对模型用户
标准化提升了训练、推理和生产工具之间的互操作性。虽然用户并未被迫在实验中使用 Transformers,但标准化确保其选择的工具链能够高效协同工作。
对模型创作者
标准化降低了发布新模型的运营负担。无需为每个主要库单独集成模型,只需一次向 Transformers 库贡献,即可让所有已集成 Transformers 建模实现的下游库都能使用该模型。