ACS算力快速搭建生成式会话应用

ACS算力快速搭建生成式会话应用

 

 

阿里云容器计算服务ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。

本教程所使用两个开源项目,分别是RWKV-RunnerChatGPT-Next-Web。RWKV-Runner是一个0.1b的大模型并提供RESTful API对外提供在线推理服务,ChatGPT-Next-Web是会话应用的WebUI。RWKV-Runner与ChatGPT-Next-Web形成前后端分离架构的生成式AI会话应用,通过容器镜像部署到ACS集群中。完成本教程后,您将创建生成式AI会话应用。

 

 

  • 容器计算服务ACS

    阿里云容器计算服务ACS (Alibaba Cloud Container Compute Service,ACS)是以K8s为使用界面供给容器算力资源的云计算服务,提供符合容器规范的算力资源。算力交付模式为Serverless形态,您无需关注底层节点及集群的运维管理。ACS支持按需弹性和资源预留的资源使用方式,以及秒级的按量付费模式。算力资源可同时支持您的容器应用负载和云产品的负载。

 
 

本实验1个小时预计产生费用14.15元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。

进入实操前,请确保阿里云账号满足以下条件:

  • 已通过实名认证并且账户余额大于100。

  • 云资源产生的费用需您自行承担,云起实验室不会向您征收额外费用。

  • 所有实验操作将保留至您的账号,请谨慎操作。

  • 实操结束后,您可以选择继续付费保留资源,或参考手册自动/手动释放资源。

 
 

 

 
   
   
   
   
 

 

 

 

 

 

 

 

 
 

 

 

 

 
 

创建集群页面,根据如下说明配置参数,未提及的参数保持默认即可,单击确认配置。

     

配置项

说明

示例

集群名称

填写集群的名称。

ACS-Demo

地域

选择集群所在的地域。

华北2(北京)

选择专有网络

设置集群的网络。ACS集群仅支持专有网络。支持自动创建和使用已有的VPC。

  • 自动创建:集群会自动新建一个VPC,并在VPC中自动创建NAT网关以及配置SNAT规则。

  • 使用已有:您可以在已有VPC列表中选择所需的VPC和交换机。如需访问公网,例如下载容器镜像,则需要配置NAT网关。建议将容器镜像上传到集群所在区域的阿里云镜像服务,并通过内网VPC地址拉取镜像。

详细信息,请参见创建和管理专有网络

选择自动创建。

API Server 访问配置

设置集群API Server是否可在公网访问,当您需要从公网远程管理集群时,需要配置弹性公网IP(EIP)。

选中使用EIP暴露API Server。

服务发现

设置是否开启集群服务发现能力。当你需要服务发现能力时,需选择开启CoreDNS。

选择CoreDNS。

 
 

 

 

 
   
   
   
 

 

 
 

 

 
   
   
   
 

使用ACS控制台部署RWKV-Runner

本步骤指导您如何在新创建的ACS集群中使用通用型实例快速部署一个无状态应用(Deployment)RWKV-Runner,并将该应用RESTful API在集群内公开。关于创建Deployment的详细参数描述,请参见创建无状态工作负载Deployment

  1. 登录容器计算服务控制台

  2. 集群页面,单击目标集群名称(即ACS-Demo)。

 
 

 

 
 

 

 

 

 
 

容器配置页面,配置容器的相关信息,单击下一步。

     

配置项

说明

示例值

镜像名称

直接输入不包含镜像Tag的镜像地址或单击选择镜像来选择所需的镜像。

registry.cn-beijing.aliyuncs.com/acs-demo-ns/rwkv-runner:1.0.0

CPU

根据需要为该应用指定所需的CPU核数。

1 Core

内存

根据需要为该应用指定所需的内存大小。

2 GiB

端口

设置容器的端口。

在端口右侧,单击新增,根据如下说明配置端口参数。

  • 名称:runner

  • 容器端口:8000

  • 协议:TCP

 
   
 

 

 
   
   
   
   
 

创建服务对话框,配置以下信息,单击确定,以通过该服务集群内发布rwkv-runner的RESTful API。

     

配置项

说明

示例值

名称

输入服务的名称。

rwkv-runner-svc

类型

选择服务类型,即服务访问的方式。

虚拟集群IP

端口映射

设置服务端口和容器端口。容器端口需要与后端的Pod中暴露的容器端口一致。

  • 名称:runner

  • 服务端口:80

  • 容器端口:8000

  • 协议:TCP

 
   
   
   
 

 

 
 

 

 
 

使用ACS集群证书部署并公开ChatGPT-Next-Web

