本文介绍如何基于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文件部署应用。
通过控制台部署
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在无状态页面,单击使用镜像创建。
在应用基本信息页签,设置应用名称,例如fastchat,添加下方注解,然后单击下一步。
在容器配置页签,依次设置基本配置、健康检查及生命周期,然后单击下一步。
配置类
配置项
示例值
截图
基本配置
镜像名称
yunqi-registry.cn-shanghai.cr.aliyuncs.com/lab/fastchat
镜像Tag
v1.1.0
健康检查
就绪检查
开启就绪检查、TCP连接,并配置Pod的7860端口
生命周期
命令
设置容器的启动命令为
["sh","-c","/root/webui.sh"]
在高级配置页签,单击服务(Service)右侧的创建。
在创建服务对话框,设置服务的相关参数,然后单击创建,以通过该服务公开FastChat应用。
配置项
示例值
截图
名称
fastchat-svc
类型
选择负载均衡、公网访问、新建SLB
服务端口
7860
容器端口
7860
在标签和注解区域,添加下表中的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
返回如下页面,表明应用创建成功。
通过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
步骤二:访问服务
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择
。在服务列表的外部端点列,查看并单击您创建的服务fastchat-svc的外部端点,例如
47.107.XX.XX:7860
。您可以开始访问和体验FastChat应用。
步骤三:释放资源
实践教程完成后,请务必注意及时删除资源,避免额外资损。
删除已创建的应用和服务
在容器服务管理控制台的集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 无状态,找到已创建的fastchat应用,在页面右侧操作列,选择更多 > 删除。
在确认面板中,选中移除关联的服务(Service)fastchat-svc,然后单击确定。
删除集群
ASK集群目前处于公测中,可免费试用。但是在使用ASK集群过程中用到的其他阿里云云产品资源,您需要按照各云产品规定的计费规则,为您使用的资源付费,费用由各云产品收取。完成教程后,请参考以下场景处理集群:
联系我们
如果您在ACK AIGC教程实践过程中有任何疑问或建议,欢迎您加入钉群(钉群号:31850017754)交流。