阿里云容器服务助力万兴科技 AIGC 应用加速

news2024/11/26 3:23:40

作者:子白(顾静)

2023 年堪称是 AIGC 元年,文生图领域诞生了 Stable Diffusion 项目,文生文领域诞生了 GPT 家族。一时间风起云涌,国内外许多企业投身 AIGC 创新浪潮,各大云厂商紧随其后纷纷推出自己的大语言模型。在文生图领域落地的企业更多,国外的如 Midjourney,国内的如 AIGC 软件公司万兴科技等。

图片

万兴科技今年推出了系列创新 AIGC 应用,相关产品发布后吸引了大量终端用户“尝鲜”,急需大量资源满足日益增长的用户需求。万兴科技将业务进一步部署到云上,利用云的弹性能力平衡资源和成本。同时,万兴科技借力阿里云容器服务 ACK 和镜像服务企业版 ACR EE,进一步提升用户体验。 Kubernetes 是企业云上管理资源的最佳选择,具有很强的应用编排能力,可靠性及弹性。

AIGC 类应用容器化挑战

AIGC 类应用相比于传统的在线应用有比较明显的特征,镜像大、冷启动时间长。

  • 镜像大

    AIGC 应用大多采用 nvidia/cuda 作为基础镜像,并安装 Tensorflow、Pytorch、Transformer 等框架,应用镜像往往有十几 GB。镜像拉取是容器启动必不可少的一环,主要包括下载、解压等步骤,会带来网络带宽开销和磁盘的二次写入。随着镜像大小和节点规模的增加,存储网络下载带宽逐渐成为性能瓶颈,缓慢的镜像拉取速度会严重影响容器部署效率和成功率。

  • 冷启动时间长

    应用冷启动时间由两个部分组成,Pod 启动时间及 Pod 启动后应用初始化时间。AIGC 类应用这两个时间都很长。镜像大导致 Pod 的镜像拉取时间长。应用启动后首先需要将模型加载到内存中然后才可以对外提供服务。以 stable diffusion 的 v1-5-pruned.safetensors 模型为例,模型有 7.7GB,从云盘加载到内存中大概需要 25s。AIGC 应用的冷启动时间从几十秒到几十分钟不等,如采用 HPA 扩容策略会存在明显的滞后性,导致业务受损。

为解决上述问题,阿里云推出了容器镜像服务(ACR)加速方案及容器服务 Kubernetes 版(ACK)智能弹性 AHPA 方案。

阿里云容器服务助力万兴科技 AIGC 应用加速

ACR 企业版为 AIGC 应用镜像加速

镜像加速方案分两部分:

镜像缓存

运行 Pod 前首先需要拉取镜像,镜像拉取耗时已经成为容器启动的主要耗时。ACK Serverless 集群里,首次拉取的镜像会自动制作镜像缓存,第二次创建 Pod 时会基于该快照来创建,避免或者减少镜像层的下载,从而提升 Pod 的创建速度。镜像缓存是根据镜像地址严格匹配的,当镜像有更新时需要更新镜像缓存。

详情请参考文档镜像缓存概述 [ 1]

P2P 镜像加速

当大规模容器集群批量下载镜像时,容器镜像存储的网络带宽会成为性能瓶颈,导致镜像拉取缓慢。P2P 加速功能利用您计算节点的带宽资源,进行节点之间镜像分发,减少对容器镜像存储的压力,可以大幅提升镜像拉取速度,减少应用部署时间。

详情请参考文档使用 P2P 加速概述 [ 2]

图片

万兴科技采用的方案将这两个能力结合在一起,将不常变化的基础镜像做镜像缓存,经常更新的镜像层采用 P2P 加速拉取,效果非常明显:一般 20G 的镜像拉取速度从 20min 左右加速到 30s 以内, 而且同时扩容的 Pod 数量越多,加速效果越明显。

ACK AHPA 轻松解决弹性滞后问题

在云原生场景下,资源容量通常难以预估,而使用 K8s 原生的 HPA 需要面对弹性滞后以及配置复杂问题。阿里云容器服务与达摩院决策智能时序团队合作推出了 AHPA 弹性预测,可以根据业务历史指标,自动识别弹性周期并对容量进行预测,提前进行弹性规划,解决弹性滞后的问题。

