技術(shù)行業(yè)近來(lái)對(duì)大語(yǔ)言模型(LLM)的關(guān)注正開(kāi)始轉(zhuǎn)向生產(chǎn)環(huán)境的大規(guī)模部署,將 AI 模型接入現(xiàn)有基礎(chǔ)設(shè)施以優(yōu)化系統(tǒng)性能,包括降低延遲、提高吞吐量,以及加強(qiáng)日志記錄、監(jiān)控和安全性等。然而這一路徑既復(fù)雜又耗時(shí),往往需要構(gòu)建專(zhuān)門(mén)的平臺(tái)和流程。
在部署 AI 模型的過(guò)程中,研發(fā)團(tuán)隊(duì)通常需要執(zhí)行以下步驟:
環(huán)境搭建與配置:首先需要準(zhǔn)備和調(diào)試運(yùn)行環(huán)境,這包括但不限于 CUDA、Python、PyTorch 等依賴(lài)項(xiàng)的安裝與配置。這一步驟往往較為復(fù)雜,需要細(xì)致地調(diào)整各個(gè)組件以確保兼容性和性能。
模型優(yōu)化與封裝:接下來(lái)進(jìn)行模型的打包和優(yōu)化,以提高推理效率。這通常涉及到使用 NVIDIA TensorRT 軟件開(kāi)發(fā)套件或 NVIDIA TensorRT-LLM 庫(kù)等專(zhuān)業(yè)工具來(lái)優(yōu)化模型,并根據(jù)性能測(cè)試結(jié)果和經(jīng)驗(yàn)來(lái)調(diào)整推理引擎的配置參數(shù)。這一過(guò)程需要深入的 AI 領(lǐng)域知識(shí),并且工具的使用具有一定的學(xué)習(xí)成本。
模型部署:最后,將優(yōu)化后的模型部署到生產(chǎn)環(huán)境中。對(duì)于非容器化環(huán)境,資源的準(zhǔn)備和管理也是一個(gè)需要精心策劃的環(huán)節(jié)。
為了簡(jiǎn)化上述流程并降低技術(shù)門(mén)檻,火山引擎云原生團(tuán)隊(duì)推出基于 VKE 的 NVIDIA NIM 微服務(wù)最佳實(shí)踐。通過(guò)結(jié)合 NIM 一站式模型服務(wù)能力,以及火山引擎容器服務(wù) VKE 在成本節(jié)約和極簡(jiǎn)運(yùn)維等方面的優(yōu)勢(shì),這套開(kāi)箱即用的技術(shù)方案將幫助企業(yè)更加快捷和高效地部署 AI 模型。
AI 微服務(wù)化:NVIDIA NIM
NVIDIA NIM 是一套經(jīng)過(guò)優(yōu)化的企業(yè)級(jí)生成式 AI 微服務(wù),它包括推理引擎,通過(guò) API 接口對(duì)外提供服務(wù),幫助企業(yè)和個(gè)人開(kāi)發(fā)者更簡(jiǎn)單地開(kāi)發(fā)和部署 AI 驅(qū)動(dòng)的應(yīng)用程序。
NIM 使用行業(yè)標(biāo)準(zhǔn) API,支持跨多個(gè)領(lǐng)域的 AI 用例,包括 LLM、視覺(jué)語(yǔ)言模型(VLM),以及用于語(yǔ)音、圖像、視頻、3D、藥物研發(fā)、醫(yī)學(xué)成像等的模型。同時(shí),它基于 NVIDIA Triton? Inference Server、NVIDIA TensorRT?、NVIDIA TensorRT-LLM 和 PyTorch 構(gòu)建,可以在加速基礎(chǔ)設(shè)施上提供最優(yōu)的延遲和吞吐量。
為了進(jìn)一步降低復(fù)雜度,NIM 將模型和運(yùn)行環(huán)境做了解耦,以容器鏡像的形式為每個(gè)模型或模型系列打包。其在 Kubernetes 內(nèi)的部署形態(tài)如下:


NVIDIA NIM on Kubernetes
火山引擎容器服務(wù) VKE(Volcengine Kubernetes Engine)通過(guò)深度融合新一代云原生技術(shù),提供以容器為核心的高性能 Kubernetes 容器集群管理服務(wù),可以為 NIM 提供穩(wěn)定可靠高性能的運(yùn)行環(huán)境,實(shí)現(xiàn)模型使用和運(yùn)行的強(qiáng)強(qiáng)聯(lián)合。
同時(shí),模型服務(wù)的發(fā)布和運(yùn)行也離不開(kāi)發(fā)布管理、網(wǎng)絡(luò)訪問(wèn)、觀測(cè)等能力,VKE 深度整合了火山引擎高性能計(jì)算(ECS/裸金屬)、網(wǎng)絡(luò)(VPC/EIP/CLB)、存儲(chǔ)(EBS/TOS/NAS)、彈性容器實(shí)例(VCI)等服務(wù),并與鏡像倉(cāng)庫(kù)、持續(xù)交付、托管 Prometheus、日志服務(wù)、微服務(wù)引擎等云產(chǎn)品橫向打通,可以實(shí)現(xiàn) NIM 服務(wù)構(gòu)建、部署、發(fā)布、監(jiān)控等全鏈路流程,幫助企業(yè)更靈活、更敏捷地構(gòu)建和擴(kuò)展基于自身數(shù)據(jù)的定制化大型語(yǔ)言模型(LLMs),打造真正的企業(yè)級(jí)智能化、自動(dòng)化基礎(chǔ)設(shè)施。


