基于阿里云 Serverless 容器服务轻松部署企业级 AI 应用

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
应用实时监控服务ARMS - 应用监控,每月50GB免费额度
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 基于阿里云 Serverless 容器服务轻松部署企业级 AI 应用

作者:元毅、坤仑


数禾科技 AI 模型服务基于云原生架构,为不同业务环节提供智能决策支持。随着业务的快速发展,摆在数禾面前的难题是支撑模型计算的底层应用资源无法根据请求量来调整机器资源支持运算能力。同时,随着模型在线推理服务数量的增加,数禾的模型服务也变得越来越庞大、臃肿,难以管理。这种状况不仅导致了资源浪费,还增加了维护和升级的成本。


为了解决这些“顽疾”,数禾科技采用阿里云 ASK 部署线上模型,无需 K8s 节点管理,根据实时流量动态使用 POD,资源成本节省 60%;通过 ASK Knative 服务,解决了数模型的灰度发布和多版本并存问题;得益于ASK 自动伸缩和缩容到 0 的优势,降低运行成本,大幅提升服务可用性。


目前,该系统已上线部署 500+AI 模型服务,每天能够提供上亿次查询决策服务,具备无限横向扩展的能力。同时,数禾科技 AI 模型服务支持自动调整容量,满足不同业务压力下的需求,从而保障业务的稳定运行。不仅如此,采用云原生架构方案,平均部署周期由之前的1天缩短至 0.5天,大幅提升了研发迭代效率,从而加速商业化应用的进程,为金融业务提供新的增长动力。


关于 Serverless Kubernetes(ASK)


Kubernetes(K8s)作为一个开源容器编排系统,被广泛运用于云原生应用的开发与管理。其优势在于降低运维成本,提高运维效率,形成了以 K8s 为核心的云原生生态。然而使用 K8s 常常需要用户面对的问题较多,例如资源规划、容量规划、Node 与 Pod 的亲和关系、容器网络规划、节点生命周期管理、操作系统版本、容器运行时版本兼容性等,这些问题显然不是用户所希望关心的,用户期望做的事情是专注在自身的业务逻辑,尽可能不关心这些基础设施。Serverless 的核心理念在于让开发者更聚焦业务逻辑,减少对基础设施的关注。因此我们将 K8s 复杂性下沉,提供 Serverless Kubernetes 的产品能力。



那么 Serverless Kubernetes 有哪些优势呢?主要包括以下三个方面:免运维、自动弹性、按需付费。


首先,Serverless Kubernetes 组件全托管免运维,支持自动升级 k8s 版本。其次,该产品具有极致弹性能力。可以根据业务需求,自动弹性、秒级扩容,从而在满足业务增长时自动容量规划。最后,使用 Serverless Kubernetes 的用户,只需根据实际使用量按需计费。除此之外,ASK 还提供了新增的 U 实例规格支持,统一支持多款处理器,相比上一代主售实例降价高达 40%。



为了让更多用户体验最佳实践,我们特地将其打造成了一个体验场景,配合热门开源的 AI 项目 Stable Diffusion,用户可以通过真实的云上环境,轻松体验容器化部署具备企业级弹性能力的 AI 模型。


在 ASK 中部署 Stable Diffusion


随着生成型 AI 技术的能力提升,越来越多的注意力放在了通过 AI 模型提升研发效率上。作为 AIGC(AI Generated Content)领域的知名项目 Stable Diffusion,可以帮助用户快速、准确地生成想要的场景及图片。不过当前直接在 K8s 使用 Stable Diffusion 面临如下问题:


  • 单个 Pod 处理请求的吞吐率有限,如果多个请求转发到同一个 Pod,会导致服务端过载异常,因此需要精准的控制单个 Pod 请求并发处理数。
  • GPU 资源很珍贵,期望做到按需使用资源,在业务低谷及时释放 GPU 资源


