日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在ACK中快速體驗大語言模型

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

部署模型時,您可以根據自身需求選擇模型來源以及部署模型的平臺。本文以Qwen1.5-4B-Chat模型、GPU類型為T4卡為例,演示如何在ACK中快速部署ModelScope模型、HuggingFace模型及本地模型。

警告

本教程使用FastAPI和Uvicorn框架部署模型,僅適用于快速體驗模型功能,不建議在生產環境中使用。如需在生產環境部署LLM模型,建議使用vLLM、Triton等成熟的推理服務框架。詳細信息,請參見使用vLLM部署Qwen模型推理服務使用Triton部署Qwen模型推理服務

模型介紹

ModelScope

ModelScope匯集了行業領先的預訓練模型,可以減少開發者的重復研發成本,提供綠色環保、開源開放的AI開發環境和模型服務。ModelScope平臺以開源的方式提供了諸多優質模型,您可以在ModelScope免費體驗與下載使用。更多信息,請參見ModelScope概覽介紹

HuggingFace

HuggingFace擁有超過350,000個模型、75,000個數據集以及150,000個演示應用程序的平臺,所有模型、數據集及應用程序均開源,您可以在HuggingFace上共同構建機器學習項目。更多信息,請參見HuggingFace文檔

前提條件

  • 已創建包含GPU節點的ACK集群Pro版,且集群版本為1.22及以上,GPU節點顯存需為16GB及以上。具體操作,請參見創建ACK托管集群

    建議GPU節點使用525版本驅動,您可以通過為GPU節點池添加標簽ack.aliyun.com/nvidia-driver-version:525.105.17指定驅動版本為525.105.17。具體操作,請參見通過指定版本號自定義節點GPU驅動版本

  • 已安裝最新版Arena客戶端。具體操作,請參見配置Arena客戶端

部署ModelScope模型

步驟一:部署推理服務

  1. 執行以下命令,通過Arena部署一個自定義類型的服務。該服務名稱為modelscope,版本號為v1。

    應用啟動后程序會自動從ModelScope下載名為qwen/Qwen1.5-4B-Chat的模型。如需修改為其他模型可以修改啟動參數里的MODEL_ID字段,可以通過環境變量DASHSCOPE_API_KEY配置ModelScope SDK Token信息。

    重要

    ModelScope模型將會下載到容器內,因此GPU節點磁盤空間至少需要預留30 GB。

    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"

    參數說明如下所示:

    參數

    說明

    --name

    指定推理服務名稱。

    --version

    指定推理服務版本。

    --gpus

    指定單個推理服務副本需要使用的GPU卡數。

    --replicas

    指定推理服務副本數。

    --restful-port

    指定推理服務對外暴露的端口。

    --readiness-probe-action

    指定就緒探針連接類型,支持HttpGet、Exec、gRPC、TCPSocket。

    --readiness-probe-action-option

    指定就緒探針連接方式。

    --readiness-probe-option

    指定就緒探針配置。

    --image

    指定推理服務的鏡像地址。

    預期輸出:

    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

    輸出結果表明一系列與部署名為modelscope-v1的模型服務相關的Kubernetes資源創建操作已成功執行。

  2. 執行以下命令,查看推理服務的詳細信息。

    模型下載需要耗費一定時間,因此部署服務后需要等待大約10分鐘才能查看推理服務的詳細信息。

    arena serve get modelscope

    預期輸出:

    Name:       modelscope
    Namespace:  default
    Type:       Custom
    Version:    v1
    Desired:    1
    Available:  1
    Age:        10m
    Address:    172.16.XX.XX
    Port:       RESTFUL:8000
    GPU:        1
    
    Instances:
      NAME                                           STATUS   AGE  READY  RESTARTS  GPU  NODE
      ----                                           ------   ---  -----  --------  ---  ----
      modelscope-v1-custom-serving-5bb85d6555-2p6z9  Running  10m  1/1    0         1    cn-beijing.192.168.XX.XX

    輸出結果表明modelscope推理服務已被成功部署并處于健康運行狀態,已經準備就緒可以接受請求,且模型及服務環境已成功配置在具有GPU資源的節點上。

