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 重新工作了模型初始化并优化了前向和反向传递的内核。该库现在提供了与预训练工具(包括 torchtitanmegatronnanotron)的扩展兼容性。

微调和后训练

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 的核心焦点,从附加功能转变为权重加载过程中的一等公民。这确保了与主要功能的完全兼容性,并为训练和推理提供了可靠的框架。这一转变得益于与 TorchAObitsandbytes 的集成,使得在低精度格式中对 Tensor Parallelism (TP) 和 Mixture of Experts (MoE) 的支持更好。

Sources