基于上面两个问题,我们提供 ASK + Knative 解决方案,可以做到基于并发精准弹性,缩容到 0,资源按需使用,打造生产可用的 Stable Diffusion 服务。


方案

这里我们在 ASK 中提供 Knative + MSE 方式解决上述问题:


  • 基于 MSE 网关,扩展 Knative 弹性插件机制,实现基于并发数精准弹性
  • 支持缩容到 0, 按需使用自动弹性
  • 多版本管理、镜像加速,助力模型快速发布迭代



实践

接下来我们介绍如何在 ASK 中部署 Stable Diffusion 服务。


服务部署

1. 在集群列表页面,单击目标集群 knative-sd-demo 进入集群信息页面,然后在左侧导航栏,选择应用>Knative。


2. 在 Knative 页面,单击服务管理页签,然后单击使用模板创建


3. 在命名空间下拉列表中,选择 default,在示例模板下拉列表中,选择 Resouce-Knative Service,将以下消息处理服务的 YAML 示例粘贴至模板,然后单击创建


默认创建一个名为 knative-sd-demo 的服务。


apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: knative-sd-demo
  annotations:
    serving.knative.dev.alibabacloud/affinity: "cookie"
    serving.knative.dev.alibabacloud/cookie-name: "sd"
    serving.knative.dev.alibabacloud/cookie-timeout: "1800"
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/class: mpa.autoscaling.knative.dev
        autoscaling.knative.dev/maxScale: '10'
        autoscaling.knative.dev/targetUtilizationPercentage: "100"
        k8s.aliyun.com/eci-use-specs: ecs.gn5-c4g1.xlarge,ecs.gn5i-c8g1.2xlarge,ecs.gn5-c8g1.2xlarge  
    spec:
      containerConcurrency: 1
      containers:
      - args:
        - --listen
        - --skip-torch-cuda-test
        - --api
        command:
        - python3
        - launch.py
        image: yunqi-registry.cn-shanghai.cr.aliyuncs.com/lab/stable-diffusion@sha256:64999ff1aba706f65a2234d861d46318f7d58e2790b31ace0d567a96e65b617c
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 7860
          name: http1
          protocol: TCP
        name: stable-diffusion
        readinessProbe:
          tcpSocket:
            port: 7860
          initialDelaySeconds: 5
          periodSeconds: 1
          failureThreshold: 3


参数说明:

  • 支持 Cookie 会话保持:serving.knative.dev.alibabacloud/affinity
  • 支持多种 GPU 规格配置:k8s.aliyun.com/eci-use-specs
  • 支持并发数设置:containerConcurrency



4. 在服务管理页签,刷新页面后,当 knative-sd-demo 的状态变为成功时,表明 SD 服务部署成功。

image.png


服务访问并进行压测

部署压测服务 portal-server,用于 Stable Diffusion 效果展示并发起压测。


1. 在 Knative 页面,单击服务管理页签,然后单击使用模板创建


2. 在命名空间下拉列表中,选择 default,在示例模板下拉列表中,选择自定义,将以下 portal-server 压测服务的 YAML 示例粘贴至模板,然后单击创建


---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: portal-server
  name: portal-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: portal-server
  template:
    metadata:
      labels:
        app: portal-server
    spec:
      serviceAccountName: portal-server
      containers:
        - name: portal-server
          image: registry-vpc.cn-beijing.aliyuncs.com/acs/sd-yunqi-server:v1.0.2
          imagePullPolicy: IfNotPresent
          env:
            - name: MAX_CONCURRENT_REQUESTS
              value: "5"
            - name: POD_NAMESPACE
              value: "default"
          readinessProbe:
            failureThreshold: 3
            periodSeconds: 1
            successThreshold: 1
            tcpSocket:
              port: 8080
            timeoutSeconds: 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: portal-server
