打破算力瓶颈,快速部署AI大模型应用

简介: 打破算力瓶颈,快速部署AI大模型应用

作者:庄宇


大语言模型的问世掀起了新一波的 AI 浪潮,而受限于个人电脑的算力资源,用户通常无法在本地运行一个资源需求庞大的AI应用。同样,由于GPU资源紧张,在本地数据中心运行大模型应用也存在挑战。同时近年来 Kubernetes 技术的兴起,也使得协同调度不同架构的计算资源成为可能。然而本地 Kubernetes 集群在运行诸如 AI 模型等对算力资源要求巨大的应用时,往往会面临资源不足的问题,因此越来越多的企业和用户选择采用混合云架构来部署自己的应用和服务。


在之前的文章 选对方法,K8s多集群管理没那么难 中,我们介绍过阿里云 ACK One 注册集群正是为混合云架构而生。无论是本地自建集群还是其他公共云厂商集群,都能够接入注册集群,在阿里云控制台进行统一操作和管理。本文介绍如何在本地通过 kind 快速创建一个 Kubernetes 集群,接入阿里云注册集群,通过本地kind集群提交一个 AI 聊天机器人服务 FastChat,最终通过云上资源运行。


关于 kind

kind 是一个通过使用 docker 容器来模拟节点,帮助用户快速创建本地 Kubernetes 集群的工具。安装 kind 前需要先安装 docker 环境。macOS 用户可以按照如下命令安装 docker 和 kind:


brew install --cask docker
brew install kind


其余系统下 kind 的安装请参见:kind 官方安装教程。安装完成后,可以快速在本地创建一个 Kubernete 集群:


kind create cluster


关于 onectl

Onectl 是阿里云分布式云容器平台的命令行工具,可以帮助用户快捷管理注册集群和集群组件。其主要功能包括:


  • 集群管理:帮助用户在本地管理云上注册集群,包括注册集群的创建、连接、删除与状态描述。
  • 组件管理:帮助用户在本地管理注册集群中安装的组件,包括组件的安装、升级、卸载等。


image.png


更多关于 onectl 的功能描述、安装方法、使用步骤,请参见如何使用 onectl 管理注册集群


基于注册集群快速部署一个 AI 聊天服务

前提条件

  • 已在本地部署 Kubernetes 集群
  • 已在本地安装并配置 onectl


通过 onectl 创建并连接注册集群

以交互式的方式创建注册集群,根据提示选择地域、VPC 等信息即可:


onectl cluster create -i
onectl cluster describe --cluster-id xxx //获取集群状态,等待状态变为waiting


连接注册集群:


onectl cluster connect --cluster-id ***


更多关于使用 onectl 创建注册集群的信息,请参见如何通过onectl创建注册集群


安装组件

要使注册集群能够使用阿里云的云上资源,并对外提供 LoadBalance 类型的 Service,需要安装 ack-virtual-node 组件和 cloud-controller-manager 组件:


onectl addon install ack-virtual-node --version v2.8.0
onectl addon install cloud-controller-manager


部署 AI 聊天服务 FastChat

FashChat 服务的资源文件 fastchat.yaml:


---
apiVersion: v1
kind: Pod
metadata:
  labels:
    app: fastchat
    alibabacloud.com/eci: "true"
  annotations:
    # 指定云上GPU机型
    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
  name: fastchat
  namespace: default
spec:
  activeDeadlineSeconds: 3600 # 默认运行1小时,节省成本,避免忘记删除
  schedulerName: eci-scheduler
  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


其中,labels 中的 aibabacloud.com/eci 字段指定使用云上 ECI 资源运行此应用,annotations 中的 k8s.aliyun.com/eci-use-specs 指定 ECI 的资源规格。


检查服务状态:


kubectl get svc fastchat-svc


预期输出:


NAME           TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)          AGE
fastchat-svc   LoadBalancer   10.96.119.1   47.xxx.xxx.27   7860:30631/TCP   95s


访问 AI 聊天服务

打开浏览器,访问 http://47.xxx.xxx.27:7860


image.png


可以看到 AI 聊天服务 FastChat 已经部署成功,并已经能正常对外提供服务。至此,我们成功在本地kind集群提交了一个AI大模型应用,并成功使用云上计算资源运行。通过接入云上无限算力,打破了本地计算资源瓶颈。


资源清理

服务使用完成后,清理相应资源:


kubectl delete -f fastchat.yaml


相关链接:

[1] 注册集群概述:

https://help.aliyun.com/document_detail/155208.html

[2] 通过 onectl 管理注册集群

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/use-onectl-to-manage-registered-clusters

[3] 通过 onectl 创建注册集群

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/create-a-registered-cluster-by-using-onectl

[4] 扩容弹性容器实例ECI

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/scale-out-elastic-container-instances


11月21日直播预告:如何基于分布式云容器平台 ACK One 实现跨云协同?


  • 全面上云已成现状,目前行业对云原生容器工程师的需求是什么样?人才缺口有多大?
  • ACP 认证的价值和好处是什么?对整个行业的云原生人才培养有哪些积极影响?
  • 云原生领域新进展?未来我们需要重点关注云原生哪些技术?快来直播间与大咖互动提问吧~


直播时间:2023年11月21日(周二)20:00

直播嘉宾:阿里云高级技术专家,庄宇;极客帮科技联合创始人&CEO 司巧蕾


点击下方链接或扫描海报二维码即刻预约:

https://live.geekbang.org/room/1952?utm_source=aliyun&utm_medium=zhibotuiguang&utm_term=aliyunzhibotuiguang

image.png

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
2097 120
|
4月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
608 30
|
4月前
|
人工智能 测试技术 API
构建AI智能体:二、DeepSeek的Ollama部署FastAPI封装调用
本文介绍如何通过Ollama本地部署DeepSeek大模型,结合FastAPI实现API接口调用。涵盖Ollama安装、路径迁移、模型下载运行及REST API封装全过程,助力快速构建可扩展的AI应用服务。
1326 6
|
4月前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
602 1
|
4月前
|
机器学习/深度学习 人工智能 人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
454 121
|
4月前
|
人工智能 人机交互 知识图谱
当AI学会“融会贯通”:多模态大模型如何重塑未来
当AI学会“融会贯通”:多模态大模型如何重塑未来
362 114
|
4月前
|
人工智能 搜索推荐 程序员
当AI学会“跨界思考”:多模态模型如何重塑人工智能
当AI学会“跨界思考”:多模态模型如何重塑人工智能
524 120
|
4月前
|
人工智能 安全 搜索推荐
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
394 117
|
4月前
|
人工智能 安全 Serverless
再看 AI 网关:助力 AI 应用创新的关键基础设施
AI 网关作为云产品推出已有半年的时间,这半年的时间里,AI 网关从内核到外在都进行了大量的进化,本文将从 AI 网关的诞生、AI 网关的产品能力、AI 网关的开放生态,以及新推出的 Serverless 版,对其进行一个全面的介绍,期望对正在进行 AI 应用落地的朋友,在 AI 基础设施选型方面提供一些参考。
880 78