Hugging Face Optimum 發佈
Hugging Face 推出了 Optimum,這是一個開源函式庫,旨在透過提供針對特定硬體優化 Transformer 模型的工具包,來實現機器學習生產效能的民主化。該函式庫旨在抽象化模型加速的複雜性,使工程師能夠在不需要深厚的硬體特定軟體工具專業知識的情況下,在訓練和推論期間實現效率最大化。
解決擴展 Transformer 的複雜性
為生產環境擴展 Transformer 模型具有挑戰性,因為最佳效能需要與目標硬體特別相容的加速技術。這涉及處理軟體工具、硬體功能和優化核心(kernels)之間複雜的相容性矩陣,這些內容必須與矽片上的算子(operators)以及模型架構的特定神經網路圖形相一致。
雖然 Transformers 函式庫透過抽象化框架和架構的複雜性,簡化了最先進模型的使用,但 Optimum 則抽象化了硬體平台上模型加速的複雜性,使這些功能能被更廣泛的機器學習工程師所使用。
硬體特定優化與量化
Optimum 專注於透過直接與硬體合作夥伴合作來啟用、測試和維護加速技術,以實現最大效率。這種整合的一個主要例子是與 Intel 的合作,以優化針對 Intel Xeon CPU 的模型。
量化的挑戰
量化是一種被廣泛使用的技術,用於減少部署基於 Transformer 的模型(例如 BERT、ViT 和 Speech2Text)時的運算能力需求和成本。然而,實施量化通常很困難,原因如下:
- Model Editing:某些操作必須被替換為量化的對應版本,並且必須插入新的量化/反量化節點。在像 PyTorch 這樣的 eager-mode 框架中,這通常需要修改模型實作本身。
- Parameter Tuning:工程師必須確定用於範圍校準的正確觀察器(observers),選擇合適的量化方案,並為目標裝置識別支援的資料類型(例如 int8、uint8、int16)。
- Accuracy Trade-offs:需要不斷在減少模型大小和提高速度與可接受的準確度損失之間取得平衡。
- Export Complexity:最終的量化模型必須專門為目標裝置進行匯出。
與 Intel Neural Compressor 的整合
為了在 Intel 硬體上解決這些挑戰,Optimum 與 Intel® Neural Compressor(前身為 Low Precision Optimization Tool 或 LPOT)整合。這個開源 Python 函式庫允許使用者透過事後量化(post-training quantization)、量化感知訓練(quantization-aware training)和動態量化(dynamic quantization)的配方來部署低精度推論解決方案。使用者可以透過一個配置 YAML 檔案來指定其調優參數、目標和效能標準,該檔案可以儲存在本地或託管在 Hugging Face Model Hub 上。
未來目標與生態系統影響
Optimum 被設計為 Hugging Face 與各種硬體合作夥伴之間的協作成果,旨在提供硬體特定的優化模型配置和產出物(artifacts)。這些優化後的模型將透過 Hugging Face Model Hub 提供。
透過提供這些工具,Hugging Face 旨在減少機器學習生產工作負載所消耗的總能量,並加速各種規模組織(而不僅僅是大科技公司)大規模採用 Transformers 的過程。
Sources
相關
- 專案
- Dispatch
- Dispatch
- Dispatch
- Dispatch