Hugging Face 整合 AMD Instinct MI300 GPU
Hugging Face 與 AMD 已將 AMD Instinct MI300 GPU 整合至 Hugging Face 平台,提供對 transformers、text-generation-inference(TGI)以及其他核心函式庫的無縫支援。此整合讓使用者能在 AMD MI300 硬體上部署模型,包括 Azure ND MI300x V5 虛擬機,且無需更改程式碼。
開源與生產就緒
為確保長期的穩定性與正確性,Hugging Face 為 MI300 系列實作了穩健的 CI/CD 流程。
CI/CD 基礎設施
透過使用 Azure ND MI300x V5 虛擬機與受管理的 Kubernetes 叢集,Hugging Face 現在能定期在 MI300 與前一代的 MI250 GPU 上執行數萬個單元測試。此基礎設施將硬體特定的 pod 抽象化,讓開發者免除關注,確保 transformers 與 text-generation-inference 在不同 AMD 硬體平台上皆保持相容且具效能。
生產 AI 工作負載效能
整合工作聚焦於 TGI 的模型層,以優化在 MI300 硬體上執行 Meta Llama 系列模型的效能。
推論效能
優化工作包括整合 Flash Attention v2、Paged Attention、GPTQ/AWQ 壓縮技術,以及最佳化的融合核心。
TunableOp 的角色
自 PyTorch 2.3 起,Hugging Face 整合了 AMD TunableOp,這是一種根據形狀與資料類型找出執行一般矩陣乘法(GEMM)最有效方式的機制。在 TGI 暖機階段,TunableOp 會為使用者的特定序列長度與批次大小找出最佳設定,並在伺服器運行期間鎖定這些例程。此舉在自回歸解碼階段對小輸入序列的延遲提升 8-10%。
基準測試:MI300 與 MI250
在 Azure ND MI300x V5 上使用 Meta Llama 3 70B 時,MI300X 相較於 MI250 展現顯著提升:
- 首次 Token 時間(Prefill): 提升 2 倍至 3 倍。
- 自回歸解碼延遲: 提升 2 倍。
模型微調效能
微調測試使用 Transformers、PEFT(搭配 LoRA)以及透過 Accelerate 函式庫的 DeepSpeed Zero3,在 Llama 3 70B 上進行。
- 訓練速度: 在搭載 MI300X 的 Azure 虛擬機上,訓練速度約為 MI250 HPC 伺服器的 2 倍。
- 記憶體容量: MI300X 的 192 GB HBM3 記憶體允許在單一裝置上完整載入並微調 Meta Llama 3 70B(約 140 GB 的 float16/bfloat16),此在 128 GB 的 MI250 上無法實現。
未來路線圖
Hugging Face 目前正投入「minifloat」支援(float8 及更低)。預期可將 LLM 推論中的鍵值快取大小減半。未來目標包括結合 float8 儲存的鍵值快取與 float8/float8 矩陣乘法,以進一步降低記憶體占用並提升效能。