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

核心概念

  • 阿里云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: fastchatname: fastchatnamespace: default
spec:replicas: 1selector:matchLabels:app: fastchattemplate:metadata:labels:app: fastchatalibabacloud.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.4xlargek8s.aliyun.com/eci-extra-ephemeral-storage: 100Gispec:dnsPolicy: Defaultcontainers:- command:- sh- -c - "/root/webui.sh"image: yunqi-registry.cn-shanghai.cr.aliyuncs.com/lab/fastchat:v1.1.0imagePullPolicy: IfNotPresentname: fastchatports:- containerPort: 7860protocol: TCPreadinessProbe:failureThreshold: 3initialDelaySeconds: 5periodSeconds: 10successThreshold: 1tcpSocket:port: 7860timeoutSeconds: 1resources:requests:cpu: "8"memory: 16Gilimits:nvidia.com/gpu: 1
---
apiVersion: v1
kind: Service
metadata:annotations:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: internetservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: PayByCLCUname: fastchatnamespace: default
spec:externalTrafficPolicy: Localports:- port: 7860protocol: TCPtargetPort: 7860selector:app: fastchattype: 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 存储(持久化模型文件)  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/91898.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/91898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新Android Studio汉化教程--兼容插件包

[ ] 软件版本:Android Studio Meerkat Feature Drop | 2024.3.2 Build #AI-243.25659.59.2432.13423653, built on April 30, 2025 Runtime version: 21.0.613368085-b895.109 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Toolkit: sun.awt.windows.WT…

Unity_数据持久化_IXmlSerializable接口

Unity数据持久化 三、XML数据持久化 3.5 IXmlSerializable接口 3.5.1 IXmlSerializable接口基础概念 什么是IXmlSerializable接口: IXmlSerializable 是.NET框架提供的一个接口,允许类自定义XML序列化和反序列化的过程。当默认的XML序列化行为无法满足需…

如何快速解决PDF解密新方法?

有时从网络下载的PDF文档会带有加密限制,导致无法编辑、复制或打印。它的体积仅约10MB,无需安装,解压即用。遇到受限制的文件时,只需将其拖入界面,选择是否覆盖原文件,点击执行,瞬间完成解密。「…

译|数据驱动智慧供应链的构成要素与关联思考

数据质量,通过识别关键决策和瓶颈构建信息供应链。该模型适用于优化库存管理、自动化物流、预测需求、实现产品全生命周期追溯及应对突发风险。例如,通过AI机器人自动管理仓库,或利用数字孪生模拟和优化全球采购网络。 汇总来自三篇文章&…

OS21.【Linux】环境变量

目录 1.与环境变量有关的实验 A.对比命令和自制程序的运行 为什么.像ls、pwd这样的命令运行是不需要加路径? 执行自制程序而不加路径的方法,看看PATH环境变量 方法1:将自制程序移动到系统的搜索路径下 方法2:临时修改PATH环境变量 B.查看系统中所有环境变量 解释几个常…

加密流量论文复现:《Detecting DNS over HTTPS based data exfiltration》(上)

本文将以我个人的理解去阅读该篇流量加密论文,并在下一篇尽力对其中的实验部分进行复现。话不多说,先从论文开始着手。 内容介绍 传统的DNS(Domain Name System)协议是以明文传输的。DNS作为互联网的基础设施,最初设计时主要考虑的是功能和效…

Apache RocketMQ 中Message (消息)的核心概念

好的,我们来深入理解一下 Apache RocketMQ 中 Message (消息) 这个核心概念。这份文档详细阐述了消息的定义、在模型中的位置、内部属性、约束和使用建议。 你可以将 Message 看作是 RocketMQ 系统中数据传输和处理的最小原子单位。它承载了业务数据,并附…

C 语言问题

1. C语言中 union 与 struct 的区别类型structunion内存分配机制编译器为每个成员‌独立分配内存空间,总内存大小 所有成员大小之和(考虑内存对齐)所有成员‌共享同一段内存空间,总内存大小 ‌最大成员的大小‌数据存储特性1. 所…

[ LeetCode优选算法专题一双指针-----盛最多的水]

1.题目链接 LeetCode盛最多的水 2.题目描述 3.题目解析 问题本质分析 "盛最多水的容器" 问题可以抽象为:在坐标轴上有 n 条垂直线段,第 i 条线段的两个端点分别是 (i, 0) 和 (i, height [i])。找到两条线段,使得它们与 x 轴共同…

