ACK託管叢集Pro版提供了測試環境和生產環境部署方案,在無需管理底層硬體與依賴的前提下,快速驗證大模型的推理能力。解決開發人員在本地驗證大語言模型時面臨的GPU資源不足和環境配置複雜等問題。
適用範圍
叢集版本為1.22及以上,GPU節點顯存需為16GB及以上的ACK託管叢集Pro版。
設定NVIDIA驅動為535及以上版本,本樣本為GPU節點池添加標籤
ack.aliyun.com/nvidia-driver-version,驅動版本為550.144.03。
測試環境部署
使用Arena快速部署qwen/Qwen1.5-4B-Chat,適用於測試情境,耗時約需15分鐘。
安裝Arena用戶端。
通過Arena部署一個自訂類型的服務,並通過
--image參數指定用於部署服務的容器鏡像。更多參數說明,請參見部署命令參數說明。由於ModelScope模型檔案將下載至容器內,請確保GPU節點具備至少30GB的可用磁碟空間。
arena serve custom \ --name=modelscope \ --version=v1 \ --gpus=1 \ --replicas=1 \ --restful-port=8000 \ --readiness-probe-action="tcpSocket" \ --readiness-probe-action-option="port: 8000" \ --readiness-probe-option="initialDelaySeconds: 30" \ --readiness-probe-option="periodSeconds: 30" \ --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/quick-deploy-llm:v1 \ "MODEL_ID=qwen/Qwen1.5-4B-Chat python3 server.py"如需從Hugging Face倉庫拉模數型檔案,請參見Hugging Face拉模數型檔案。
以下輸出表明與推理服務
modelscope-v1相關的Kubernetes資源已成功建立:service/modelscope-v1 created deployment.apps/modelscope-v1-custom-serving created INFO[0002] The Job modelscope has been submitted successfully INFO[0002] You can run `arena serve get modelscope --type custom-serving -n default` to check the job status查看推理服務的詳細資料。
模型下載需要約10分鐘,期間Pod狀態顯示為ContainerCreating。
arena serve get modelscope輸出Pod為Running狀態,表明
modelscope推理服務已就緒並正常運行。
生產環境部署
對於生產級部署情境,推薦採用OSS靜態儲存卷預先載入模型的方式,避免每次Pod啟動時重複下載大模型檔案(超過10GB),從而顯著縮短冷啟動時間、降低外網頻寬消耗,並提升服務穩定性。
步驟一:下載模型檔案
下載模型檔案到本地。
安裝Git、Git LFS(Large File Support)外掛程式。
macOS
安裝Git。
官方維護的 macOS Git 安裝程式可以在 Git 官方網站下載。
brew install git安裝Git LFS(Large File Support)外掛程式拉取大檔案內容。
brew install git-lfs
Windows
安裝Git。
可在Git 官方網站下載合適版本並安裝。
安裝Git LFS(Large File Support)外掛程式拉取大檔案內容。目前lfs已經整合在了Git for Windows 中,直接下載和使用最新版本的Windows Git即可。
Linux
安裝Git。
以RedHat系列的Linux系統為例,其餘系統安裝,請參見Git 官方網站。
yum install git安裝Git LFS(Large File Support)外掛程式拉取大檔案內容。
yum install git-lfs
下載Qwen1.5-4B-Chat模型。
GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/qwen/Qwen1.5-4B-Chat.git cd Qwen1.5-4B-Chat git lfs pull
將Qwen1.5-4B-Chat模型檔案上傳至OSS。
安裝並配置ossutil,用於管理OSS資源。
建立Bucket儲存空間。
為加快模型拉取速度,建議將Bucket和叢集地區保持一致。
ossutil mb oss://<Your-Bucket-Name>在OSS建立名為Qwen1.5-4B-Chat的目錄。
ossutil mkdir oss://<Your-Bucket-Name>/Qwen1.5-4B-Chat上傳模型檔案至OSS。
ossutil cp -r ./Qwen1.5-4B-Chat oss://<Your-Bucket-Name>/Qwen1.5-4B-Chat
配置儲存卷PV。
登入Container Service管理主控台,單擊目的地組群名稱,選擇。
在儲存卷頁面,單擊建立。在建立儲存卷對話方塊中配置參數。參數配置完成後,單擊建立
儲存卷類型為
OSS;名稱為llm-model;總量為20Gi;訪問模式為ReadOnlyMany;訪問認證為選擇建立保密字典。選擇性參數為
-o umask=022 -o max_stat_cache_size=0 -o allow_other;Bucket ID為選擇Bucket;OSS Path為/Qwen1.5-4B-Chat;訪問網域名稱為公網網域名稱。
配置儲存聲明PVC。
在叢集詳情頁,選擇。
在建立儲存聲明頁面中,填寫介面參數。
儲存宣告類型為
OSS;名稱為llm-model;分配模式為已有儲存卷;已有儲存卷為上一步建立的儲存卷llm-model;總量為20Gi。
步驟二:部署推理服務
安裝Arena用戶端。
通過Arena部署一個自訂類型的服務,並通過
--data參數掛載包含模型檔案的PVC。更多參數說明,請參見部署命令參數說明。arena serve custom \ --name=modelscope \ --version=v1 \ --gpus=1 \ --replicas=1 \ --restful-port=8000 \ --readiness-probe-action="tcpSocket" \ --readiness-probe-action-option="port: 8000" \ --readiness-probe-option="initialDelaySeconds: 30" \ --readiness-probe-option="periodSeconds: 30" \ --data=llm-model:/Qwen1.5-4B-Chat \ --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/quick-deploy-llm:v1 \ "MODEL_ID=/Qwen1.5-4B-Chat python3 server.py"以下輸出表明推理服務已成功提交:
service/modelscope-v1 created deployment.apps/modelscope-v1-custom-serving created INFO[0001] The Job modelscope has been submitted successfully INFO[0001] You can run `arena serve get modelscope --type custom-serving -n default` to check the job status查看推理服務詳細資料。
arena serve get modelscope輸出Pod為Running狀態,表明推理服務已就緒並正常運行。
驗證推理服務
為推理服務建立連接埠轉寄。
重要請注意kubectl port-forward建立的連接埠轉寄不具備生產層級的可靠性、安全性和擴充性,因此僅適用於開發和調試目的,不適合在生產環境使用。更多關於Kubernetes叢集內生產可用的網路方案的資訊,請參見Ingress管理。
kubectl port-forward svc/modelscope-v1 8000:8000預期輸出:
Forwarding from 127.0.0.1:8000 -> 8000 Forwarding from [::1]:8000 -> 8000建立一個終端視窗,向推理服務發送模型推理請求。
curl -X POST http://localhost:8000/generate \ -H "Content-Type: application/json" \ -d '{ "text_input": "什麼是人工智慧?人工智慧是", "parameters": { "stream": false, "temperature": 0.9, "seed": 10 } }'成功調用後,將返回包含模型推理結果的輸出:
{"model_name":"/Qwen1.5-4B-Chat","text_output":"什麼是人工智慧?人工智慧是電腦科學的一個分支,它研究如何使電腦具有智能行為。"}
(可選)清理環境
測試完成後,可刪除已部署的推理服務以釋放資源。
清理已部署的推理服務。
arena serve del modelscope清理已建立的PV和PVC。
kubectl delete pvc llm-model kubectl delete pv llm-model
部署命令參數說明
參數 | 說明 | 樣本值 |
| Arena子命令。表示建立一個自訂的模型服務,而不是使用預設的類型(如 | (無) |
| 服務名稱。為要部署的服務指定一個唯一的名稱。名稱將用於後續的管理操作,如查看日誌、刪除服務等。 |
|
| 服務版本。為服務指定一個版本號碼,方便進行版本管理和灰階發布等操作。 |
|
| GPU資源。為每個服務執行個體(Pod)分配的GPU卡數量。如果模型需要GPU進行推理,則必須指定此參數。 |
|
| 副本數量。指定服務的執行個體(Pod)數量。增加副本數可以提高服務的並發處理能力和可用性。 |
|
| RESTful連接埠。指定服務對外暴露的RESTful API連接埠號碼,用於接收推理請求。 |
|
| 就緒探針類型。設定Kubernetes的就緒探針(Readiness Probe)的檢查方式,用於判斷容器是否準備好接收流量。 |
|
| 探針類型選項。為上述探針類型提供具體參數。對於 |
|
| 探針其他選項。設定就緒探針的更多行為參數,可以多次使用。樣本設定了初始延遲和檢查周期。 |
|
| 資料卷掛載。將一個持久化資料卷(PVC)掛載到容器的指定路徑。格式為 |
|
| 容器鏡像。指定用於部署服務的容器鏡像的完整地址,是服務運行環境的核心。 |
|
| 啟動命令。指定容器啟動後要執行的命令。設定環境變數 |
|
常見問題
如何從Hugging Face倉庫拉模數型檔案?
容器運行環境可訪問Hugging Face倉庫。
通過Arena部署一個自訂類型的服務,並通過
--image參數指定用於部署服務的容器鏡像。更多參數說明,請參見部署命令參數說明。由於HuggingFace模型檔案將下載至容器內,請確保GPU節點具備至少30GB的可用磁碟空間。
arena serve custom \ --name=huggingface \ --version=v1 \ --gpus=1 \ --replicas=1 \ --restful-port=8000 \ --readiness-probe-action="tcpSocket" \ --readiness-probe-action-option="port: 8000" \ --readiness-probe-option="initialDelaySeconds: 30" \ --readiness-probe-option="periodSeconds: 30" \ --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/quick-deploy-llm:v1 \ "MODEL_ID=Qwen/Qwen1.5-4B-Chat MODEL_SOURCE=Huggingface python3 server.py"以下輸出表明與推理服務
huggingface-v1相關的Kubernetes資源已成功建立:service/huggingface-v1 created deployment.apps/huggingface-v1-custom-serving created INFO[0003] The Job huggingface has been submitted successfully INFO[0003] You can run `arena serve get huggingface --type custom-serving -n default` to check the job status
相關文檔
如需指定驅動版本,具體操作,請參見通過指定版本號碼自訂節點GPU驅動版本。
如需在生產環境使用vLLM、Triton等成熟的推理服務架構。詳細資料,請參見使用vLLM部署Qwen模型推理服務、使用Triton部署Qwen模型推理服務。