借助阿里云在亚洲加速迈向成功
一站式安全合规咨询服务
MLPS 2.0 一站式合规解决方案
依托我们的网络进军中国市场
提升面向互联网应用的性能和安全性
保障您的中国业务安全无忧
通过强大的数据安全框架保护您的数据资产
申请 ICP 备案的流程解读和咨询服务
面向大数据建设、管理及应用的全域解决方案
企业内大数据建设、管理和应用的一站式解决方案
将您的采购和销售置于同一企业级全渠道数字平台上
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人
快速搭建在线教育平台
提供域名注册、分析和保护服务
云原生 Kubernetes 容器化应用运行环境
以 Kubernetes 为使用界面的容器服务产品,提供符合容器规范的算力资源
安全的镜像托管服务,支持全生命周期管理
多集群环境下微服务应用流量统一管理
提供任意基础设施上容器集群的统一管控,助您轻松管控分布式云场景
高弹性、高可靠的企业级无服务器 Kubernetes 容器产品
敏捷安全的 Serverless 容器运行服务
为虚拟机和容器提供高可靠性、高性能、低时延的块存储服务
一款海量、安全、低成本、高可靠的云存储服务
可靠、弹性、高性能、多共享的文件存储服务
全托管、可扩展的并行文件系统服务。
全托管的 NoSQL 结构化数据实时存储服务
可抵扣多种存储产品的容量包,兼具灵活性和长期成本优化
让您的应用跨不同可用区资源自动分配访问量
随时绑定和解绑 VPC ECS
云网络公网、跨域流量统一计费
高性价比,可抵扣按流量计费的流量费用
创建云上隔离的网络,在专有环境中运行资源
在 VPC 环境下构建公网流量的出入口
具备网络状态可视化、故障智能诊断能力的自助式网络运维服务。
安全便捷的云上服务专属连接
基于阿里云专有网络的私有 DNS 解析服务
保障在线业务不受大流量 DDoS 攻击影响
系统运维和安全审计管控平台
业务上云的第一个网络安全基础设施
集零信任内网访问、办公数据保护、终端管理等多功能于一体的办公安全管控平台
提供7X24小时安全运维平台
防御常见 Web 攻击,缓解 HTTP 泛洪攻击
实现全站 HTTPS,呈现可信的 WEB 访问
为云上应用提供符合行业标准和密码算法等级的数据加解密、签名验签和数据认证能力
一款发现、分类和保护敏感数据的安全服务
创建、控制和管理您的加密密钥
快速提高应用高可用能力服务
围绕应用和微服务的 PaaS 平台
兼容主流开源微服务生态的一站式平台
多集群环境下微服务应用流量统一管理
Super MySQL 和 PostgreSQL,高度兼容 Oracle 语法
全托管 MySQL、PostgreSQL、SQL Server、MariaDB
兼容 Redis® 的缓存和KV数据库
兼容Apache Cassandra、Apache HBase、Elasticsearch、OpenTSDB 等多种开源接口
文档型数据库,支持副本集和分片架构
100%兼容 Apache HBase 并深度扩展,稳定、易用、低成本的NoSQL数据库。
低成本、高可用、可弹性伸缩的在线时序数据库服务
专为搜索和分析而设计,成本效益达到开源的两倍,采用最新的企业级AI搜索和AI助手功能。
一款兼容PostgreSQL协议的实时交互式分析产品
一种快速、完全托管的 TB/PB 级数据仓库
基于 Flink 为大数据行业提供解决方案
基于Qwen和其他热门模型的一站式生成式AI平台,可构建了解您业务的智能应用程
一站式机器学习平台,满足数据挖掘分析需求
高性能向量检索服务,提供低代码API和高成本效益
帮助您的应用快速构建高质量的个性化推荐服务能力
提供定制化的高品质机器翻译服务
全面的AI计算平台,满足大模型训练等高性能AI计算的算力和性能需求
具备智能会话能力的会话机器人
基于机器学习的智能图像搜索产品
基于阿里云深度学习技术,为用户提供图像分割、视频分割、文字识别等离线SDK能力,支持Android、iOS不同的适用终端。
语音识别、语音合成服务以及自学习平台
一站式智能搜索业务开发平台
助力金融企业快速搭建超低时延、高质量、稳定的行情数据服务
帮助企业快速测算和分析企业的碳排放和产品碳足迹
企业工作流程自动化,全面提高效率
金融级云原生分布式架构的一站式高可用应用研发、运维平台
eKYC 数字远程在线解决方案
可智能检测、大数据驱动的综合性反洗钱 (AML) 解决方案
阿里云APM类监控产品
实时云监控服务,确保应用及服务器平稳运行
为系统运维人员管理云基础架构提供全方位服务的云上自动化运维平台
面向您的云资源的风险检测服务
提升分布式环境下的诊断效率
日志类数据一站式服务,无需开发就能部署
ECS 预留实例
让弹性计算产品的成本和灵活性达到最佳平衡的付费方式。云原生 AI 套件
加速AI平台构建,提高资源效率和交付速度FinOps
实时分析您的云消耗并实现节约SecOps
实施细粒度安全控制DevOps
快速、安全地最大限度提高您的DevOps优势自带IP上云
自带公网 IP 地址上云全球网络互联
端到端的软件定义网络解决方案,可推动跨国企业的业务发展全球应用加速
提升面向互联网应用的性能和安全性全球互联网接入
将IDC网关迁移到云端云原生 AI 套件
加速AI平台构建,提高资源效率和交付速度FinOps
实时分析您的云消耗并实现节约SecOps
实施细粒度安全控制DevOps
快速、安全地最大限度提高您的DevOps优势金融科技云数据库解决方案
利用专为金融科技而设的云原生数据库解决方案游戏行业云数据库解决方案
提供多种成熟架构,解决所有数据问题Oracle 数据库迁移
将 Oracle 数据库顺利迁移到云原生数据库数据库迁移
加速迁移您的数据到阿里云阿里云上的数据湖
实时存储、管理和分析各种规模和类型的数据数码信贷
利用大数据和 AI 降低信贷和黑灰产风险面向企业数据技术的大数据咨询服务
帮助企业实现数据现代化并规划其数字化未来人工智能对话服务
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人EasyDispatch 现场服务管理
为现场服务调度提供实时AI决策支持在线教育
快速搭建在线教育平台窄带高清 (HD) 转码
带宽成本降低高达 30%广电级大型赛事直播
为全球观众实时直播大型赛事,视频播放流畅不卡顿直播电商
快速轻松地搭建一站式直播购物平台用于供应链规划的Alibaba Dchain
构建和管理敏捷、智能且经济高效的供应链云胸牌
针对赛事运营的创新型凭证数字服务数字门店中的云 POS 解决方案
将所有操作整合到一个云 POS 系统中元宇宙
元宇宙是下一代互联网人工智能 (AI) 加速
利用阿里云 GPU 技术,为 AI 驱动型业务以及 AI 模型训练和推理加速DevOps
快速、安全地最大限度提高您的DevOps优势数据迁移解决方案
加速迁移您的数据到阿里云企业 IT 治理
在阿里云上构建高效可控的云环境基于日志管理的AIOps
登录到带有智能化日志管理解决方案的 AIOps 环境备份与存档
数据备份、数据存档和灾难恢复用阿里云金融服务加快创新
在云端开展业务,提升客户满意度
为全球资本市场提供安全、准确和数字化的客户体验
利用专为金融科技而设的云原生数据库解决方案
利用大数据和 AI 降低信贷和黑灰产风险
建立快速、安全的全球外汇交易平台
新零售时代下,实现传统零售业转型
利用云服务处理流量波动问题,扩展业务运营、降低成本
快速轻松地搭建一站式直播购物平台
面向大数据建设、管理及应用的全域解决方案
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人
以数字化媒体旅程为当今的媒体市场准备就绪您的内容
带宽成本降低高达 30%
快速轻松地搭建一站式直播购物平台
为全球观众实时直播大型赛事,视频播放流畅不卡顿
使用阿里云弹性高性能计算 E-HPC 将本地渲染农场连接到云端
构建发现服务,帮助客户找到最合适的内容
保护您的媒体存档安全
通过统一的数据驱动平台提供一致的全生命周期客户服务
在钉钉上打造一个多功能的电信和数字生活平台
在线存储、共享和管理照片与文件
提供全渠道的无缝客户体验
面向中小型企业,为独立软件供应商提供可靠的IT服务
打造最快途径,助力您的新云业务扬帆起航
先进的SD-WAN平台,可实现WAN连接、实时优化并降低WAN成本
通过自动化和流程标准化实现快速事件响应
针对关键网络安全威胁提供集中可见性并进行智能安全分析
提供大容量、可靠且高度安全的企业文件传输
用智能技术数字化体育赛事
基于人工智能的低成本体育广播服务
专业的广播转码及信号分配管理服务
基于云的音视频内容引入、编辑和分发服务
在虚拟场馆中模拟关键运营任务
针对赛事运营的创新型凭证数字服务
智能和交互式赛事指南
轻松管理云端背包单元的绑定直播流
通过数据加强您的营销工作
元宇宙是下一代互联网
利用生成式 AI 加速创新,创造新的业务佳绩
阿里云高性能开源大模型
借助AI轻松解锁和提炼文档中的知识
通过AI驱动的语音转文本服务获取洞察
探索阿里云人工智能和数据智能的所有功能、新优惠和最新产品
该体验中心提供广泛的用例和产品帮助文档,助您开始使用阿里云 AI 产品和浏览您的业务数据。
利用阿里云 GPU 技术,为 AI 驱动型业务以及 AI 模型训练和推理加速
元宇宙是下一代互联网
构建发现服务,帮助客户找到最合适的内容
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人
加速迁移您的数据到阿里云
在阿里云上建立一个安全且易扩容的环境,助力高效率且高成本效益的上云旅程
迁移到完全托管的云数据库
将 Oracle 数据库顺利迁移到云原生数据库
自带公网 IP 地址上云
利用阿里云强大的安全工具集,保障业务安全、应用程序安全、数据安全、基础设施安全和帐户安全
保护、备份和还原您的云端数据资产
MLPS 2.0 一站式合规解决方案
快速高效地将您的业务扩展到中国,同时遵守适用的当地法规
实现对 CloudOps、DevOps、SecOps、AIOps 和 FinOps 的高效、安全和透明的管理
构建您的原生云环境并高效管理集群
快速、安全地最大限度提高您的DevOps优势
实施细粒度安全控制
提供运维效率和总体系统安全性
实时分析您的云消耗并实现节约
实时存储、管理和分析各种规模和类型的数据
登录到带有智能化日志管理解决方案的 AIOps 环境
帮助企业实现数据现代化并规划其数字化未来
帮助零售商快速规划数字化之旅
将全球知名的 CRM 平台引入中国
在线存储、共享和管理照片与文件
构建、部署和管理高可用、高可靠、高弹性的应用程序
快速、安全地最大限度提高您的DevOps优势
将您的采购和销售置于同一企业级全渠道数字平台上
企业内大数据建设、管理和应用的一站式解决方案
帮助企业简化 IT 架构、实现商业价值、加速数字化转型的步伐
快速高效地将您的业务扩展到中国,同时遵守适用的当地法规
快速搜集、处理、分析联网设备产生的数据
0.0.201
您可以在ACK集群使用阿里云第八代企业级实例ECS g8i作为Worker节点,并结合IPEX技术来加速文生图模型的推理速度。您也可以在集群中创建TDX机密虚拟机节点池,并将示例服务迁移至其中,提升推理服务数据的安全性。本文以Stable Diffusion XL Turbo模型为例,介绍如何在合理运用CPU加速策略和模型推理的前提下,基于g8i CPU实例获得类似于GPU实例的使用体验,实现稳定、高效、高性价比且安全机密的文生图服务。
阿里云第八代企业级通用计算实例ECS g8i采用CIPU+飞天技术架构,搭载最新的Intel第五代至强可扩展处理器(代号EMR),性能进一步提升。同时,ECS g8i实例拥有AMX加持的AI能力增强,拥有AI增强和全面安全防护的两大特色优势。此外,ECS g8i实例全量支持Intel® TDX技术能力。您无需更改业务应用代码,即可将工作负载部署到可信执行环境(TEE,Trusted Execution Environment)中,不仅能有效降低技术门槛,还支持以极低的性能损耗为大模型等AI应用提供隐私增强算力。请参见通用型实例规格族g8i。
Intel® TDX是一项基于CPU硬件的云服务器ECS保护技术,TDX实例的CPU寄存器、内存数据、中断处理等均受到CPU硬件的机密保护,云厂商和外部攻击者均无法监控或篡改TDX实例的内部运行状态(如运行的进程、计算中的敏感数据等)。关于Intel® TDX技术的更多信息,请参见Intel® Trusted Domain Extension(Intel® TDX)。
Intel® TDX可以为您的实例和应用提供默认的安全保护,即您可以将现有应用直接迁移至TDX实例上并获得TDX能力带来的安全保护,而无需重新开发现有的应用程序。
Intel® Extension for PyTorch(IPEX)是由Intel开源并维护的一个PyTorch扩展库,大幅度提升了使用PyTorch在Intel处理器上运行AI应用,尤其是深度学习应用的性能。Intel正不断为PyTorch贡献IPEX的优化性能,为PyTorch社区提供最新的Intel硬件和软件改进。更多信息,请参见IPEX。
阿里云不对第三方模型“Stable Diffusion”和“stabilityai/sdxl-turbo”的合法性、安全性、准确性进行任何保证,阿里云不对由此引发的任何损害承担责任。
您应自觉遵守第三方模型的用户协议、使用规范和相关法律法规,并就使用第三方模型的合法性、合规性自行承担相关责任。
本文的示例服务仅用于教程实践、功能测试、POC等场景,其结果数据仅为参考值,实际数据可能会因您的操作环境而发生变化。
已在华北2(北京)地域创建一个ACK集群Pro版。具体操作,请参见创建Kubernetes托管版集群。
准备节点池
普通节点池:已在集群内创建一个使用阿里云第八代企业级实例g8i的节点池,且满足以下要求:
地域及可用区:在ECS实例支持的地域和可用区内。更多信息,请参见ECS实例规格可购买地域总览。
实例规格:CPU为16 vCPU及以上,推荐使用ecs.g8i.4xlarge
、ecs.g8i.8xlarge或ecs.g8i.12xlarge
。
磁盘空间:节点池内节点可用磁盘空间为200GiB以上(可设置节点系统盘大于200GiB或者增加一块大于200GiB的数据盘)。
TDX机密计算节点池:如您需要将示例应用无缝迁移到TDX机密计算节点池,为推理服务提供数据安全保护,准备工作请参见前提条件。
已通过kubectl工具连接集群。具体操作,请参见通过kubectl连接Kubernetes集群。
本示例服务使用的Stable Diffusion XL Turbo模型为stabilityai/sdxl-turbo
。
将以下示例代码保存为values.yaml文件。您也可以根据集群节点池内的实例规格来调整资源配置。
resources:
limits:
cpu: "16"
memory: 32Gi
requests:
cpu: "14"
memory: 24Gi
您可以使用存储在OSS上的自定义stabilityai/sdxl-turbo
模型。请创建具有OSS访问权限的RAM用户并获取其AccessKey,供下文步骤使用。
将以下示例代码保存为models-oss-secret.yaml。
apiVersion: v1
kind: Secret
metadata:
name: models-oss-secret
namespace: default
stringData:
akId: <yourAccessKeyID> # 替换为RAM用户的AccessKey ID。
akSecret: <yourAccessKeySecret> # 替换为RAM用户的AccessKey Secret。
执行以下命令,创建Secret。
kubectl create -f models-oss-secret.yaml
预期输出:
secret/models-oss-secret created
将以下内容保存为models-oss-pv.yaml。
apiVersion: v1
kind: PersistentVolume
metadata:
name: models-oss-pv
labels:
alicloud-pvname: models-oss-pv
spec:
capacity:
storage: 50Gi
accessModes:
- ReadOnlyMany
persistentVolumeReclaimPolicy: Retain
csi:
driver: ossplugin.csi.alibabacloud.com
volumeHandle: models-oss-pv
nodePublishSecretRef:
name: models-oss-secret
namespace: default
volumeAttributes:
bucket: "<yourBucketName>" # 替换为待挂载的OSS Bucket的名称。
url: "<yourOssEndpoint>" # 替换为待挂载的OSS的接入域名,推荐使用内网地址。本示例使用oss-cn-beijing-internal.aliyuncs.com。
otherOpts: "-o umask=022 -o max_stat_cache_size=0 -o allow_other"
path: "/models" # 模型存放路径,该路径下需要存在stabilityai/sdxl-turbo目录。
关于OSS参数配置的更多信息,请参见方式一:使用Secret创建静态卷PV及PVC。
执行以下命令创建静态卷PV。
kubectl create -f models-oss-pv.yaml
预期输出:
persistentvolume/models-oss-pv created
将以下内容保存为models-oss-pvc.yaml。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: models-oss-pvc
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 50Gi
selector:
matchLabels:
alicloud-pvname: models-oss-pv
执行以下命令创建静态卷PVC。
kubectl create -f models-oss-pvc.yaml
预期输出:
persistentvolumeclaim/models-oss-pvc created
将以下示例代码保存为values.yaml。
您可以根据集群节点池内的实例规格调整来资源配置。
resources:
limits:
cpu: "16"
memory: 32Gi
requests:
cpu: "14"
memory: 24Gi
useCustomModels: true
volumes:
models:
name: data-volume
persistentVolumeClaim:
claimName: models-oss-pvc
展开查看完整的values.yaml
# 工作负载副本数
replicaCount: 1
# 镜像
image:
repository: registry-vpc.cn-beijing.aliyuncs.com/eric-dev/stable-diffusion-ipex
pullPolicy: IfNotPresent
tag: "v0.1.5" # 包含官方stabilityai/sdxl-turbo模型文件
tagOnlyApi: "v0.1.5-lite" # 不包含官方stabilityai/sdxl-turbo模型文件,需要自行挂载模型文件,详见下方useCustomModels的说明
# 使用自定义的私有镜像时,指定包含镜像拉取凭证的 secret
imagePullSecrets: []
# 图片在容器内的保存路径
outputDirPath: /tmp/sd
# 是否使用自定义的stabilityai/sdxl-turbo模型
useCustomModels: false
volumes:
# outputDirPath对应的挂载配置
output:
name: output-volume
emptyDir: {}
# useCustomModels为true时,配置自定义的stabilityai/sdxl-turbo模型挂载配置
# 模型文件必须放在挂载目录中的stabilityai/sdxl-turbo子目录下
models:
name: data-volume
persistentVolumeClaim:
claimName: models-oss-pvc
# hostPath:
# path: /data/models
# type: DirectoryOrCreate
# 对外暴露的服务配置
service:
type: ClusterIP
port: 5000
# 容器资源配置
resources:
limits:
cpu: "16"
memory: 32Gi
requests:
cpu: "14"
memory: 24Gi
# 工作负载更新策略
strategy:
type: RollingUpdate
# 工作负载调度配置
nodeSelector: {}
tolerations: []
affinity: {}
# 容器安全配置
securityContext:
capabilities:
drop:
- ALL
runAsNonRoot: true
runAsUser: 1000
# 是否为工作负载启用HPA自动伸缩
# https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: 90
执行以下命令,在集群内部署一个使用IPEX加速的Stable Diffusion XL Turbo模型。
helm install stable-diffusion-ipex https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/pre/charts-incubator/stable-diffusion-ipex-0.1.7.tgz -f values.yaml
预期输出:
NAME: stable-diffusion-ipex
LAST DEPLOYED: Mon Jan 22 20:42:35 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
等待约10分钟,然后执行以下命令检查Pod状态,确保运行正常。
kubectl get pod |grep stable-diffusion-ipex
预期输出:
stable-diffusion-ipex-65d98cc78-vmj49 1/1 Running 0 1m44s
服务部署完成后,对外提供了一个文生图API。关于API的说明,请参见API说明。
执行以下命令,将Stable Diffusion XL Turbo模型服务转发到本地。
kubectl port-forward svc/stable-diffusion-ipex 5000:5000
预期输出:
Forwarding from 127.0.0.1:5000 -> 5000
Forwarding from [::1]:5000 -> 5000
使用提示词,请求本地服务生成图片。
本步骤以生成512x512
或1024x1024
的图片为例。
执行以下命令,使用提示词A panda listening to music with headphones. highly detailed, 8k.
请求本地的服务执行任务,生成图片。
curl -X POST http://127.0.0.1:5000/api/text2image \
-d '{"prompt": "A panda listening to music with headphones. highly detailed, 8k.", "number": 1}'
预期输出:
{
"averageImageGenerationTimeSeconds": 2.0333826541900635,
"generationTimeSeconds": 2.0333826541900635,
"id": "9ae43577-170b-45c9-ab80-69c783b41a70",
"meta": {
"input": {
"batch": 1,
"model": "stabilityai/sdxl-turbo",
"number": 1,
"prompt": "A panda listening to music with headphones. highly detailed, 8k.",
"size": "512x512",
"step": 4
}
},
"output": [
{
"latencySeconds": 2.0333826541900635,
"url": "http://127.0.0.1:5000/images/9ae43577-170b-45c9-ab80-69c783b41a70/0_0.png"
}
],
"status": "success"
}
您可以在浏览器中访问输出包含的URL,查看生成的图片。
执行下面的命令,使用提示词A panda listening to music with headphones. highly detailed, 8k.
请求本地的服务执行任务,生成图片。
curl -X POST http://127.0.0.1:5000/api/text2image \
-d '{"prompt": "A panda listening to music with headphones. highly detailed, 8k.", "number": 1, "size": "1024x1024"}'
预期输出:
{
"averageImageGenerationTimeSeconds": 8.635204315185547,
"generationTimeSeconds": 8.635204315185547,
"id": "ac341ced-430d-4952-b9f9-efa57b4eeb60",
"meta": {
"input": {
"batch": 1,
"model": "stabilityai/sdxl-turbo",
"number": 1,
"prompt": "A panda listening to music with headphones. highly detailed, 8k.",
"size": "1024x1024",
"step": 4
}
},
"output": [
{
"latencySeconds": 8.635204315185547,
"url": "http://127.0.0.1:5000/images/ac341ced-430d-4952-b9f9-efa57b4eeb60/0_0.png"
}
],
"status": "success"
}
您可以在浏览器中访问输出包含的URL,查看生成的图片。
以下为容器服务ACK团队使用不同ECS g8i实例规格在Stable Diffusion XL Turbo模型中生成512x512、1024x1024图片的耗时信息。下表结果数据仅为实验参考,实际数据可能会因您的操作环境而发生变化。
实例规格 | Pod Request/Limit | 参数 | 单次平均耗时 (512x512) | 单次平均耗时 (1024x1024) |
实例规格 | Pod Request/Limit | 参数 | 单次平均耗时 (512x512) | 单次平均耗时 (1024x1024) |
ecs.g8i.4xlarge (16 vCPU 64 GiB) | 14/16 | batch: 1 step: 4 | 2.2s | 8.8s |
ecs.g8i.8xlarge (32 vCPU 128 GiB) | 24/32 | batch: 1 step: 4 | 1.3s | 4.7s |
ecs.g8i.12xlarge (48 vCPU 192 GiB) | 32/32 | batch: 1 step: 4 | 1.1s | 3.9s |
示例服务部署完成后,您可以将该应用无缝迁移到TDX机密计算节点池中,为您的推理服务提供数据安全保护。
已在ACK集群内创建一个TDX机密虚拟机节点池,且TDX机密虚拟机节点池需满足其使用限制。具体操作,请参见创建TDX机密虚拟机计算节点池。
同时,TDX机密虚拟机节点池还需满足以下条件:
实例规格:CPU为16 vCPU及以上(推荐使用ecs.g8i.4xlarge)。
磁盘空间:节点池内节点可用磁盘空间为200GiB以上(可设置节点系统盘大于200GiB或者增加一块大于200GiB的数据盘)。
节点标签:配置节点标签为nodepool-label=tdx-vm-pool
。
将以下内容保存为tdx_values.yaml。
关于values.yaml的完整说明,请参见服务部署配置说明values.yaml。
此处以为TDX机密虚拟机节点池配置了标签nodepool-label=tdx-vm-pool
为例。如果您配置了其他标签,需替换nodeSelector
中nodepool-label
取值。
nodeSelector:
nodepool-label: tdx-vm-pool
执行以下命令,将部署的Stable Diffusion示例模型迁移到TDX机密计算节点池。
helm upgrade stable-diffusion-ipex https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/pre/charts-incubator/stable-diffusion-ipex-0.1.7.tgz -f tdx_values.yaml
预期输出:
Release "stable-diffusion-ipex" has been upgraded. Happy Helming!
NAME: stable-diffusion-ipex
LAST DEPLOYED: Wed Jan 24 16:38:04 2024
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
等待约10分钟,然后检查Pod状态,确保运行正常。
kubectl get pod |grep stable-diffusion-ipex
预期输出:
stable-diffusion-ipex-7f8c4f88f5-r478t 1/1 Running 0 1m44s
参见步骤三:测试示例服务,再次测试部署在TDX机密计算节点池中的Stable Diffusion示例模型。
当您使用stabilityai/sdxl-turbo
模型部署Stable Diffusion XL Turbo服务后,该服务对外提供了一个文生图API。API说明如下。
POST /api/text2image
参数 | 类型 | 说明 |
prompt | string | 提示词。 |
number | integer | 图片数量。最终生成的图片数量为 |
size | string | 图片大小。默认值: 可选值:
|
step | integer | 生成图片时使用的步数配置。默认值: |
batch | integer | 生成图片时使用的批大小配置。默认值: |
{
"prompt": "A panda listening to music with headphones. highly detailed, 8k.",
"number": 1
}
参数名称 | 参数类型 | 参数说明 |
id | string | 任务ID。 |
averageImageGenerationTimeSeconds | float | 每批图片的平均生成时间。单位:秒。 |
generationTimeSeconds | float | 生成所有图片的耗时。单位:秒。 |
meta | object | 任务元数据信息。 |
meta.input | object | 任务输入数据。 |
meta.input.model | string | 使用的模型名称。 |
meta.input.batch | integer | 生成图片时使用的批大小配置。 |
meta.input.step | integer | 生成图片时使用的步数配置。 |
meta.input.number | integer | 图片数量。最终生成的图片数量为 |
output | array | 生成的图片信息。 当请求参数 |
output[].url | string | 图片访问地址。只有当工作负载副本数为 |
output[].latencySeconds | float | 生成该批次图片的耗时。单位:秒。 |
status | string | 任务状态。 |
{
"averageImageGenerationTimeSeconds": 2.0333826541900635,
"generationTimeSeconds": 2.0333826541900635,
"id": "9ae43577-170b-45c9-ab80-69c783b41a70",
"meta": {
"input": {
"batch": 1,
"model": "stabilityai/sdxl-turbo",
"number": 1,
"prompt": "A panda listening to music with headphones. highly detailed, 8k.",
"size": "512x512",
"step": 4
}
},
"output": [
{
"latencySeconds": 2.0333826541900635,
"url": "http://127.0.0.1:5000/images/9ae43577-170b-45c9-ab80-69c783b41a70/0_0.png"
}
],
"status": "success"
}
在ACK集群的TDX机密虚拟机节点池中,通过采用ECS g8i实例并结合AMX + IPEX技术,能够有效加速文生图模型的推理速度,并可以开启TEE实现对模型推理的安全保护。本实践教程采用阿里云第八代(Intel至强第五代处理器)ecs.g8i.4xlarge机型运行stabilityai/sdxl-turbo
模型及相关的微调模型为例,展示如何实现高性价比、模型安全的文生图推理服务。
从推理速度的绝对性能来看,CPU的推理速度仍然与A10的GPU实例有所差距。采用ecs.g8i.8xlarge的CPU机型、step为30、batch为16时,图片生成速度为0.14 images/s;采用A10的GPU实例、step为30,batch为16时,图片生成速度为0.4 images/s。但从最佳图像生成质量的推理性能来看,采用ecs.g8i.8xlarge的CPU机型、step为4、batch为16时,图像生成速度为1.2 images/s,仍可实现秒级出图性能。
因此,通过合理运用CPU加速策略和文生图模型推理的最佳实践,ECS g8i等第八代CPU实例可用于替代GPU实例,提供稳定、高效、高性价比且安全机密的文生图服务。
在追求性价比、模型安全TEE和大规模资源供给的文生图推理场景下,建议采用ecs.g8i.4xlarge机型运行stabilityai/sdxl-turbo
及相关的微调模型,以最优性价比的方式提供高质量的文生图服务。
使用ecs.g8i.8xlarge实例代替ecs.gn7i-c8g1.2xlarge时,可有效节省约9%的成本,并依然保持1.2 images/s的图像生成速度。
使用ecs.g8i.4xlarge实例替代ecs.gn7i-c8g1.2xlarge时,图像生成速度降为0.5 images/s,但可有效节省超过53%的成本。
不同地域的ECS实例价格请以云服务器ECS定价中的实例价格页签定价为准。
展开查看不同CPU、GPU机型相关的结果数据
本实践使用阿里云ecs.g8i.8xlarge机型,展示了不同Benchmark取值下及使用不同应用模型时的性能结果。具体信息参见下表。更多信息,请参见Benchmark Tools:lambda-diffusers。
本结果数据仅为参考值,实际数据可能会因您的操作环境而发生变化。
实例规格 | AlibabaCloud ecs.g8i.8xlarge 32vCPU,128GiB VM, EMR | AlibabaCloud ecs.g8i.8xlarge 32vCPU,128GiB VM, EMR |
step | 4 | 30 |
模型 | sdxl-turbo | stable-diffusion-2-1-base |
执行命令 | python sd_pipe_sdxl_turbo.py --bf16 --batch 1 --height 512 --width 512 --repeat 5 --step 4 --prompt "A panda listening to music with headphones. highly detailed, 8k" | python sd_pipe_infer.py --model /data/models/stable-diffusion-2-1-base --bf16 --batch 1 --height 512 --width 512 --repeat 5 --step 30 --prompt "A panda listening to music with headphones. highly detailed, 8k" |
性能趋势 |
下方数据源于Lambda Diffusers的测试数据,仅供参考。其Benchmark可能会发生变化。实际数据及更多信息请以官方页面Lambda Diffusers Benchmarking inference为准。