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 大幅改革:「快速」與「慢速」分詞器的概念被移除,改為統一的
tokenizers後端。Sentencepiece 與 MistralCommon 的支援仍可作為非預設選項使用。 - 影像處理:影像處理器現在僅以快速變體存在,依賴
torchvision後端。
增強的訓練能力
雖然之前的版本主要專注於微調,但在大規模預訓練和完整訓練方面引入了顯著的改進。
大規模預訓練
為支援大規模預訓練,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) 的支援更佳。