本步骤指导您如何使用ACS集群证书在新创建的ACS集群中使用通用型实例快速部署一个无状态应用(Deployment)ChatGPT-Next-Web,并将该应用公网公开。关于创建Deployment的详细参数描述,请参见创建无状态工作负载Deployment

  1. 在左侧导航栏中,选择工作负载 > 无状态。

 
   
   
   
 

 

 
   
 

 

 
   
 

创建页面,示例模板选择自定义,复制如下代码并粘贴至模板区域中,单击创建。

 
 
apiVersion: v1
kind: Service
metadata:
  name: chat-frontend-svc
spec:
  ports:
    - name: chat
      port: 80
      protocol: TCP
      targetPort: 3000
  selector:
    app: chat-frontend
  type: LoadBalancer

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: chat-frontend
  name: chat-frontend
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: chat-frontend
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        alibabacloud.com/compute-class: general-purpose  # 通用型
        #alibabacloud.com/compute-class: performance 性能型
        app: chat-frontend
    spec:
      containers:
        - env:
            - name: BASE_URL
              value: 'http://rwkv-runner-svc'
          image: registry.cn-beijing.aliyuncs.com/acs-demo-ns/chatgpt-next-web:amd64
          imagePullPolicy: IfNotPresent
          name: chat-frontend
          ports:
            - containerPort: 3000
              protocol: TCP
          resources:
            requests:
              cpu: "1"
              memory: 2Gi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
 
 

 

 
 

 

 
 

 

 
   
   
 

使用ACS集群证书创建应用初始任务

本步骤指导您如何使用ACS集群证书在新创建的ACS集群中使用BestEffort 算力质量的实例快速创建一个任务(Job),用于RWKV-Runner应用大模型的初始化。关于创建Job的详细参数描述,请参见创建任务工作负载Job

  1. 在左侧导航栏中,选择工作负载 > 无状态。

 
 

 

 
   
 

创建页面,示例模板选择自定义,复制如下代码并粘贴至模板区域中,单击创建。

 
 
apiVersion: batch/v1
kind: Job
metadata:
  name: job-demo
spec:
  activeDeadlineSeconds: 600
  backoffLimit: 6
  completionMode: NonIndexed
  completions: 1
  parallelism: 1
  suspend: false
  template:
    metadata:
      labels:
        alibabacloud.com/compute-qos: best-effort # BestEffort型
        #alibabacloud.com/compute-qos: default  # 默认型
        app: job-demo
    spec:
      containers:
      - name: job
        image: registry.cn-beijing.aliyuncs.com/acs-demo-ns/rwkv-init-job:1.0.0
        imagePullPolicy: Always
        resources:
          requests:
            cpu: 500m
            memory: 1Gi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Never
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 

 

 
 

测试应用

本步骤指导您如何通过服务(Service)来访问新部署的容器化应用。

  1. 在左侧导航栏中,选择网络 > 服务。

    image

  2. 服务页面,找到新创建的服务(即chat-frontend-svc),复制External IP列的IP地址。

    image

  3. 在本地机器的浏览器中,访问External IP列的I

 
 

 

 
 

清理资源

使用ACS集群所产生的费用包括以下两部分:

  • 创建工作负载使用的算力,由容器计算服务ACS收取。

  • 使用的其他阿里云云产品资源费用,按照各云产品规定的计费规则计费,由各云产品收取。

完成实验后,请参考以下场景处理集群。

  • 在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。

    • 删除容器计算服务ACS集群。

      1. 登录容器计算服务控制台

      2. 集群页面,找到目标ACS集群,选择其右侧操作列下的更多 > 关闭集群删除保护状态

        image

      3. 在关闭集群删除保护状态对话框中,关闭集群删除保护的开关,单击确认。

        image

      4. 集群页面,找到目标ACS集群,选择其右侧操作列下的更多 > 删除。

        image

      5. 删除集群及关联资源面板,选择删除所有的集群关联资源,单击删除。

        image

      6. 确认删除集群对话框中,输入需要删除的集群名称,勾选我已知晓以上信息并确认删除,单击确认删除。

        image

    • 删除容器计算服务ACS集群后,单击结束实操。在结束实操对话框中,单击确定。

      image

  • 在完成实验后,如果需要继续使用资源,您可跳过删除容器计算服务ACS集群的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。在使用ACS集群过程中用到的其他阿里云云产品资源的相关计费说明,请参见云产品资源计费

  •  
 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
posted @ 2025-02-13 11:56  aiplus  阅读(60)  评论(0)    收藏  举报
悬浮按钮示例