NVIDIA 黃仁勳執行長在 2024 Computex 說的 NIM 是什麼?
大雨滂沱的 6/2,週日晚上的台大體育館擠滿了人,大家要來聽NVIDIA 黃仁勳執行長的 2024 Computex 專題演講,其中用了相當大的篇幅來提到 NIM,也就是 NVIDIA Inference Microservice,或稱 NVIDIA 推論微服務。
根據 NIM 開發者頁面,NIM 的定義如下:
隸屬於 NVIDIA AI Enterprise,NVIDIA NIM 是一組加速推理微服務,允許組織在 NVIDIA GPU 上運行 AI 模型,無論是在雲端、資料中心、工作站或個人電腦上。使用業界標準 API,開發人員只須幾行程式碼就能部署 AI 模型。NIM 容器可以與 Kubernetes (K8s) 生態系統無缝整合,實現容器化 AI 應用的高效編排和管理。使用 NIM 可以有效加速 AI 應用的開發。
2024 Computex 談到 NIM 的影片如下 (1:47:30),先聽聽執行長怎麼說吧:
NIM – NVIDIA Inference Microservice
這張圖片展示了 NVIDIA Inference Microservice (NIM) 的架構,包含了多個組成部分,每個部分都在 AI 模型推論的不同層面上發揮關鍵作用。就讓阿吉來看圖說故事吧 (當然是有參考 NIM 開發者頁面 的啦):
讓我們由下往上說。
NVIDIA CUDA:首先,老黃在 keynote 開頭用很大的力氣在宣傳自家的 CUDA,可說是 CUDA 實現了 NVIDIA 加速運算的基礎,也是後續所有功能的可行性關鍵。
接下來各項我都整理了功能與優勢,希望幫助大家理解 NIM 的威力。大家可去搜尋各項的副標小字,會更加了解整體脈絡。左下角開始順時鐘介紹:
1. Kubernetes 功能:Kubernetes 作為容器編排系統,幫助管理和調度 NIM 中的所有服務和應用。 優勢:簡化了大規模的部署和管理,使資源的分配更加靈活高效。 |
2. Enterprise Management 功能:提供企業級管理功能,包括健康檢查、身份驗證、指標監控和機密管理。 優勢:確保系統的穩定運行和安全性,便於監控和維護。 |
3. Cloud-Native Stack 功能:包含 GPU Operator 和 Network Operator,負責管理 GPU 資源和網絡連接。 優勢:支持在雲端或本地環境中的高效部署和運行。 |
4. Triton Inference Server 功能:支持多框架的推論伺服器,包含 cuDNN、cuBLAS、NCCL 等加速庫。 優勢:提供高效的推理性能,支持多種模型和加速技術。 |
5. Industry-Standard APIs 功能:提供文字、語音、圖像和影片等標準 API 接口。 優勢:方便整合多種應用和服務,提升開發靈活性。 |
6. TensorRT-LLM and Triton 功能:支持大語言模型和 Triton 的記憶體最佳化、批次處理等功能。 優勢:提供高效記憶體管理和推論加速,適合大型模型的部署。 |
7. Optimized AI Model 功能:支持單 GPU、多 GPU 和多節點的 AI 模型最佳化。 優勢:提供從小型到大型 AI 應用的靈活支持,提升模型運行效率。 |
8. Customization Cache 功能: 包括 P-Tuning、LoRA 和模型權重的自定義緩存。 優勢: 支持模型的自定義和優化,滿足特定應用的需求。 |
NIM 立即體驗
先說結論:我有感受到 NIM 的目標就是要把東西弄得很簡單,簡單到您會覺得 “就這樣嗎?這樣就會動嗎?” 說這麼多,玩玩看就知道好不好用!
請進入 [NVIDIA NIM for Deploying Generative AI] 頁面,可以看到許多最新資訊與可用的模型,例如 meta llama3、microsoft phi-3 等等。請點選 Try Now 立即線上試玩,也可以在本地端 VSCode 這類環境來執行。
線上試玩
點選 Try Now 之後會進入 NVIDIA Build 頁面,請點選您想要體驗的模型,例如 llama3-70b-instruct
,會出現以下畫面,請隨意輸入您想要與其對話的內容,例如下圖我問的是 “常見的機器人分類有哪些?“。按下 Send 之後可以看到模型回答的結果相當正確。
再次要求它用正體中文回答,也沒問題喔!
不過… 您不是只是來體驗交談式AI而已吧?那麼在本地端要如何執行呢?
本地端執行
其實在上圖的 llama3 操作畫面中的右側,就會看到立即可用的程式碼樣板,包含 Python、Node、Shell 與 Docker 等,方便您在各種情境下都能很快上手。
如果要在本地端執行,您需要申請一個 model api key (網頁上體驗則不需要),會是以 nvapi
開頭。請點選上圖中右側視窗的 Get API Key 並依序操作就可以了,會在畫面中出現這個視窗,請注意由於安全性考量,key 只會出現就這麼一次,如果忘記就要重新申請。
把申請好的 model api key 填入您的 api_key
變數,執行如下,就能看到執行結果。
讚喔!您已經順利運用 NIM 來執行所指定的模型了,例如下圖中我用的是 mixtral-8x22b
。同樣的方法也適用於不同的模型,歡迎多多嘗試喔!
延伸閱讀與資料來源
- https://www.nvidia.com/en-us/ai/
- https://developer.nvidia.com/nim
- https://buzzorange.com/techorange/2024/06/03/nvidia-open-nim-to-28-million-developers/