www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電路設(shè)計(jì)項(xiàng)目集錦
[導(dǎo)讀]llm或大型語言模型由于能夠生成類似人類的文本而在各個(gè)領(lǐng)域具有廣泛的應(yīng)用。在現(xiàn)實(shí)場(chǎng)景中有效地部署它們帶來了獨(dú)特的挑戰(zhàn)。這些模型需要大量的計(jì)算資源、無縫的可伸縮性和高效的流量管理,以滿足生產(chǎn)環(huán)境的需求。這就是Kubernetes變得至關(guān)重要的地方。輕量級(jí)Kubernetes發(fā)行版在本地開發(fā)中越來越受歡迎,例如K3s、K3d、Kind、Minikube和microk8在這種情況下特別有用。這些工具的目的相似。他們?cè)谝慌_(tái)機(jī)器上管理Kubernetes。

llm或大型語言模型由于能夠生成類似人類的文本而在各個(gè)領(lǐng)域具有廣泛的應(yīng)用。在現(xiàn)實(shí)場(chǎng)景中有效地部署它們帶來了獨(dú)特的挑戰(zhàn)。這些模型需要大量的計(jì)算資源、無縫的可伸縮性和高效的流量管理,以滿足生產(chǎn)環(huán)境的需求。這就是Kubernetes變得至關(guān)重要的地方。輕量級(jí)Kubernetes發(fā)行版在本地開發(fā)中越來越受歡迎,例如K3s、K3d、Kind、Minikube和microk8在這種情況下特別有用。這些工具的目的相似。他們?cè)谝慌_(tái)機(jī)器上管理Kubernetes。

在這篇博文中,您將學(xué)習(xí)如何開始使用k3s Kubernetes集群在NVIDIA Jetson AGX Orin開發(fā)工具包上運(yùn)行LLM。K3s是一個(gè)官方的云原生計(jì)算基金會(huì)沙盒項(xiàng)目,它帶來了一個(gè)輕量級(jí)的、完全兼容的Kubernetes發(fā)行版,專為在資源有限的生產(chǎn)環(huán)境中使用而設(shè)計(jì),針對(duì)ARM64進(jìn)行了優(yōu)化,使其成為小規(guī)模和邊緣部署的理想選擇,如NVIDIA Jetson AGX Orin開發(fā)工具包。

下圖顯示了您在閱讀本文后將獲得的目標(biāo)基礎(chǔ)設(shè)施。

我相信K3s使GPU直通到集群更容易,因?yàn)樗赡苤恍枰蕾嘚vidia CUDA和Docker。為了實(shí)現(xiàn)這一點(diǎn),默認(rèn)的Docker運(yùn)行時(shí)位于/etc/docker/daemon.Json需要修改。帶有NVIDIA運(yùn)行時(shí)支持的Docker安裝說明可在NVIDIA Jetson AI實(shí)驗(yàn)室獲得:

在開始本教程之前,請(qǐng)確保您具有Kubernetes的基本知識(shí)。必須熟悉kubectl、部署、服務(wù)和pod。

使用Docker Runtime安裝K3s

使用Docker作為容器運(yùn)行時(shí)安裝K3s,并使kubecconfig文件可讀。

并完成了!您已經(jīng)在本地安裝了Kubernetes集群。只需要一行代碼,就可以運(yùn)行一個(gè)K3s集群(包括負(fù)載平衡器、入口、存儲(chǔ)類、coreDNS等)。這也將自動(dòng)在NVIDIA Jetson AGX Orin上安裝kubectl。

安裝完成后,可以通過運(yùn)行以下命令來驗(yàn)證集群的狀態(tài):

輸出應(yīng)該是一個(gè)集群節(jié)點(diǎn)列表,目前只有一個(gè),或者運(yùn)行:

為了有效地管理Kubernetes應(yīng)用程序,您可以安裝Helm,它是Kubernetes的包管理器。創(chuàng)建一個(gè)shell腳本(例如,install_helm.sh),內(nèi)容如下:

保存此腳本并使用命令執(zhí)行:

要驗(yàn)證Kubernetes環(huán)境并可能訪問pod中的GPU資源,請(qǐng)創(chuàng)建一個(gè)名為test的YAML文件。Yaml具有以下規(guī)格:

使用以下命令將此配置應(yīng)用到Kubernetes集群:

一旦pod轉(zhuǎn)換到Running狀態(tài),您可以獲得對(duì)容器的交互式shell訪問,以執(zhí)行具有CUDA支持的Python代碼:

執(zhí)行以下命令,確認(rèn)圖形處理器已被識(shí)別。

輸出Orin確認(rèn)容器內(nèi)的PyTorch環(huán)境可以成功檢測(cè)和利用NVIDIA Jetson AGX Orin的GPU。既然已經(jīng)創(chuàng)建了集群,就可以部署運(yùn)行vLLM的Kubernetes Pod了。

部署vLLM生產(chǎn)棧

vLLM生產(chǎn)堆棧是構(gòu)建在vLLM之上的推理堆棧的開源參考實(shí)現(xiàn)。我們將創(chuàng)建一個(gè)Kubernetes部署和服務(wù)來管理和公開LLM應(yīng)用程序。

首先,我們需要為專門為NVIDIA Jetson AGX Orin Developer Kit的arm64架構(gòu)設(shè)計(jì)的vLLM路由器創(chuàng)建一個(gè)自定義Docker映像。

創(chuàng)建一個(gè)Dockerfile,內(nèi)容如下:

導(dǎo)航到包含Dockerfile的目錄,在終端中執(zhí)行以下命令來構(gòu)建Docker鏡像:

生成的Docker映像將被標(biāo)記為vLLM -router-arm64,并可用于在NVIDIA Jetson AGX Orin上部署vLLM路由器。最后,將其推送到容器注冊(cè)表(如Docker Hub)。

然后,克隆vLLM生產(chǎn)棧存儲(chǔ)庫(kù):

添加vLLM Helm存儲(chǔ)庫(kù):

幸運(yùn)的是,已經(jīng)存在vLLM的容器映像,因此您不必?fù)?dān)心自己構(gòu)建Dockerfile。

在使用Helm部署vLLM生產(chǎn)堆棧時(shí),需要修改這些值。使用自定義的ARM64路由器映像。在你的值中找到routerSpec部分。Yaml文件(在tutorial /assets/values-02-basic-config中)。Yaml或您的自定義配置),并更新如下:

我們將使用vLLM在Kubernetes集群上部署一個(gè)LLM模型(meta-llama/Llama-3.2-1B-Instruct)。

使用Helm安裝vLLM堆棧:

您應(yīng)該看到指示成功部署Helm圖表的輸出:

現(xiàn)在已經(jīng)部署了帶有兩個(gè)副本的Kubernetes部署,因此您可以開始測(cè)試它是否有效。

檢查Kubernetes集群中pod的狀態(tài):

您應(yīng)該看到vLLM路由器和服務(wù)引擎的pod處于運(yùn)行狀態(tài)。你可以檢查路由器pod的日志,以確保它正確運(yùn)行并服務(wù)API請(qǐng)求:

要從Kubernetes集群外部訪問vLLM路由器,可能需要使用端口轉(zhuǎn)發(fā)或負(fù)載平衡器公開服務(wù)。端口轉(zhuǎn)發(fā)示例如下:

現(xiàn)在可以向vLLM路由器API發(fā)送請(qǐng)求。

您應(yīng)該收到一個(gè)JSON響應(yīng),其中列出了vLLM堆棧提供的可用模型:

部署完成后,你可以像這樣發(fā)送一個(gè)測(cè)試請(qǐng)求:

以下輸出顯示了模型響應(yīng)的示例:

它像預(yù)期的那樣工作?,F(xiàn)在讓我們使用jtop監(jiān)控解決方案檢查內(nèi)存消耗情況。

要擴(kuò)展副本的數(shù)量,請(qǐng)更新replicaccount的值。并重新部署Helm圖表。擴(kuò)展副本的數(shù)量可以提高性能和可用性,但監(jiān)控資源消耗并確保Kubernetes集群有足夠的資源來適應(yīng)增加的負(fù)載是至關(guān)重要的。

將replicaccount設(shè)置為3后的輸出示例:

高內(nèi)存使用率可能導(dǎo)致性能下降,甚至出現(xiàn)內(nèi)存不足(OOM)錯(cuò)誤,從而導(dǎo)致pod崩潰。內(nèi)存消耗為

在將replicaccount更新為4并重新部署后,使用kubectl get pods檢查pod可能會(huì)顯示由于CPU資源不足而導(dǎo)致掛起的pod:

在您的值中縮放replicaccount時(shí)。您正在指示Kubernetes為您的vLLM部署創(chuàng)建更多實(shí)例(pod)。每個(gè)pod都需要CPU和內(nèi)存資源。

使用兩個(gè)副本部署Llama 3.1 8B指令模型

本演練演示了如何在Kubernetes集群上部署強(qiáng)大的Llama 3.1 8B指令語言模型,利用vLLM推理引擎進(jìn)行高效服務(wù)

現(xiàn)在部署已經(jīng)啟動(dòng)并運(yùn)行,讓我們發(fā)送一個(gè)測(cè)試請(qǐng)求,以確保模型正常工作。

如果請(qǐng)求成功,您將收到一個(gè)類似于以下內(nèi)容的JSON響應(yīng):

現(xiàn)在可以使用監(jiān)視工具(如jtop)驗(yàn)證內(nèi)存消耗情況。

恭喜你!您已經(jīng)使用vLLM在Kubernetes集群上成功地部署了Llama 3.1 8B指令語言模型和兩個(gè)副本。這種設(shè)置提供了一種可伸縮的、可能更具彈性的推理服務(wù)。

卸載堆疊,使用命令:

使用Grafana和Prometheus監(jiān)控和記錄

監(jiān)視和日志記錄對(duì)于維護(hù)和排除LLM應(yīng)用程序的故障至關(guān)重要。Prometheus是一個(gè)收集和存儲(chǔ)時(shí)間序列數(shù)據(jù)的開源監(jiān)控和警報(bào)工具,而Grafana是一個(gè)流行的數(shù)據(jù)可視化平臺(tái),允許您創(chuàng)建交互式儀表板和可視化。

導(dǎo)航到observability文件夾。然后運(yùn)行安裝腳本:

安裝輸出:

已成功安裝kube-prometheus-stack。將Grafana儀表板端口轉(zhuǎn)發(fā)到本地node-port:

轉(zhuǎn)發(fā)普羅米修斯儀表板:

現(xiàn)在你可以瀏覽Grafana Dashboard了。

通過組合這些工具,您可以對(duì)Kubernetes集群的性能和健康狀況獲得有價(jià)值的見解,從而更容易識(shí)別和排除問題,包括自動(dòng)伸縮、監(jiān)控和服務(wù)發(fā)現(xiàn),并且您的設(shè)置可以有效地處理實(shí)際需求。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