本文介紹如何基於ACK Serverless叢集快速部署FastChat應用。本教程中,您可以通過控制台或kubectl兩種方式來部署應用,並在部署完成後通過外部端點訪問FastChat,開啟AIGC體驗。
前提條件
已建立ACK Serverless叢集並為叢集開啟公網訪問能力,且叢集所在地區為華北2(北京)、華東1(杭州)、華東2(上海)、華南1(深圳)。具體操作,請參見建立ASK叢集。
FastChat介紹
FastChat是一個智能易用的聊天機器人,支援大型語言模型的訓練、服務和評估。 FastChat基於先進的大語言模型(例如Vicuna、FastChat-T5)實現,擁有Web UI和OpenAI,相容RESTful API的分布式多模型服務系統。
阿里雲不對第三方模型“FastChat”的合法性、安全性、準確性進行任何保證,阿里雲不對由此引發的任何損害承擔責任。
您應自覺遵守第三方模型“FastChat”的使用者協議、使用規範和相關法律法規,並就使用第三方模型的合法性、合規性自行承擔相關責任。
步驟一:部署FastChat應用
您可以通過控制台部署FastChat應用,也可以通過kubectl串連Kubernetes叢集,然後建立YAML檔案部署應用。
控制台
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在無狀態頁面,單擊使用鏡像建立。
在應用基本資料頁面,設定應用程式名稱為fastchat,副本數量為1,然後單擊下一步。
在容器配置頁面,依次設定以下參數,然後單擊下一步。
以下為容器參數配置樣本,未提及的配置項請保持預設。
配置地區
配置項
樣本值
基本配置
鏡像名稱
yunqi-registry.cn-shanghai.cr.aliyuncs.com/lab/fastchat:v1.1.0
所需資源
CPU:8Core
記憶體:32GB
重要後續步驟會添加Pod註解指定ECI Pod所使用的ECS規格,此處配置實際不會生效。
健全狀態檢查
就緒檢查
選中就緒檢查,然後選擇TCP串連,並配置連接埠為7860。
生命週期
啟動執行
設定容器的啟動命令為
["sh","-c","/root/webui.sh"]。在進階配置頁面,單擊服務(Service)右側的建立,並完成服務參數的配置,以通過該服務公開FastChat應用。
以下為服務參數配置樣本,未提及的配置項請保持預設。
配置項
樣本值
名稱
fastchat-svc
服務類型
選擇負載平衡 (LoadBalancer)。
負載平衡類型:傳統型負載平衡 CLB
選擇資源:建立資源
連接埠映射
名稱:example-port
服務連接埠:7860
容器連接埠:7860
協議:TCP
在進階配置頁面,在標籤和註解地區,添加下表中的Pod注釋,然後單擊建立。
名稱
值
k8s.aliyun.com/eci-use-specs
ecs.gn6i-c8g1.2xlarge,ecs.gn5-c8g1.2xlarge,ecs.gn6v-c8g1.8xlarge,ecs.gn6i-c16g1.4xlarge
k8s.aliyun.com/eci-extra-ephemeral-storage
100Gi

返回無狀態頁面,單擊應用程式名稱進入應用詳情頁面,在容器組頁簽下,等待容器組的狀態變為Running,然後單擊訪問方式頁簽,在外部端點處擷取外部存取服務的IP地址。
kubectl
通過kubectl串連ACK Serverless叢集。具體操作,請參見通過kubectl串連Kubernetes叢集。
複製以下範例程式碼,建立FastChat應用的fastchat.yaml檔案。
apiVersion: apps/v1 kind: Deployment metadata: labels: app: fastchat name: fastchat namespace: default spec: replicas: 1 selector: matchLabels: app: fastchat template: metadata: labels: app: fastchat alibabacloud.com/eci: "true" annotations: k8s.aliyun.com/eci-use-specs: ecs.gn6i-c8g1.2xlarge,ecs.gn5-c8g1.2xlarge,ecs.gn6v-c8g1.8xlarge,ecs.gn6i-c16g1.4xlarge k8s.aliyun.com/eci-extra-ephemeral-storage: 100Gi spec: dnsPolicy: Default containers: - command: - sh - -c - "/root/webui.sh" image: yunqi-registry.cn-shanghai.cr.aliyuncs.com/lab/fastchat:v1.1.0 imagePullPolicy: IfNotPresent name: fastchat ports: - containerPort: 7860 protocol: TCP readinessProbe: failureThreshold: 3 initialDelaySeconds: 5 periodSeconds: 10 successThreshold: 1 tcpSocket: port: 7860 timeoutSeconds: 1 resources: requests: cpu: "8" memory: 16Gi limits: nvidia.com/gpu: 1 --- apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: internet service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: PayByCLCU name: fastchat-svc namespace: default spec: externalTrafficPolicy: Local ports: - port: 7860 protocol: TCP targetPort: 7860 selector: app: fastchat type: LoadBalancer執行以下命令,部署FastChat應用fastchat。
kubectl apply -f fastchat.yaml執行以下命令,確認應用狀態正常。
kubectl get deployment fastchat預期輸出:
NAME READY UP-TO-DATE AVAILABLE AGE fastchat 1/1 1 1 38m
步驟二:訪問服務
在瀏覽器中輸入擷取的服務外部IP地址(EXTERNAL-IP)並前往,即可開始訪問和體驗FastChat應用。

步驟三:釋放資源
實踐教程完成後,請務必注意及時刪除資源,避免額外資損。
刪除已建立的應用和服務
在Container Service管理主控台的叢集列表頁面,單擊目的地組群名稱。
在左側導覽列選擇工作負載 > 無狀態,然後選中已建立的fastchat應用,單擊大量刪除,並按介面提示完成後續確認操作。
刪除叢集
ACK Serverless叢集目前不收取叢集管理費用,但在使用ACK Serverless叢集過程中用到的其他阿里雲雲產品資源(如ECI),您需要按照各雲產品規定的計費規則,為您使用的資源付費,費用由各雲產品收取。完成教程後,請參考以下情境處理叢集:
如果不再繼續使用叢集,請在Container Service管理主控台的叢集列表頁面,找到目的地組群並單擊對應的,在彈出面板閱讀提示資訊,選中要同時刪除的相關雲產品資源,然後單擊刪除,並按頁面提示完成後續操作。更多資訊,請參見刪除叢集。
如果需要繼續使用叢集,請及時為阿里雲帳號儲值,確保餘額充足。如需瞭解使用ACK Serverless叢集Pro版過程中用到的其他阿里雲雲產品資源的計費資訊,請參見雲產品資源計費。
聯絡我們
如果您在ACK AIGC教程實踐過程中有任何疑問或建議,歡迎您加入釘群(釘群號:31850017754)交流。