步驟二:驗證推理服務

  1. 執行以下命令,在推理服務與本地環境之間建立端口轉發。

    重要

    請注意kubectl port-forward建立的端口轉發不具備生產級別的可靠性、安全性和擴展性,因此僅適用于開發和調試目的,不適合在生產環境使用。更多關于Kubernetes集群內生產可用的網絡方案的信息,請參見Ingress概述

    kubectl port-forward svc/modelscope-v1 8000:8000

    預期輸出:

    Forwarding from 127.0.0.1:8088 -> 8000
    Forwarding from [::1]:8088 -> 8000
  2. 執行以下命令,向modelscope模型推理服務發送一條模型推理請求。

    curl -XPOST http://localhost:8000/generate -H "Content-Type: application/json"  -d '{"text_input": "什么是人工智能?人工智能是", "parameters": {"stream": false, "temperature": 0.9, "seed": 10}}'

    預期輸出:

    {"model_name":"/root/.cache/modelscope/hub/qwen/Qwen1___5-4B-Chat","text_output":"什么是人工智能?人工智能是研究如何使計算機和機器模仿人類的智能行為來實現自主思考"}

    輸出結果表明模型可以根據提問自動生成關于人工智能的定義。

(可選)步驟三:清理推理服務

如果不再使用已創建的資源,請執行以下命令,刪除已部署的模型推理服務。

arena serve del modelscope

部署HuggingFace模型

步驟一:部署推理服務

  1. 確認容器可以訪問到HuggingFace倉庫。

  2. 執行以下命令,通過Arena部署一個自定義類型的服務,該服務名稱為huggingface,版本號為v1。

    本文通過設定MODEL_SOURCE環境變量指定模型倉庫為HuggingFace,應用啟動后會自動從HuggingFace下載名為qwen/Qwen1.5-4B-Chat的模型,如需修改為其他HuggingFace模型,請修改啟動參數里的MODEL_ID字段。也支持通過環境變量HUGGINGFACE_TOKEN配置HugginFace Token信息。

    重要

    HuggingFace模型將會下載到容器內,因此GPU節點磁盤空間至少需要預留30 GB。

    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"

    參數說明如下所示:

    參數

    說明

    --name

    指定推理服務名稱。

    --version

    指定推理服務版本。

    --gpus

    指定單個推理服務副本需要使用的GPU卡數。

    --replicas

    指定推理服務副本數。

    --restful-port

    指定推理服務對外暴露的端口。

    --readiness-probe-action

    指定就緒探針連接類型,支持HttpGet、Exec、gRPC、TCPSocket。

    --readiness-probe-action-option

    指定就緒探針連接方式。

    --readiness-probe-option

    指定就緒探針配置。

    --image

    指定推理服務的鏡像地址。

    預期輸出:

    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 

    輸出結果表明推理服務已成功部署。

  3. 執行以下命令,查看推理服務的詳細信息。

    模型下載需要耗費一定時間,因此部署服務后需要等待大約10分鐘才能查看推理服務的詳細信息。

    arena serve get huggingface

    預期輸出:

    Name:       huggingface
    Namespace:  default
    Type:       Custom
    Version:    v1
    Desired:    1
    Available:  0
    Age:        1h
    Address:    172.16.XX.XX
    Port:       RESTFUL:8000
    GPU:        1
    
    Instances:
      NAME                                           STATUS   AGE  READY  RESTARTS  GPU  NODE
      ----                                           ------   ---  -----  --------  ---  ----
      huggingface-v1-custom-serving-dcf6cf6c8-2lqzr  Running  1h   1/1    0         1    cn-beijing.192.168.XX.XX

    輸出結果表明該推理服務的一個Pod(huggingface-v1-custom-serving-dcf6cf6c8-2lqzr)正在穩定運行,且已準備好提供服務。

步驟二:驗證推理服務

  1. 執行以下命令,在推理服務與本地環境之間建立端口轉發。

    重要

    請注意kubectl port-forward建立的端口轉發不具備生產級別的可靠性、安全性和擴展性,因此僅適用于開發和調試目的,不適合在生產環境使用。更多關于Kubernetes集群內生產可用的網絡方案的信息,請參見Ingress概述

    kubectl port-forward svc/huggingface-v1 8000:8000

    預期輸出:

    Forwarding from 127.0.0.1:8088 -> 8000
    Forwarding from [::1]:8088 -> 8000
  2. 執行以下命令,向HuggingFace模型推理服務發送一條模型推理請求。

    curl -XPOST http://localhost:8000/generate -H "Content-Type: application/json"  -d '{"text_input": "什么是人工智能?人工智能是", "parameters": {"stream": false, "temperature": 0.9, "seed": 10}}'

    預期輸出:

    {"model_name":"Qwen/Qwen1.5-4B-Chat","text_output":"什么是人工智能?人工智能是計算機科學的一個分支,它試圖創建一種能夠模擬人類智能的機器"}

    輸出結果表明模型可以根據提問自動生成關于人工智能的定義。

(可選)步驟三:清理推理服務

如果不再使用已創建的資源,請執行以下命令,刪除已部署的模型推理服務。

arena serve del huggingface

部署本地模型

步驟一:下載模型文件

本文以Qwen1.5-4B-Chat模型為例,演示如何下載模型、上傳模型至OSS,以及在ACK集群中創建對應的存儲卷PV和存儲卷聲明PVC。

  1. 下載模型文件。

    1. 執行以下命令,安裝Git。

      # 可執行yum install git或apt install git安裝。
      yum install git
    2. 執行以下命令,安裝Git LFS(Large File Support)插件。

      # 可執行yum install git-lfs或apt install git-lfs安裝。
      yum install git-lfs
    3. 執行以下命令,將ModelScope上的Qwen1.5-4B-Chat倉庫克隆到本地。

      GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/qwen/Qwen1.5-4B-Chat.git
    4. 執行以下命令,進入Qwen1.5-4B-Chat目錄,下載LFS管理的大文件。

      cd Qwen1.5-4B-Chat
      git lfs pull
  2. 將下載的Qwen1.5-4B-Chat文件上傳至OSS。

    1. 登錄OSS控制臺,查看并記錄已創建的Bucket名稱。

      如何創建Bucket,請參見創建存儲空間

    2. 安裝和配置ossutil,用于管理OSS資源。具體操作,請參見安裝ossutil

    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和存儲聲明PVC。具體操作,請參見使用OSS靜態存儲卷

    • 以下為示例PV的配置信息:

      配置項

      說明

      存儲卷類型

      OSS

      名稱

      llm-model

      訪問證書

      配置用于訪問OSS的AccessKey ID和AccessKey Secret。

      Bucket ID

      選擇已創建的OSS Bucket。

      OSS Path

      選擇模型所在的路徑,如/models/Qwen1.5-4B-Chat。

    • 以下為示例PVC的配置信息:

      配置項

      說明

      存儲聲明類型

      OSS

      名稱

      llm-model

      分配模式

      選擇已有存儲卷

      已有存儲卷

      單擊選擇已有存儲卷鏈接,選擇已創建的存儲卷PV。

步驟二:部署推理服務

  1. 執行以下命令,通過Arena部署一個自定義類型的服務,該服務名稱為local-model。

    其中,--data參數將已創建的PVCllm-model掛載到了容器中的/model/Qwen1.5-4B-Chat目錄下。應用啟動后會從本地目錄/model/Qwen1.5-4B-Chat加載模型,如需修改為其他本地模型可以修改啟動參數里的MODEL_ID字段。

    arena serve custom \
        --name=local-model \
        --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:/model/Qwen1.5-4B-Chat \
        --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/quick-deploy-llm:v1 \
        "MODEL_ID=/model/Qwen1.5-4B-Chat python3 server.py"

    參數說明如下所示:

    參數

    說明

    --name

    指定推理服務名稱。

    --version

    指定推理服務版本。

    --gpus

    指定單個推理服務副本需要使用的GPU卡數。

    --replicas

    指定推理服務副本數。

    --restful-port

    指定推理服務對外暴露的端口。

    --readiness-probe-action

    指定就緒探針連接類型,支持HttpGet、Exec、gRPC、TCPSocket。

    --readiness-probe-action-option

    指定就緒探針連接方式。

    --readiness-probe-option

    指定就緒探針配置。

    --data

    掛載共享存儲卷PVC到運行環境中。它由兩部分組成,通過英文冒號(:)分割。冒號左側是您已經準備好的PVC名稱。您可以通過命令arena data list查看當前集群可用的PVC列表;冒號右側是您想將PVC掛載到運行環境中的路徑,也是您訓練代碼要讀取數據或模型的本地路徑。這樣通過掛載的方式,您的代碼就可以訪問PVC中的數據或模型。

    --image

    指定推理服務的鏡像地址。

    預期輸出:

    service/local-model-v1 created
    deployment.apps/local-model-v1-custom-serving created
    INFO[0001] The Job local-model has been submitted successfully
    INFO[0001] You can run `arena serve get local-model --type custom-serving -n default` to check the job status

    輸出結果表明推理服務已成功部署。

  2. 執行以下命令,查看推理服務詳細信息。

    模型下載需要耗費一定時間,因此部署服務后需要等待大約10分鐘才能查看推理服務的詳細信息。

    arena serve get local-model

    預期輸出:

    Name:       local-model
    Namespace:  default
    Type:       Custom
    Version:    v1
    Desired:    1
    Available:  1
    Age:        1m
    Address:    172.16.XX.XX
    Port:       RESTFUL:8000
    GPU:        1
    
    Instances:
      NAME                                            STATUS   AGE  READY  RESTARTS  GPU  NODE
      ----                                            ------   ---  -----  --------  ---  ----
      local-model-v1-custom-serving-8458fb6cf6-6mvzp  Running  1m   1/1    0         1    cn-beijing.192.168.XX.XX

    輸出結果表明該推理服務的一個Pod(local-model-v1-custom-serving-8458fb6cf6-6mvzp )正在穩定運行,且已準備好提供服務。

步驟三:驗證推理服務

  1. 執行以下命令,建立推理服務與本地環境之間的端口轉發。

    重要

    請注意kubectl port-forward建立的端口轉發不具備生產級別的可靠性、安全性和擴展性,因此僅適用于開發和調試目的,不適合在生產環境使用。更多關于Kubernetes集群內生產可用的網絡方案的信息,請參見Ingress概述

    kubectl port-forward svc/local-model-v1 8000:8000

    預期輸出:

    Forwarding from 127.0.0.1:8088 -> 8000
    Forwarding from [::1]:8088 -> 8000
  2. 執行以下命令,向local-model模型推理服務發送一條模型推理請求。

    curl -XPOST http://localhost:8000/generate -H "Content-Type: application/json"  -d '{"text_input": "什么是人工智能?人工智能是", "parameters": {"stream": false, "temperature": 0.9, "seed": 10}}'

    預期輸出:

    {"model_name":"/model/Qwen1.5-4B-Chat","text_output":"什么是人工智能?人工智能是計算機科學的一個分支,它研究如何使計算機具有智能行為。"}

    輸出結果表明模型可以根據提問自動生成關于人工智能的定義。

(可選)步驟四:清理環境

如果不再使用已創建的資源,請及時清理。

  • 執行以下命令,清理已部署的模型推理服務。

    arena serve del local-model
  • 執行以下命令,清理已創建的PV和PVC。

    kubectl delete pvc llm-model
    kubectl delete pv llm-model