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

使用ACS GPU算力構建LLM推理服務

容器計算服務 ACS(Container Compute Service)提供了高效、靈活的容器管理和編排能力,為大規模模型的部署與推理提供了強有力的支持。本文介紹如何在ACS上高效利用大模型推理鏡像,實現模型服務的快速部署與規模化應用。

準備工作

  1. 獲取llm-inference大模型推理容器鏡像信息,以便您在ACS實例上配置工作負載時使用。

    1. 登錄容器鏡像服務控制臺

    2. 在左側導航欄,單擊制品中心

    3. 倉庫名稱搜索框,搜索llm-inference選擇目標鏡像egslingjun/llm-inference

      egslingjun/llm-inference容器鏡像支持vLLM大語言模型推理庫及DeepGPU-LLM大語言模型推理引擎,可以幫助您快速構建大語言模型(例如Llama模型、ChatGLM模型、百川Baichuan模型或通義千問Qwen模型)的推理環境。該鏡像大概每1個月內更新一次。鏡像詳情如下所示:

      鏡像名稱

      鏡像Tag

      組件信息

      鏡像地址

      llm-inference

      vllm0.4.2-deepgpu-llm24.5-pytorch2.3.0-cuda12.1-ubuntu22.04

      • 基礎鏡像Ubuntu 22.04

      • Python 3.10

      • Torch 2.3.0

      • CUDA 12.1

      • vLLM 0.4.2

      • deepgpu-llm 24.5+pt2.3cu121

      egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/llm-inference:vllm0.4.2-deepgpu-llm24.5-pytorch2.3.0-cuda12.1-ubuntu22.04

      vllm0.4.3-deepgpu-llm24.6-pytorch2.4.0-cuda12.4-ubuntu22.04

      • 基礎鏡像Ubuntu 22.04

      • Python 3.10

      • Torch 2.4.0

      • CUDA 12.4.1

      • vLLM 0.4.3

      • deepgpu-llm 24.6+pt2.4cu124

      egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/llm-inference:vllm0.4.3-deepgpu-llm24.6-pytorch2.4.0-cuda12.4-ubuntu22.04

      vllm0.5.4-deepgpu-llm24.7-pytorch2.4.0-cuda12.4-ubuntu22.04

      • 基礎鏡像Ubuntu 22.04

      • Python 3.10

      • Torch 2.4.0

      • CUDA 12.4.1

      • vLLM 0.5.4

      • deepgpu-llm 24.7.2+pt2.4cu124

      egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/llm-inference:vllm0.5.4-deepgpu-llm24.7-pytorch2.4.0-cuda12.4-ubuntu22.04

      vllm0.6.3-post1-deepgpu-llm24.9-pytorch2.4.0-cuda12.4-ubuntu22.04

      • 基礎鏡像Ubuntu 22.04

      • Python 3.10

      • Torch 2.4.0

      • CUDA 12.4.1

      • vLLM 0.6.3.post1

      • deepgpu-llm 24.9+pt2.4cu124

      egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/llm-inference:vllm0.6.3-post1-deepgpu-llm24.9-pytorch2.4.0-cuda12.4-ubuntu22.04

  2. 準備NAS文件系統。大語言模型因其龐大的參數量,需要占用大量的磁盤空間來存儲模型文件,建議您創建NAS存儲卷來持久化存儲模型文件。具體操作,請參見靜態掛載NAS存儲卷動態掛載NAS存儲卷。本文示例采用靜態掛載NAS存儲卷的方式實現,推薦存儲空間為20G。

  3. 將NAS文件系統掛載到ECS實例上。具體操作,請參見一鍵掛載NFS協議文件系統

    執行以下命令,將模型下載到NAS文件系統中。

    cd /mnt
    pip install modelscope
    modelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir ./Qwen2.5-7B-Instruct
    說明
    • 本文使用的Qwen2.5-7B模型大小約為15G,100Mbps帶寬下載約需要20分鐘左右,您可以根據實際情況調整為Qwen2.5-3B或Qwen2.5-0.5B等更輕量的模型。

    • 由于modelscope正常運行需要Python版本≥3.10,因此推薦使用Ubuntu 22.04作為ECS實例鏡像,其默認Python版本為3.10。您也可以使用其他公共或自定義鏡像,確保Python版本≥3.10即可。

