Hugging Face Infinity CPU 效能案例研究

Hugging Face Infinity 是一種容器化推論解決方案,旨在降低在 CPU 基礎設施上部署 Transformer 模型時的延遲並提高吞吐量。透過針對特定硬體架構優化模型,它能夠實現即時使用場景,並降低大規模部署的基礎設施成本。

Hugging Face Infinity 的架構

Infinity 由兩個主要組件組成,兩者協同工作以提供硬體加速的推論流水線:

  • Infinity Container:一個 Docker 容器,提供硬體優化的推論解決方案並公開 HTTP /predict 端點。
  • Infinity Multiverse:一個模型優化服務,可針對目標硬體架構優化 Hugging Face Transformer 模型,以確保與 Infinity Container 的相容性。

每個 Infinity Container 旨在服務單一模型與單一任務。支援的任務包括 token classification、sequence classification、ranking 以及 feature extraction/document embedding。

Intel Ice Lake 上的效能基準測試

在一項使用 Amazon EC2 C6i 執行個體(由搭載 Ice Lake 架構的第 3 代 Intel Xeon Scalable 處理器驅動)的案例研究中,Hugging Face 對 DistilBERT 模型進行了 sequence classification 的基準測試。

端到端測量

與僅測量模型執行的基準測試不同,Infinity 的效能是以端到端流水線來衡量的,涵蓋了預處理、預測與後處理。

關鍵結果

在 Ice Lake 上執行優化容器的 Infinity 相比於其他配置實現了以下改進:

  • 相對於 Vanilla Transformers:在 Ice Lake 硬體上,延遲與吞吐量提升高達 800%。
  • 相對於 Cascade Lake:與基於 Cascade Lake 架構的執行個體相比,延遲與吞吐量提升高達 34%。

吞吐量比較

當在兩個實體核心上以 batch size 為 1 執行時,Infinity 在所有序列長度下相對於 vanilla Transformers 均展現出顯著的吞吐量增益:

Sequence Length Infinity Transformers Improvement
8 248 req/sec 49 req/sec +506%
16 212 req/sec 16 req/sec +424%
32 150 req/sec 40 req/sec +375%
64 97 req/sec 28 req/sec +346%
128 55 req/sec 18 req/sec +305%
256 27 req/sec 9 req/sec +300%
384 17 req/sec 5 req/sec +340%
512 12 req/sec 4 req/sec +300%

延遲指標

對於長度高達 64 個 token 的序列,Infinity 可以提供低至 1-4ms 的延遲。基準測試還顯示,Infinity 在 p95、p99 與最大延遲 (p100) 之間保持一致的效能,偏差極小。

部署影響

能夠針對吞吐量或延遲進行優化,讓企業可以選擇在相同工作負載下降低基礎設施成本,或是實現先前在基於 CPU 的基礎設施上難以實現的即時 AI 應用程式。


Note:截至 2022 年 12 月,Hugging Face Infinity 不再作為商業推論解決方案提供。Hugging Face 現在建議使用 Inference Endpoints 進行託管基礎設施,或使用 Optimum IntelOptimum ONNX Runtime 函式庫進行開源硬體優化。

Sources

相關

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch