NVIDIA NIM 與 Hugging Face 的整合
NVIDIA NIM 現在透過提供單一、統一的 Docker 容器,自動化最佳化與服務流程,使得能快速部署超過 100,000 個來自 Hugging Face 的大型語言模型(LLM)。此整合消除了手動管理多樣推論框架的瓶頸,從而在不同模型架構上達到最佳效能。
用於 LLM 部署的統一推論微服務
NVIDIA NIM 提供單一 Docker 容器,能透過整合領先的推論框架(包括 NVIDIA TensorRT-LLM、vLLM 與 SGLang)部署廣泛的 LLM。容器會自動化從模型權重檔案到執行中的推論伺服器的轉換,分為四個明確的適配階段:
- 模型分析:NIM 會自動辨識模型格式,支援 Hugging Face 模型、TensorRT-LLM 檢查點或預建的 TensorRT-LLM 引擎。
- 架構與量化偵測:系統會偵測模型的架構(例如 Llama、Mistral)以及其量化格式(例如 FP16、FP8、INT4)。
- 後端選擇:NIM 會根據先前的分析,選擇最適合的推論後端(TensorRT-LLM、vLLM 或 SGLang)。
- 效能設定:容器會套用針對所選模型與後端的預先配置設定,啟動推論伺服器,無需手動調校。
支援的模型權重格式
為確保廣泛相容性,NIM 容器支援多種常見的權重格式:
- Hugging Face Transformers 檢查點:直接從使用
.safetensors檔案的倉庫部署。 - GGUF 檢查點:支援來自 Hugging Face 或本機儲存的量化 GGUF 檢查點。
- TensorRT-LLM 檢查點:模型以
trtllm_ckpt目錄打包。 - TensorRT-LLM 引擎:來自
trtllm_engine目錄的預建引擎,以獲得最高 GPU 效能。
部署工作流程與設定
透過 NIM 部署模型需要具備 CUDA 12.1 以上驅動的 NVIDIA GPU、Docker、NVIDIA NGC 帳號,以及用於驗證模型的 Hugging Face API 令牌。
模型部署範例
使用者可以透過 NIM_MODEL_NAME 環境變數直接從 Hugging Face 部署模型。例如,部署 Codestral-22B 只需執行 NIM Docker 映像,並使用模型 URI hf://mistralai/Codestral-22B-v0.1。
對於本機儲存的模型,NIM_MODEL_NAME 指向本機目錄路徑,且該目錄必須掛載至 Docker 容器中。
後端自訂與量化
雖然 NIM 會自動化後端選擇,使用者仍可透過 list-model-profiles 指令查看相容的設定檔,然後設定 NIM_MODEL_PROFILE 環境變數以手動指定後端。
NIM 亦簡化了量化模型(如 AWQ 或 GGUF)的部署。系統會自動偵測量化格式,並使用與全精度模型相同的標準部署指令選擇相應的後端。
進階效能調校
針對企業級部署,NIM 提供環境變數以進行微調:
NIM_MAX_MODEL_LEN:調整上下文長度。NIM_TENSOR_PARALLEL_SIZE:啟用大型模型的多 GPU 部署。此功能需要在 Docker 中傳遞--shm-size旗標,以促進多 GPU 通訊。