部署大模型推理服務

  1. 根據以下內容創建PVC。具體操作,請參見創建PVC

    參數

    示例

    名稱

    nas-test。

    分配模式

    選擇使用掛載點域名創建

    總量

    20Gi。

    掛載點域名

    08cxxxxxxec-wxxxxxxcn-hangzhou.nas.aliyuncs.com

  2. 使用kubectl連接到ACS集群。具體操作,請參見獲取集群KubeConfig并通過kubectl工具連接集群

  3. 使用以下內容,創建your-deployment.yaml。

    說明

    關于以下示例中使用的GPU卡具體型號,請參見GPU型號及驅動版本

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: my-deployment
      name: my-deployment
      namespace: default
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: my-deployment
      template:
        metadata:
          labels:
            # 指定GPU型號為example-model,請按實際情況填寫,如T4
            alibabacloud.com/gpu-model-series: example-model
            # 指定compute-class為gpu類型
            alibabacloud.com/compute-class: gpu
            app: my-deployment
        spec:
          containers:
            - command:
              - sh
              - -c
              - python3 -m vllm.entrypoints.openai.api_server --model /mnt/Qwen2.5-7B-Instruct --trust-remote-code --tensor-parallel-size 1  --disable-custom-all-reduce
              image: egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/llm-inference:vllm0.5.4-deepgpu-llm24.7-pytorch2.4.0-cuda12.4-ubuntu22.04
              imagePullPolicy: IfNotPresent #Always
              name: my-deployment
              resources:
                limits:
                  cpu: 16
                  memory: 64Gi
                  nvidia.com/gpu: "1"
                requests:
                  cpu: 16
                  memory: 64Gi
                  nvidia.com/gpu: "1"
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
              volumeMounts:
                - mountPath: /mnt
                  name: nas-test
                - mountPath: /dev/shm
                  name: cache-volume
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          terminationGracePeriodSeconds: 30
          volumes:
            - name: nas-test
              persistentVolumeClaim:
                # PVC的聲明
                claimName: nas-test
            - name: cache-volume
              emptyDir:
                medium: Memory
                sizeLimit: 64G
    ---
    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "internet"
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: ipv4
      labels:
        app: my-deployment
      name: svc-llm
      namespace: default
    spec:
      externalTrafficPolicy: Local
      ports:
      - name: serving
        port: 8000
        protocol: TCP
        targetPort: 8000
      selector:
        app: my-deployment
      type: LoadBalancer
  4. 執行以下命令,部署大模型推理任務和對應的service。

    kubectl apply -f your-deployment.yaml
  5. 由于鏡像較大,您可以通過執行以下命令持續關注模型部署情況,大約需要20分鐘左右。

    kubectl logs -f my-deployment-787b8xxxxx-xxxxx

    當出現以下格式的輸出時,說明模型已經部署成功。

    INFO:     Started server process [2]
    INFO:     Waiting for application startup.
    INFO:     Application startup complete.
    INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
    INFO 12-13 12:39:11 metrics.py:406] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 0.0%, CPU KV cache usage: 0.0%.
    INFO 12-13 12:39:21 metrics.py:406] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 0.0%, CPU KV cache usage: 0.0%.
    INFO 12-13 12:39:31 metrics.py:406] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 0.0%, CPU KV cache usage: 0.0%.
    INFO 12-13 12:39:41 metrics.py:406] Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Swapped: 0 reqs, Pending: 0 reqs, GPU KV cache usage: 0.0%, CPU KV cache usage: 0.0%.
  6. 執行以下命令,查看部署的Service。

    kubectl get svc

    預期輸出:

    NAME         TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)    AGE
    kubernetes   ClusterIP      10.0.0.1       <none>           443/TCP    3h38m
    svc-llm      LoadBalancer   10.0.143.103   112.xxx.xxx.177  8000/TCP   58s

    其中EXTERNAL-IP為Service對外公開的IP。記錄此IP,方便后續進行測試。

測試大模型服務

執行以下命令,輸入Prompt等待輸出。

export EXTERNAL_IP=112.xxx.xxx.177
curl http://$EXTERNAL_IP:8000/v1/chat/completions \
     -H "Content-Type: application/json"    \
     -d '{    "model": "/mnt/Qwen2.5-7B-Instruct",      "messages": [   {"role": "system", "content": "你是個友善的AI助手。"},   {"role": "user", "content": "介紹一下深度學習。"}    ]}'

預期輸出:

{"id":"chat-edab465b4b5547bda7xxxxxxxxxxxxxxx","object":"chat.completion","created":1734094178,"model":"/mnt/Qwen2.5-7B-Instruct","choices":[{"index":0,"message":{"role":"assistant","content":"深度學習是一種人工智能研究方法,它基于人工神經網絡的原理,通過對大量數據進行處理和學習,使得計算機能夠模擬人的學習和決策過程。深度學習主要包括卷積神經網絡(CNN)、循環神經網絡(RNN)和長短期記憶網絡(LSTM)等。這些模型能夠識別和分類圖像,提取特征,進行自然語言處理,甚至語音識別等任務。深度學習的應用范圍非常廣泛,包括圖像識別、語音識別、自然語言處理、計算機視覺等領域。","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":24,"total_tokens":130,"completion_tokens":106}}%  

至此,使用ACS GPU算力構建LLM推理服務完成。

相關文檔