Hugging Face Transformers v5 发行说明 / 新功能
Hugging Face 发布了 Transformers v5 (v5.0.0rc-0),这是一个主要更新,专注于互操作性和简化。该版本将库转变为模型定义的标准化“事实真相来源”,使得在 AI 生态系统中训练、推理和本地部署之间的移动变得无缝。
简化和模型标准化
Transformers v5 优先考虑干净、模块化的模型定义,以确保库仍然是模型架构的行业标准。
模块化设计和模型添加
为了减轻维护负担并加速新架构的集成,Hugging Face 实施了一种模块化方法。此设计显著减少了贡献和审查所需的代码行数。一个关键的技术补充是 AttentionInterface,它将注意力方法(如 FA1/2/3、FlexAttention 和 SDPA)集中在一起,同时将 eager 方法保留在建模文件中。
自动转换的工具
正在开发新的基于机器学习的工具,以识别独立建模文件与现有架构之间的相似性。这使得团队能够通过为模型集成生成草拟 PR 来自动化转换过程,减少手动工作并确保一致性。
代码精简和后端整合
Transformers v5 通过几个关键的重构精简了其代码库:
- PyTorch 作为唯一后端: 该库正在逐步淘汰 Flax 和 TensorFlow 的支持,以专注于 PyTorch。通过合作伙伴关系,JAX 生态系统的兼容性正在得到维护。
- Tokenization 大改革: “Fast”和“Slow”分词器的概念被移除,转而采用统一的
tokenizers后端。Sentencepiece 和 MistralCommon 的支持仍然作为非默认替代方案可用。 - 图像处理: 图像处理器现在仅以其快速变体存在,依赖于
torchvision后端。
增强的训练能力
虽然之前的版本主要侧重于微调,但 v5 在大规模预训练和完整训练方面引入了显著改进。
大规模预训练
为了支持大规模预训练,Hugging Face 重新工作了模型初始化并优化了前向和反向传递的内核。该库现在提供了与预训练工具(包括 torchtitan、megatron 和 nanotron)的扩展兼容性。
微调和后训练
Transformers v5 与基于 PyTorch 的微调工具(如 Unsloth、Axolotl、LlamaFactory 和 TRL)保持深度兼容性。它还确保与基于 JAX 的工具(如 MaxText)互操作。
推理和生产集成
Transformers v5 引入了新的 API 和专用内核,以弥合模型定义与高性能部署之间的差距。
新的推理 API
两个主要补充增强了服务能力:
- 连续批处理和分页注意力: 这些机制的支持现在已集成以提高吞吐量。
transformers serve: 一个新的服务系统,部署一个与 OpenAI API 兼容的服务器,专门针对评估用例进行了优化。
生态系统互操作性
与其与专门的推理引擎竞争,不如说 Transformers v5 为它们充当后端。这使得添加到 transformers 中的新模型能够在 vLLM 和 SGLang 等引擎中立即可用,利用它们特定的优化(例如动态批处理和专用内核)。
此外,该库改进了与本地推理工具的互操作性:
- GGUF 支持: 用户现在可以直接在
transformers中加载 GGUF 文件以进行微调,或将transformers模型转换为 GGUF 以供llama.cpp使用。 - MLX 兼容性: 来自
transformers的 Safetensors 文件与 MLX 模型直接兼容。 - 设备端部署: 与
executorch团队和optimum-executorch的合作扩展了模型在设备端的可用性,包括多模态(视觉和音频)模型。
一流的量化支持
量化现在是 Transformers v5 的核心焦点,从附加功能转变为权重加载过程中的一等公民。这确保了与主要功能的完全兼容性,并为训练和推理提供了可靠的框架。这一转变得益于与 TorchAO 和 bitsandbytes 的集成,使得在低精度格式中对 Tensor Parallelism (TP) 和 Mixture of Experts (MoE) 的支持更好。