NVIDIA NIM on VKE 部署流程
下面,我們將介紹 NIM on VKE 的部署流程,助力開(kāi)發(fā)者快速部署和訪問(wèn) AI 模型。
準(zhǔn)備工作
部署 NVIDIA NIM 前,需要做好如下準(zhǔn)備:
1. VKE 集群中已安裝 csi-nas / prometheus-agent / vci-virtual-kubelet / cr-credential-controller 組件
2. 在 VKE 集群中使用相適配的 VCI GPU 實(shí)例規(guī)格,具體軟硬件支持情況可以查看硬件要求
3. 創(chuàng)建 NAS 實(shí)例,作為存儲(chǔ)類(lèi),用于模型文件的存儲(chǔ)
4. 創(chuàng)建 CR(鏡像倉(cāng)庫(kù)) 實(shí)例,用于托管 NIM 鏡像
5. 開(kāi)通 VMP(托管 Prometheus)服務(wù)
6. 向 NVIDIA 官方獲取 NIM 相關(guān)鏡像的拉取權(quán)限(下述以 llama3-8b-instruct:1.0.0 為例),并生成 API Key
部署
1. 在國(guó)內(nèi)運(yùn)行 NIM 官方鏡像時(shí),為了避免網(wǎng)絡(luò)訪問(wèn)影響鏡像拉取速度,可以提前拉取相應(yīng) NIM 鏡像并上傳到火山引擎鏡像倉(cāng)庫(kù) CR,操作步驟如下:


2. Download the code locally, go to the Helm Chart directory of the code, and push Helm Chart to Container Registry (Helm version > 3.7):
下載代碼到本地,進(jìn)入到代碼的 helm chart 目錄中,把 helm chart 推送到鏡像倉(cāng)庫(kù)(helm 版本大于 3.7):


3. 在 vke 的應(yīng)用中心的 helm 應(yīng)用中選擇創(chuàng)建 helm 應(yīng)用,并選擇對(duì)應(yīng) chart,集群信息,并點(diǎn)擊 values.yaml 的編輯按鈕進(jìn)入編輯頁(yè)




4. 覆蓋 values 內(nèi)容為如下值來(lái)根據(jù)火山引擎環(huán)境調(diào)整參數(shù)配置,提升部署性能,點(diǎn)擊確定完成參數(shù)改動(dòng),再繼續(xù)在部署頁(yè)點(diǎn)擊確定完成部署


5. 若 Pod 日志出現(xiàn)如下內(nèi)容或者 Pod 狀態(tài)變成 Ready,說(shuō)明服務(wù)已經(jīng)準(zhǔn)備好:


6. 在 VKE 控制臺(tái)獲取 LB Service 地址(Service 名稱(chēng)為-nim-llm)


7. 訪問(wèn) NIM 服務(wù)


The output is as follows:
會(huì)有如下輸出:


監(jiān)控
NVIDIA NIM 在 Grafana Dashboard 上提供了豐富的觀測(cè)指標(biāo),詳情可參考 Observability
在 VKE 中,可通過(guò)如下方法搭建 NIM 監(jiān)控:
1. 參考文檔搭建 Grafana:https://www.volcengine.com/docs/6731/126068
2. 進(jìn)入 Grafana 中,在 dashboard 菜單中選擇 import:


3. 觀測(cè)面板效果如下:


結(jié)語(yǔ)
相比構(gòu)建大模型鏡像,基于 VKE 使用 NVIDIA NIM 部署和訪問(wèn)模型有如下優(yōu)點(diǎn):
● 易用性:NIM 提供了預(yù)先構(gòu)建好的模型容器鏡像,用戶無(wú)需從頭開(kāi)始構(gòu)建和配置環(huán)境,配合 VKE 與 CR 的應(yīng)用部署能力,極大簡(jiǎn)化了部署過(guò)程
● 性能優(yōu)化:NIM 的容器鏡像是經(jīng)過(guò)優(yōu)化的,可以在 NVIDIA GPU 上高效運(yùn)行,充分利用 VCI 的硬件性能
● 模型選擇:NIM 官方提供了多種大語(yǔ)言模型,用戶可以根據(jù)需求選擇合適的模型,部署在 VKE 中僅需對(duì)values.yaml 配置做修改即可
● 自動(dòng)更新:通過(guò) NGC,NIM 可以自動(dòng)下載和更新模型,用戶無(wú)需手動(dòng)管理模型版本
● 可觀測(cè)性:NIM 內(nèi)置了豐富的觀測(cè)指標(biāo),配合 VKE 與 VMP 觀測(cè)能力開(kāi)箱即用
目前火山引擎容器服務(wù) VKE 已開(kāi)放個(gè)人用戶使用,為個(gè)人和企業(yè)用戶提供高性能、高可靠、極致彈性的企業(yè)級(jí)容器管理能力,結(jié)合 NIM 強(qiáng)大易用的模型部署服務(wù),進(jìn)一步幫助開(kāi)發(fā)者快速部署 AI 模型,并提供高性能、開(kāi)箱即用的模型 API 服務(wù)。
本文轉(zhuǎn)載自:,不代表科技訊之立場(chǎng)。原文鏈接:http://zl.yisouyifa.com/html/240813/181430904177779.html