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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 打破算力瓶颈,快速部署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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6天前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
|
4天前
|
机器学习/深度学习 人工智能 UED
OpenAI o1模型:AI通用复杂推理的新篇章
OpenAI发布了其最新的AI模型——o1,这款模型以其独特的复杂推理能力和全新的训练方式,引起了业界的广泛关注。今天,我们就来深入剖析o1模型的特点、背后的原理,以及一些有趣的八卦信息。
140 73
|
1天前
|
人工智能 运维 负载均衡
10 分钟构建 AI 客服并应用到网站、钉钉或微信中
《10分钟构建AI客服并应用到网站、钉钉或微信中》的解决方案通过详尽的文档和示例代码,使具有一定编程基础的用户能够快速上手,顺利完成AI客服集成。方案涵盖高可用性、负载均衡及定制化选项,满足生产环境需求。然而,若文档不清晰或存在信息缺失,则可能导致部署障碍。实际部署中可能遇到网络、权限等问题,需逐一排查。云产品的功能、性能及操作配置便捷性直接影响解决方案效果,详尽的产品手册有助于快速解决问题。总体而言,该方案在各方面表现出色,值得推荐。
|
4天前
|
数据采集 机器学习/深度学习 人工智能
AI在医疗诊断中的应用
【9月更文挑战第15天】本文将探讨人工智能(AI)在医疗诊断领域的应用。我们将首先介绍AI的基本概念和其在医疗领域的潜力,然后通过一些具体的案例来展示AI如何帮助医生进行更准确的诊断。最后,我们将讨论AI在医疗诊断中面临的挑战和未来的可能性。
|
4天前
|
机器学习/深度学习 人工智能 搜索推荐
AI在医疗诊断中的应用:精准医疗的加速发展
【9月更文挑战第16天】随着人工智能(AI)技术的不断进步,医疗领域正经历前所未有的变革。本文探讨了AI在医学影像分析、病历数据分析和病症诊断预测等方面的应用,展示了其在提高诊断准确性、推动个性化治疗和促进医疗资源均衡分布方面的巨大潜力。AI正加速精准医疗的发展,有望在未来实现更智能、个性化的医疗服务,全面提升医疗质量和效率。
35 11
|
2天前
|
人工智能 云栖大会
AI Infra的前沿技术与应用实践 | 2024云栖大会预告
AI Infra的前沿技术与应用实践 | 2024云栖大会
|
1天前
|
人工智能 自动驾驶 云栖大会
何小鹏驾驶“全球首款AI汽车”亮相云栖大会 深化与阿里云AI算力合作
小鹏汽车加速端到端自动驾驶落地 深化与阿里云AI算力合作
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用
【9月更文挑战第17天】本文主要介绍了AI技术在自然语言处理(NLP)领域的应用,包括文本分类、情感分析、机器翻译和语音识别等方面。通过实例展示了AI技术如何帮助解决NLP中的挑战性问题,并讨论了未来发展趋势。
|
5天前
|
机器学习/深度学习 人工智能 搜索推荐
AI与未来医疗:革命性的技术,触手可及的健康
本文探讨了人工智能(AI)在医疗领域的应用及其潜力。从诊断辅助、个性化治疗到药物研发,AI正在改变我们理解健康和疾病的方式。同时,本文也讨论了AI面临的伦理挑战和数据隐私问题,呼吁建立相应的法律法规来保障患者权益。最后,本文对AI在未来医疗中的角色进行了展望,认为AI将继续推动医疗领域的创新和发展。
26 8