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

部署通義千問(wèn)應(yīng)用

更新時(shí)間:

本文以ModelScope社區(qū)的通義千問(wèn)-7B-Chat模型為例,演示如何使用DataCache。通過(guò)DataCache提前拉取通義千問(wèn)-7B-Chat模型數(shù)據(jù),然后在創(chuàng)建通義千問(wèn)的應(yīng)用Pod時(shí)直接掛載模型數(shù)據(jù),可以免去在Pod中拉取模型數(shù)據(jù)的等待時(shí)間,加速應(yīng)用部署。

背景信息

通義千問(wèn)-7B(Qwen-7B)是阿里云研發(fā)的通義千問(wèn)大模型系列的70億參數(shù)規(guī)模的模型。基于Transformer的大語(yǔ)言模型,在超大規(guī)模的預(yù)訓(xùn)練數(shù)據(jù)上進(jìn)行訓(xùn)練得到了Qwen-7B。本文使用的通義千問(wèn)-7B-Chat是在Qwen-7B的基礎(chǔ)上,使用對(duì)齊機(jī)制打造了基于大語(yǔ)言模型的AI助手。更多信息,請(qǐng)參見(jiàn)Qwen-7B-Chat

前提條件

  • 集群中已部署DataCache CRD。具體操作,請(qǐng)參見(jiàn)部署DataCache CRD

  • 集群所屬VPC已綁定公網(wǎng)NAT網(wǎng)關(guān),并配置SNAT條目允許該VPC或下屬交換機(jī)的資源可以訪(fǎng)問(wèn)公網(wǎng)。

    說(shuō)明

    如果VPC沒(méi)有綁定公網(wǎng)NAT網(wǎng)關(guān),您需要在創(chuàng)建DataCache和部署應(yīng)用時(shí)綁定EIP,以便可以拉取公網(wǎng)數(shù)據(jù)。

準(zhǔn)備運(yùn)行環(huán)境

  • 硬件要求

    需使用的GPU規(guī)格要求如下。ECI支持的GPU規(guī)格,請(qǐng)參見(jiàn)規(guī)格說(shuō)明

    • CPU:無(wú)嚴(yán)格限制

    • 內(nèi)存:>16 GiB

    • GPU:≥1

    • 顯存:>16 GB(顯存過(guò)低可能會(huì)出現(xiàn)OOM)

  • 軟件環(huán)境

    通義千問(wèn)-7B-Chat依賴(lài)的庫(kù)和配置較多,ECI已經(jīng)制作好了一個(gè)公共容器鏡像,包含了一個(gè)基于Gradio的WebUI,您可以直接使用該鏡像或者將其作為基礎(chǔ)鏡像進(jìn)行二次開(kāi)發(fā)。鏡像地址為registry.cn-hangzhou.aliyuncs.com/eci_open/qwen-webui:1.0.0,大小約為15 GB。

操作步驟

創(chuàng)建DataCache

  1. 訪(fǎng)問(wèn)ModelScope,獲取模型ID。

    本示例使用通義千問(wèn)-7B-Chat模型的v1.1.4版本。在ModelScope找到目標(biāo)模型后,在模型詳情頁(yè)面頂部可以復(fù)制模型ID。

  2. 編寫(xiě)DataCache的YAML配置文件,然后使用該YAML文件創(chuàng)建DataCache拉取通義千問(wèn)-7B-Chat模型。

    kubectl create -f datacache-test.yaml

    datacache-test.yaml的內(nèi)容示例如下:

    apiVersion: eci.aliyun.com/v1alpha1
    kind: DataCache
    metadata:
      name: qwen
    spec:
      bucket: test  
      path: /model/qwen/ 
      dataSource:
        type: URL 
        options:
          repoSource: ModelScope/Model              # 指定數(shù)據(jù)源為ModelScope的模型
          repoId: qwen/Qwen-7B-Chat                 # 指定模型ID
          revision: v1.1.4                          # 指定模型版本
      retentionDays: 1
      netConfig: 
        securityGroupId: sg-2ze63v3jtm8e6s******
        vSwitchId: vsw-2ze94pjtfuj9vay******       # 指定已配置SNAT的交換機(jī)
  3. 查詢(xún)DataCache狀態(tài)。

    kubectl get edc

    當(dāng)數(shù)據(jù)下載完成,DataCache的狀態(tài)為Available時(shí),表示可以使用DataCache。示例如下:

    通義千問(wèn)1.png