旧笔记本电脑如何安装飞牛OS

01引言随着电子产品的更新换代,我们有很多的电子产品已经满足不了现在的工作需求和日常娱乐了,比如:用了很久厚重笔记本电脑放在现在办公也是有点吃力了,我们现在换新了旧的还不想放在那里吃灰,怎么办呢?我…

某金服Java面试终极指南:25题完整解析与场景化方案

涵盖分布式锁、缓存、事务、高并发等金融系统核心考点,附解决方案与抗风险设计一、分布式锁深度解决方案 1. Redis分布式锁完整实现 // 原子加锁 防死锁 String uuid UUID.randomUUID().toString(); Boolean locked redisTemplate.opsForValue().setIfAbsent(&qu…

MATLAB 2025a的下载以及安装,安装X310的测试附加功能(附加安装包)

首先将安装包下载到本地中之后解压该文件夹,打开文件发现有两个文件,其中crach文件夹中是破解matlab所用到的文件。而另一个压缩包就是需要安装的文件,要先解压在安装。在安装之前将网络断开,不然可能破解不成功,先进入…

Scala实用编程(附电子书资料)

概述 Scala 是一种多范式编程语言,结合了面向对象编程(OOP)和函数式编程(FP)的特性电子书资料:https://pan.quark.cn/s/88737d4a680d Scala 的核心特点多范式融合 既支持面向对象编程(类、继承、…

数据结构(8)双向链表

目录 一、概念与结构 二、双向链表的实现 1、初始化 2、尾插 3、头插 4、尾删 5、头删 6、在指定位置之后插入结点 7、删除指定位置的结点 三、完整参考代码 一、概念与结构 这里的双向链表是指带头的的双向循环链表,这里的“带头”和之前所说的“头结…

【DeepSeek-R1 】分词系统架构解析

文章目录 🧩前言 🔍 1. SentencePiece Unigram 的核心原理 1.1 算法基础框架 1.2 核心数学原理 1.3 与BPE/WordPiece的对比 ⚙️ 2. DeepSeek-R1 分词器实现细节 2.1 词表结构设计 2.2 关键特性实现 📊 3. 性能优化关键技术 3.1 加速策略对比 3.2 编码过程伪代码 🔬 4.…

Linux自主实现shell

以下是在Linux操作系统 centos7版本下实现的shell &#xff0c;该shell具备bash的基础功能&#xff0c;无上下键输入历史命令功能&#xff0c;删除字符或命令时按住Ctrl Back #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.…

vue+elementUI上传图片至七牛云组件封装及循环使用

1.效果&#xff08;解决循环组件赋值问题&#xff09; 废话不多说直接上代码 2.下载七牛云依赖 npm install qiniu-js # 或者使用 yarn yarn add qiniu-js3.在vue组件中引入 import * as qiniu from qiniu-js4.在components文件夹下创建UploadImg1/uploadImg.vue组件 <templ…

2025年6月电子学会青少年软件编程(C语言)等级考试试卷(一级)

答案和更多内容请查看网站&#xff1a;【试卷中心 -----> 电子学会 ----> C/C ----> 一级】 网站链接 青少年软件编程历年真题模拟题实时更新 一、编程题 第 1 题 希望如光 题目描述 在充满挑战的生活中&#xff0c;希望往往是支撑人们穿越黑暗的核心力量。这…

拒绝复杂,AI图表制作简单化

在信息爆炸的时代&#xff0c;数据可视化已成为传递信息的核心手段。无论是职场汇报中的业绩分析&#xff0c;还是学术研究里的实验数据呈现&#xff0c;一张清晰直观的图表往往能胜过千言万语。而 AI 技术的介入&#xff0c;彻底改变了图表制作的传统模式 —— 它不仅让零基础…

easypoi生成多个sheet的动态表头的实现

在使用 EasyPOI 导出 Excel 时&#xff0c;生成多个 Sheet 且每个 Sheet 的表头是动态的&#xff08;即每个 Sheet 的列数和列名可能不同&#xff09;&#xff0c;可以通过如下方式实现&#xff1a;✅ 实现原理简述 使用 Workbook workbook ExcelExportUtil.exportExcel(expor…