AHPA 会根据历史 Pod 的 Ready Time 以及历史 Metrics 自动学习规律,在业务量上涨之前的一个 Ready Time 开始扩容。当业务量上涨时 Pod 已提前准备,可以及时供给资源。

详细介绍可参考文档 AHPA 概述 [ 3]

图片

万兴科技在使用 AHPA 后,在成本基本没有变化的情况下, 极大地缩短了用户端的等待时间, 可以从下图看出,接入 AHPA 后基本上没有任务堆积了。

图片

综上,AIGC 类应用与传统应用相比,具有镜像大、冷启动时间长等明显特征。阿里云容器服务推出的镜像缓存、P2P 镜像加速及 ACK AHPA 弹性预测能力可以有效解决这些问题。

镜像缓存可以基于快照创建 Pod,避免或减少镜像层的拉取;P2P 镜像加速技术利用计算节点的内网带宽资源,在节点之间分发镜像,避免从数据源拉取,加速应用部署;AHPA 基于 RobustScaler 算法根据历史 Pod Ready 时间训练模型,提前扩容,减少冷启动时间。

相关链接:

[1] 镜像缓存概述

https://help.aliyun.com/zh/eci/user-guide/overview-of-image-caches-1/

[2] 使用 P2P 加速概述

https://help.aliyun.com/zh/acr/user-guide/use-p2p-acceleration-1?spm=a2c4g.750001.0.i1

[3] AHPA 概述****

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/ahpa-overview-1?spm=a2c4g.750001.0.i1

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

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

相关文章

Vue3 + Electron框架读取程序外部配置文件

网上找了一堆都不行,根据这个步骤来肯定能用 1. 在项目下新建一个config.json文件 2. json文件中写入一些配置 3. vue.config.js中配置打包时把config.json文件copy到应用目录下 pluginOptions:{electronBuilder:{nodeIntegration:true,builderOptions: {extraReso…

lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

下载使用 链接:https://pan.baidu.com/s/1uQ7yCzQsPWsF6xavFTpbZg 提取码:htay –来自百度网盘超级会员V5的分享 在根目录下执行: # 从 github 上下载文件 git clone https://github.com/ledgetech/lua-resty-http.git # 将 lua-resty-http/lib/ 下的 r…

linux-nfc neard 编译、安装与运行

项目github地址: https://github.com/linux-nfc/neard git clone地址: https://github.com/linux-nfc/neard.git 1.安装依赖库 clone完源码切换到目录neard里。这个项目需要依赖一下库: - GCC compiler - D-Bus library - GLib library …

【汇编】实验12 编写0号中断的处理程序

记录一下代码 assume cs:code code segment start:mov ax,csmov ds,axmov si,offset do0mov ax,0mov es,axmov di,200hmov cx,offset do0end-offset do0cldrep movsb ;将ds:si的字节单元byte送入es:di,也就是将从do0处往下的指令复制到0:200h中。mov word ptr es:[…

VS生成C++动态链接库DLL

1、官方文档: 在 Visual Studio 中创建 C/C DLL | Microsoft Learn 演练:创建和使用自己的动态链接库 (C) | Microsoft Learn 创建和调用步骤,主要按照第二篇操作。 一、建立DLL项目生成库文件 直接建立C的DLL项目,注意叙述&am…

小程序商城 免 费 搭 建之java商城 电子商务Spring Cloud+Spring Boot+二次开发+mybatis+MQ+VR全景+b2b2c

java SpringCloud版本b2b2c鸿鹄云商平台全套解决方案 使用技术: Spring CloudSpring BootMybatis微服务服务监控可视化运营 B2B2C平台: 平台管理端(包含自营) 商家平台端(多商户入驻) PC买家端、手机wap/公众号买家端 微服务(30个通用…

Datawhale 强化学习笔记(二)马尔可夫过程,DQN 算法

文章目录 参考马尔可夫过程DQN 算法(Deep Q-Network)如何用神经网络来近似 Q 函数如何用梯度下降的方式更新网络参数强化学习 vs 深度学习 提高训练稳定性的技巧经验回放目标网络 代码实战 DQN 算法进阶Double DQNDueling DQN 算法代码实战 参考 在线阅…

【印象深刻的实战经历】两次全国大学生数学建模经历分享

目录 🌼初次接触 初次参加培训 分享培训所得 比赛开始 🔥再次接触 参加校赛 机缘巧合 再次培训 比赛开始 📕技巧总结 从问题的实际意义分析大体上可分为 从问题的解决方法上分析 做国赛题目的步骤 赛前准备 选题 寻找思路…

蓝桥杯每日一题----货物摆放

题目 分析 上来一看,三个for循环,从1到n,寻找满足lwhn的个数,但是这样根本跑不出来答案,n太大了,1e15的级别,O(n)的时间复杂度都不行,更何况是O(…

Docker(一)简介和基本概念

一、简介 本章将带领你进入 Docker 的世界。 什么是 Docker? 用它会带来什么样的好处? 好吧,让我们带着问题开始这神奇之旅。 1.什么是 Docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目&…

Jenkins的环境部署,(打包、发布、部署、自动化测试)

一、Tomcat环境安装 1.安装JDK(Java环境) JDK下载地址:Java Downloads | Oracle 安装好后在系统环境变量里配置环境变量: ①添加JAVA_HOME 变量名:JAVA_HOME变量值:C:\Program Files\Java\jdk1.8.0_18…

docker安装运行CloudBeaver并设置默认语言为中文

1、CloudBeaver CloudBeaver 是一个开源的 Web 数据库管理工具,它提供了一个基于浏览器的用户界面,允许用户管理和操作各种类型的数据库。CloudBeaver 支持多种数据库系统,包括但不限于 PostgreSQL、MySQL、SQLite、Oracle、SQL Server 以及…

ClickHouse学习笔记(六):ClickHouse物化视图使用

文章目录 1、ClickHouse 物化视图2、物化视图 vs 普通视图3、物化视图的优缺点4、物化视图的用法4.1、基本语法4.2、准备表结构4.3、准备数据4.4、查询结果 1、ClickHouse 物化视图 ClickHouse 的物化视图是一种查询结果的持久化,它的存在是为了带来查询效率的提升…

银河麒麟服务器操作系统搭建证书服务器并颁发可用于签名的证书步骤说明

银河麒麟服务器操作系统搭建证书服务器并颁发可用于签名的证书的方法与前面Centos7上(centos7 使用openssl 配置证书服务器并颁发证书(史上最详细版本)_centos phpinfo显示的openssl配置项为/etc/pki/tls/openssl.c-CSDN博客)是一…

N-140基于springboot,vue协同过滤推荐算法个性化购物商城

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatisredis 本…

Chondrex:Glycosaminoglycans Assay Kit(糖胺聚糖检测试剂盒)

糖胺聚糖(glycosaminoglycans,GAGs)是一种携带负电荷的多糖链,位于大多数结缔组织和许多不同类型细胞的细胞外基质(extracellular matrices, ECM)中以及细胞表面上。由重复双糖单位复合构成的糖胺聚糖可分为…

Kali在Vmware无法连接到网络,配置网络及解决办法

一.问题描述: 打开 Kali,无法连接到网络,虚拟机配置正常的。 尝试 ping 百度,出错: ping baidu.com 提示: ping: baidu.com: Temporary failure in name resolution二.解决办法: 1.首先在vmwa…

FaFu--练习复盘--1

1、输出图形及二维数组应用 1.1.输出图形 描述 编写程序打印n行如下图形&#xff0c;其中1≤n≤500。 输入用例 7 输出用例 具体实现 #include"stdio.h" int main(){int n,i,j;scanf("%d",&n);for(i 1; i< n;…

盘点 Top 10 最好用的开发者工具箱

He3 有 500 工具&#xff0c;支持自定义工具分类&#xff0c;可以在线使用也可以下载客户端到本地&#xff0c;但有部分工具只能下载客户端才能使用&#xff0c;AI 工具需要升级购买积分&#xff0c;页面简洁&#xff0c;没有广告&#xff0c;部分小工具开源&#xff1b;JSON和…

Python vs. Rust:打破三大障碍

在我周围的每个人都知道我是Python 的忠实粉丝。大约15年前&#xff0c;当我对 Mathworks Matlab 感到厌倦时&#xff0c;我开始使用Python。虽然Matlab的理念看起来不错&#xff0c;但在掌握了Python之后&#xff0c;我再也没有回头。我甚至成为了我所在大学的Python传道者&am…