部署通義千問(wèn)應(yīng)用

  1. 編寫(xiě)應(yīng)用的YAML配置文件,然后使用該YAML文件部署通義千問(wèn)應(yīng)用。

    kubectl create -f qwen.yaml

    qwen.yaml的內(nèi)容示例如下,可以創(chuàng)建一個(gè)包含1個(gè)Pod副本的Deployment,Pod使用GPU規(guī)格,并掛載了通義千問(wèn)模型。Pod內(nèi)容器使用包含通義千問(wèn)WebUI應(yīng)用的鏡像,容器啟動(dòng)后會(huì)運(yùn)行python Qwen-7B/web_demo.py --server_port 8888啟動(dòng)WebUI。

    說(shuō)明

    以下YAML示例中,系統(tǒng)會(huì)自動(dòng)創(chuàng)建并為Pod綁定一個(gè)EIP。如果您的集群所屬VPC已綁定公網(wǎng)NAT網(wǎng)關(guān),可去掉該Annotation,在Pod創(chuàng)建成功后,您可以配置DNAT條目實(shí)現(xiàn)外部訪(fǎng)問(wèn)Pod。實(shí)際業(yè)務(wù)場(chǎng)景中,建議創(chuàng)建Service來(lái)統(tǒng)一提供Pod訪(fǎng)問(wèn)入口。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: qwen-web
      labels:
        app: qwen
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: qwen
      template:
        metadata:
          name: qwen
          labels:
            app: qwen
            alibabacloud.com/eci: "true" 
          annotations:
            k8s.aliyun.com/eci-use-specs: "ecs.gn7i-c8g1.2xlarge"    # 指定GPU規(guī)格
            k8s.aliyun.com/eci-data-cache-bucket: "test"             # 指定DataCache Bucket
            k8s.aliyun.com/eci-data-cache-provisionedIops: "35000"   # 設(shè)置ESSD AutoPL云盤(pán)預(yù)配置的讀寫(xiě)IOPS
            k8s.aliyun.com/eci-data-cache-burstingEnabled: "true"    # 設(shè)置ESSD AutoPL云盤(pán)開(kāi)啟Brust,加速應(yīng)用啟動(dòng)
            k8s.aliyun.com/eci-with-eip: "true"                      # 自動(dòng)創(chuàng)建并綁定EIP,以便外部可以訪(fǎng)問(wèn)
        spec:
          containers:
          - name: qwen
            image: registry.cn-hangzhou.aliyuncs.com/eci_open/qwen-webui:1.0.0  # 使用制作好的通義千問(wèn)鏡像
            resources:
                limits:
                  nvidia.com/gpu: "1"           # 設(shè)置容器所需的GPU數(shù)
            command: ["/bin/sh"]
            args: ["-c","python Qwen-7B/web_demo.py --server_port 8888"]    # 啟動(dòng)WebUI
            volumeMounts:
            - name: "model-qwen"
              mountPath: "/data/model/"         # 模型數(shù)據(jù)在容器內(nèi)的掛載路徑
          volumes: 
          - name: "model-qwen"
            hostPath:             
              path: "/model/qwen/"    # 掛載模型數(shù)據(jù)
  2. 確認(rèn)應(yīng)用部署狀態(tài)。

    kubectl get deployment qwen-web
    kubectl get Pod

    示例如下,可以看到通義千問(wèn)應(yīng)用已經(jīng)部署成功。

    通義千問(wèn)2.png

  3. 確認(rèn)模型數(shù)據(jù)的掛載情況。

    kubectl exec -it <POD_NAME> -- bash
    ls /data/model

    示例如下,可以看到容器的/data/model目錄下已掛載模型數(shù)據(jù)。

    通義千問(wèn)3.png

  4. 查看Pod綁定的EIP地址。

    kubectl describe pod <pod_name>

    在返回的Pod詳情的Annotations中可以獲取Pod綁定的EIP地址。

    通義千問(wèn)4.png

測(cè)試模型效果

  1. 在Pod所屬安全組中添加入方向規(guī)則,開(kāi)放8888端口。

  2. 打開(kāi)瀏覽器,訪(fǎng)問(wèn)通義千問(wèn)的Web頁(yè)面。

    本文示例的通義千問(wèn)應(yīng)用已單獨(dú)綁定了EIP,可以直接輸入Pod的EIP地址和容器開(kāi)放的端口進(jìn)行訪(fǎng)問(wèn),例如39.106.XX.XX:8888

  3. 輸入文本,測(cè)試通義千問(wèn)-7B-Chat的模型效果。

    示例如下:

    通義千問(wèn)5.png