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 支援選項卡!