spec:
  externalTrafficPolicy: Local
  ports:
    - name: http-80
      port: 80
      protocol: TCP
      targetPort: 8080
    - name: http-8888
      port: 8888
      protocol: TCP
      targetPort: 8888
  selector:
    app: portal-server
  type: LoadBalancer
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: pod-list-cluster-role
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["list"]
  - apiGroups: ["networking.k8s.io"]
    resources: ["ingresses"]
    verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: pod-list-cluster-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: pod-list-cluster-role
subjects:
  - kind: ServiceAccount
    name: portal-server
    namespace: default
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: portal-server
  namespace: default


3. 选择网络>服务,服务页面,查看 portal-server 压测服务,获取访问 IP 为 123.56.XX.XX。



4. 在浏览器中输入 http://123.56.XX.XX,然后在该页面单击 Stable Diffusion 跳转至 Stable Diffusion 访问页面。



a. Stable Diffusion 访问页面如下所示。例如,在如下文本框中输入 cat,然后单击 Generate,将展示与输入有关的图片信息。



b. 在压测访问页面,设置并发数5总请求数20,然后单击开始压测,查看压测的结果。



压测期间,可以看到创建了 5 个 Pod,并且每个请求均会生成一个图片,图片生成后将展示到页面中。


查看可观测大盘

此外在 Knative 提供了开箱即用的可观测能力,在 Knative 页面,单击监控大盘页签。即可看到 Stable Diffusion 服务的请求量(Request Volume)、请求成功率(Success Rate)、4xx(客户端错误)、5xx(服务器端错误)和Pod扩缩容趋势的监控数据。



Response Time 区域,查看 Knative 的响应延迟数据,包括 P50、P90、P95 和 P99。



小结


基于 ASK Knative 并发精准弹性,缩容到 0,多版本管理等功能,可以轻松部署企业级 AI 服务。当前已在阿里云云起实验提供《基于 ASK 轻松部署企业级 Stable Diffusion》动手实践,欢迎体验:

扫码体验企业级弹性能力


体验地址:

