全部產品
Search
文件中心

Container Service for Kubernetes:在ACK中快速體驗大語言模型推理服務

更新時間:Oct 24, 2025

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分鐘。

  1. 安裝Arena用戶端

  2. 通過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
  3. 查看推理服務的詳細資料。

    模型下載需要約10分鐘,期間Pod狀態顯示為ContainerCreating。
    arena serve get modelscope

    輸出Pod為Running狀態,表明modelscope推理服務已就緒並正常運行。

生產環境部署

對於生產級部署情境,推薦採用OSS靜態儲存卷預先載入模型的方式,避免每次Pod啟動時重複下載大模型檔案(超過10GB),從而顯著縮短冷啟動時間、降低外網頻寬消耗,並提升服務穩定性。

步驟一:下載模型檔案

  1. 下載模型檔案到本地。

    1. 安裝Git、Git LFS(Large File Support)外掛程式。

      macOS
      1. 安裝Git。

        官方維護的 macOS Git 安裝程式可以在 Git 官方網站下載。
        brew install git
      2. 安裝Git LFS(Large File Support)外掛程式拉取大檔案內容。

        brew install git-lfs
      Windows
      1. 安裝Git。

        可在Git 官方網站下載合適版本並安裝。

      2. 安裝Git LFS(Large File Support)外掛程式拉取大檔案內容。

        目前lfs已經整合在了Git for Windows 中,直接下載和使用最新版本的Windows Git即可。

      Linux
      1. 安裝Git。

        以RedHat系列的Linux系統為例,其餘系統安裝,請參見Git 官方網站

        yum install git
      2. 安裝Git LFS(Large File Support)外掛程式拉取大檔案內容。

        yum install git-lfs
    2. 下載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
  2. 將Qwen1.5-4B-Chat模型檔案上傳至OSS。

    1. 安裝並配置ossutil,用於管理OSS資源。

    2. 建立Bucket儲存空間。

      為加快模型拉取速度,建議將Bucket和叢集地區保持一致。
      ossutil mb oss://<Your-Bucket-Name>
    3. 在OSS建立名為Qwen1.5-4B-Chat的目錄。

      ossutil mkdir oss://<Your-Bucket-Name>/Qwen1.5-4B-Chat
    4. 上傳模型檔案至OSS。

      ossutil cp -r ./Qwen1.5-4B-Chat oss://<Your-Bucket-Name>/Qwen1.5-4B-Chat
  3. 配置儲存卷PV。

    1. 登入Container Service管理主控台單擊目的地組群名稱,選擇儲存 > 儲存卷

    2. 儲存卷頁面,單擊建立建立儲存卷對話方塊中配置參數。參數配置完成後,單擊建立

      • 儲存卷類型OSS名稱llm-model總量20Gi訪問模式ReadOnlyMany訪問認證為選擇建立保密字典。

      • 選擇性參數-o umask=022 -o max_stat_cache_size=0 -o allow_otherBucket ID選擇BucketOSS Path/Qwen1.5-4B-Chat訪問網域名稱為公網網域名稱。

  4. 配置儲存聲明PVC。

    1. 在叢集詳情頁,選擇儲存 > 儲存聲明

    2. 建立儲存聲明頁面中,填寫介面參數。

      儲存宣告類型OSS名稱llm-model分配模式為已有儲存卷;已有儲存卷為上一步建立的儲存卷llm-model總量20Gi

步驟二:部署推理服務

  1. 安裝Arena用戶端

  2. 通過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
  3. 查看推理服務詳細資料。

    arena serve get modelscope

    輸出Pod為Running狀態,表明推理服務已就緒並正常運行。

驗證推理服務

  1. 為推理服務建立連接埠轉寄。

    重要

    請注意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
  2. 建立一個終端視窗,向推理服務發送模型推理請求。

    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

部署命令參數說明

參數

說明

樣本值

serve custom

Arena子命令。表示建立一個自訂的模型服務,而不是使用預設的類型(如 tfservingtriton)。

(無)

--name

服務名稱。為要部署的服務指定一個唯一的名稱。名稱將用於後續的管理操作,如查看日誌、刪除服務等。

modelscope

--version

服務版本。為服務指定一個版本號碼,方便進行版本管理和灰階發布等操作。

v1

--gpus

GPU資源。為每個服務執行個體(Pod)分配的GPU卡數量。如果模型需要GPU進行推理,則必須指定此參數。

1

--replicas

副本數量。指定服務的執行個體(Pod)數量。增加副本數可以提高服務的並發處理能力和可用性。

1

--restful-port

RESTful連接埠。指定服務對外暴露的RESTful API連接埠號碼,用於接收推理請求。

8000

--readiness-probe-action

就緒探針類型。設定Kubernetes的就緒探針(Readiness Probe)的檢查方式,用於判斷容器是否準備好接收流量。

tcpSocket

--readiness-probe-action-option

探針類型選項。為上述探針類型提供具體參數。對於tcpSocket,指定要檢查的連接埠。

port: 8000

--readiness-probe-option

探針其他選項。設定就緒探針的更多行為參數,可以多次使用。樣本設定了初始延遲和檢查周期。

initialDelaySeconds: 30
periodSeconds: 30

--data

資料卷掛載。將一個持久化資料卷(PVC)掛載到容器的指定路徑。格式為 PVC名稱:掛載路徑。常用於掛載模型檔案。

llm-model:/Qwen1.5-4B-Chat

--image

容器鏡像。指定用於部署服務的容器鏡像的完整地址,是服務運行環境的核心。

kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/quick-deploy-llm:v1

[COMMAND]

啟動命令。指定容器啟動後要執行的命令。設定環境變數 MODEL_ID 並啟動了 server.py 指令碼。

"MODEL_ID=/Qwen1.5-4B-Chat python3 server.py"

常見問題

如何從Hugging Face倉庫拉模數型檔案?

  1. 容器運行環境可訪問Hugging Face倉庫。

  2. 通過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 

相關文檔