使用ACK Serverless容器化部署大语言模型FastChat

发布于:2025-08-04 ⋅ 阅读:(14) ⋅ 点赞:(0)

核心概念

  • 阿里云ACK Serverless:是一种基于 Kubernetes 的无服务器容器服务。用户无需管理底层节点和服务器,即可快速部署容器化应用,并根据实际使用的 CPU 和内存资源按需付费,只专注于应用本身而非基础设施管理。

  • FastChat(聊天机器人):https://github.com/lm-sys/FastChat

  • 使用到的技术:容器服务ACK Serveless Pro 集群、弹性容器实例(Elastic Container Instance, ECI)、NAT网关、负载均衡CLB。

一、创建ACK Serveless Pro版集群

1、登录容器服务管理控制台,在集群列表页面单击创建集群。

2、在创建集群页面的集群配置中,单击ACK Serverless 集群,根据如下参数说明完成相关配置,其他配置项保持默认值,然后单击下一步:组件配置。

配置必要参数说明
参数 说明 举例
集群名称 填写集群的名称。 fastchat-demo
集群规格 选择集群规格,支持 Pro 版和标准版。 Pro版
地域 选择集群所在的地域。建议选择华北2(北京)地域。

 华北2(北京)

API Server 访问 ACK Serverless 默认为 API Server 创建一个内网 SLB 实例。设置是否开放使用 EIP 暴露 API Server。 选中

3、在组件配置页面,根据实际需要配置日志服务。

4、完成购买。

二、创建FastChat应用

1、在集群列表页面,单击集群名称fastchat-demo进入集群信息页面,然后在左侧导航栏,选择工作负载 > 无状态

2、在无状态页面,单击使用YAML创建资源。

3、在示例模板下拉列表中,选择自定义,将如下 fastchat 应用的 YAML 示例粘贴至模板,然后单击创建。

YAML文件定义了两个Kubernetes资源对象:一个Deployment和一个Service,用于部署FastChat应用并暴露服务。


Deployment配置详解

API版本与类型

  • apiVersion: apps/v1:使用Kubernetes Apps API稳定版本
  • kind: Deployment:声明为无状态应用部署资源

元数据

  • labels.app: fastchat:标记应用为FastChat组件
  • name/namespace:部署名为fastchat,位于default命名空间

副本与选择器

  • replicas: 1:仅运行1个Pod实例
  • selector.matchLabels:通过app: fastchat标签选择管理Pod

Pod模板

  • 特殊标签alibabacloud.com/eci: "true":启用阿里云弹性容器实例(ECI)
  • 关键注解:
    • k8s.aliyun.com/eci-use-specs:指定ECI可选的实例规格(GN6i/GN5等GPU机型)
    • k8s.aliyun.com/eci-extra-ephemeral-storage:附加100Gi临时存储

容器配置

  • 启动命令:通过sh -c执行容器内的/root/webui.sh脚本
  • 镜像地址:使用阿里云上海 registry 的fastchat:v1.1.0镜像
  • 端口暴露:容器监听7860 TCP端口
  • 就绪探针:通过TCP检查7860端口,初始延迟5秒,超时1秒
  • 资源需求:
    • 请求8核CPU和16Gi内存
    • 限制使用1块NVIDIA GPU

Service配置详解

基础信息

  • type: LoadBalancer:创建云厂商的负载均衡器
  • 注解配置:
    • 负载均衡器类型为公网(internet
    • 按量付费模式(PayByCLCU

流量路由

  • 端口映射:将LB的7860端口转发到Pod的7860端口
  • externalTrafficPolicy: Local:保留客户端源IP
  • 选择器:通过app: fastchat标签关联Deployment创建的Pod
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
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 7860
    protocol: TCP
    targetPort: 7860
  selector:
    app: fastchat
  type: LoadBalancer

4、在创建页面下方,单击fastchat,查看应用创建进度。

查看创建进度。


三、访问FastChat服务

注意事项

  • fastchat-t5-3b-v1.0模型仅支持日常对话,不支持代码生成等高级功能。
  • 仅支持英文。


1、在左侧导航栏,选择网络>服务,查看您创建的服务fastchat的外部端点,例如8.140.XX.XX:7860


2、在您的本机浏览器中输入http://8.140.XX.XX:7860,访问和体验fastchat应用。
通过输入问题,然后单击Send,即可体验大语言模型FastChat的聊天功能。

四、学习总结

[用户请求]  
│  
├─ [CLB (公网负载均衡)]  
│   │  
│   ├─ 路由到 [FastChat API Pod (ECI实例)]  
│   └─ 路由到 [Web UI Pod (ECI实例)]  
│  
├─ [NAT网关]  
│   │  
│   └─ 提供 [模型推理 Pod (ECI实例)] 访问公网的能力(如下载模型权重)  
│  
└─ [ACK Serverless集群]  
    │  
    ├─ 自动弹性伸缩 ECI 实例组  
    │   ├─ FastChat API 服务  
    │   ├─ Web UI 服务  
    │   └─ 模型推理 Worker  
    └─ 挂载 NAS/OSS 存储(持久化模型文件)  
 


网站公告

今日签到

点亮在社区的每一天
去签到