https://developer.aliyun.com/adc/scenario/de33e7d3065949f3b81db292b2dca5ea

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2天前
|
人工智能 自然语言处理 搜索推荐
【人工智能】人工智能(AI)、Web 3.0和元宇宙三者联系、应用及未来发展趋势的详细分析
人工智能(AI)、Web 3.0和元宇宙作为当前科技领域的热门话题,它们之间存在着紧密的联系,并在各自领域内展现出广泛的应用和未来的发展趋势。以下是对这三者联系、应用及未来发展趋势的详细分析
11 2
【人工智能】人工智能(AI)、Web 3.0和元宇宙三者联系、应用及未来发展趋势的详细分析
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【模型微调】AI Native应用中模型微调概述、应用及案例分析
在AI Native应用中,模型微调是一个关键步骤,它允许开发者使用特定领域的数据对预训练模型进行二次训练过程,从而使其更好地适应特定任务或数据集。模型微调通过调整模型的参数,使模型在特定任务上达到更高的性能。这种技术广泛应用于自然语言处理、图像识别、语音识别等领域
7 1
|
2天前
|
机器学习/深度学习 数据采集 人工智能
【AI在金融科技中的应用】详细介绍人工智能在金融分析、风险管理、智能投顾等方面的最新应用和发展趋势
人工智能(AI)在金融领域的应用日益广泛,对金融分析、风险管理和智能投顾等方面产生了深远影响。以下是这些领域的最新应用和发展趋势的详细介绍
10 1
|
2天前
|
人工智能 Kubernetes 开发者
容器化技术在AI开发流程中的应用
【8月更文第17天】随着人工智能(AI)技术的快速发展,如何高效地开发、测试和部署AI模型成为了一个重要的课题。容器化技术,如Docker和Kubernetes,为解决这一问题提供了强大的工具。本文将探讨这些技术如何简化AI应用程序的开发流程,并提高模型的可移植性和可扩展性。
8 0
|
4天前
|
机器学习/深度学习 编解码 人工智能
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
随着人工智能、大数据和深度学习等领域的快速发展,GPU服务器的需求日益增长。阿里云的GPU服务器凭借强大的计算能力和灵活的资源配置,成为众多用户的首选。很多用户比较关心gpu云服务器的收费标准与活动价格情况,目前计算型gn6v实例云服务器一周价格为2138.27元/1周起,月付价格为3830.00元/1个月起;计算型gn7i实例云服务器一周价格为1793.30元/1周起,月付价格为3213.99元/1个月起;计算型 gn6i实例云服务器一周价格为942.11元/1周起,月付价格为1694.00元/1个月起。本文为大家整理汇总了gpu云服务器的最新收费标准与活动价格情况,以供参考。
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
|
7天前
|
云安全 弹性计算 安全
阿里云服务器基础安全防护简介,云服务器基础安全防护及常见安全产品简介
在使用云服务器的过程中,云服务器的安全问题是很多用户非常关心的问题,阿里云服务器不仅提供了一些基础防护,我们也可以选择其他的云安全类产品来确保我们云服务器的安全。本文为大家介绍一下阿里云服务器的基础安全防护有哪些,以及阿里云的一些安全防护类云产品。
阿里云服务器基础安全防护简介,云服务器基础安全防护及常见安全产品简介
|
6天前
|
机器学习/深度学习 弹性计算 人工智能
阿里云第八代云服务器ECSg8i实例深度解析:性能及适用场景参考
目前企业对云服务器的性能、安全性和AI能力的要求日益提高。阿里云推出的第八代云服务器ECS g8i实例,以其卓越的性能、增强的AI能力和全面的安全防护,除了适用于通用互联网应用和在线音视频应用等场景之外,也广泛应用于AI相关应用。本文将深入解析ECS g8i实例的技术特性、产品优势、适用场景及与同类产品的对比,以供参考。
阿里云第八代云服务器ECSg8i实例深度解析:性能及适用场景参考
|
19天前
|
弹性计算 运维 搜索推荐
阿里云建站方案参考:云服务器、速成美站、企业官网区别及选择参考
随着数字化转型的浪潮不断推进,越来越多的企业和公司开始将业务迁移到云端,而搭建一个专业、高效的企业官网成为了上云的第一步。企业官网不仅是展示公司形象、产品和服务的重要窗口,更是与客户沟通、传递价值的关键渠道。随着阿里云服务器和建站产品的知名度越来越高,越来越多的用户选择阿里云的产品来搭建自己的官网。本文将深入探讨在阿里云平台上,如何选择最适合自己的建站方案:云服务器建站、云·速成美站还是云·企业官网。
103 13
阿里云建站方案参考:云服务器、速成美站、企业官网区别及选择参考
|
13天前
|
编解码 分布式计算 Linux
最新阿里云服务器、轻量应用服务器、GPU云服务器活动价格参考
阿里云服务器产品包含云服务器、轻量应用服务器、GPU云服务器等,本文汇总了这些云服务器当下最新的实时活动价格情况,包含经济型e实例云服务器价格、通用算力型u1实例云服务器价格、第七代云服务器价格、轻量应用服务器最新价格、GPU云服务器价格,以供大家参考。
最新阿里云服务器、轻量应用服务器、GPU云服务器活动价格参考
|
20天前
|
域名解析 弹性计算 数据挖掘
阿里云特惠云服务器82元、298元、99元和199元性能及选择参考
目前在阿里云的活动中有几款价格非常实惠的云服务器,现在购买2核2G轻量应用服务器最低只要82元1年,云服务器最低只要99元1年。购买2核4G轻量应用服务器最低只要298元1年,云服务器最低只要199元1年。本文为大家解析2024年阿里云这几款特惠云服务器的性能及选择参考。
阿里云特惠云服务器82元、298元、99元和199元性能及选择参考

相关产品

  • 容器计算服务
  • 函数计算