AI 场景下,函数计算 GPU 实例模型存储最佳实践

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 当前,函数计算 FC 已被广泛应用在各种 AI 场景下,函数计算支持通过使用容器镜像部署 AI 推理应用,并且提供多种选项来访问训练好的模型。为了帮助开发者高效地在函数计算上部署 AI 推理应用,并快速解决不同场景下的模型存储选型问题,本文将对函数计算的 GPU 模型存储的优缺点及适用场景进行对比分析,以期为您的模型存储决策提供帮助。

作者:有松


当前,函数计算 FC 已被广泛应用在各种 AI 场景下,函数计算支持通过使用容器镜像部署 AI 推理应用,并且提供多种选项来访问训练好的模型。为了帮助开发者高效地在函数计算上部署 AI 推理应用,并快速解决不同场景下的模型存储选型问题,本文将对函数计算的 GPU 模型存储的优缺点及适用场景进行对比分析,以期为您的模型存储决策提供帮助。


背景信息


函数的存储选型请见:存储选型[1]。其中,适宜用作 GPU 模型存储的有以下 2 种。


  • 文件存储 NAS[2]
  • 对象存储 OSS[3]


除此之外,GPU 函数使用自定义容器镜像部署业务,因此还可以将模型文件直接放置到容器镜像中。


每种方法都有其独特的应用场景和技术特点,选择模型存储方式时应当考虑具体需求、执行环境以及团队的工作流程。通过灵活运用这些策略,达到模型存储在效率和成本上的平衡。


模型随容器镜像分发


将训练好的模型和相关应用代码一起打包在容器镜像中,模型文件随容器镜像分发,这是最直接的方法之一。


优缺点

优点:

  • 便利性:创建好镜像后,可以直接运行它进行推理而无需额外配置。
  • 一致性:确保每个环境中的模型版本都是一致的,减少了由于不同环境中模型版本差异导致的问题。

缺点:

  • 镜像体积:镜像可能会非常大,特别是对于大尺寸模型。
  • 更新耗时:每次模型更新时都需要重新构建和分发镜像,这可能是一个耗时的过程。


说明

为了提升函数实例的冷启动速度,平台会对容器镜像进行预处理。如果镜像尺寸过大,一方面可能会超出平台对镜像大小的约束,另一方面也会导致镜像加速预处理所需时间的延长。


  • 关于平台镜像大小限制,请参见 GPU 镜像大小限制是多少?[4]
  • 关于镜像预处理和函数状态的信息,请参见自定义镜像函数状态及调用[5]


使用场景

  • 模型尺寸相对较小,例如百兆字节左右。
  • 模型变更频率较低,可以考虑将模型打包在容器镜像中。


如果您的模型文件较大、迭代频繁或随镜像发布时超过平台镜像大小限制,建议模型与镜像分离。


模型放在 NAS 文件存储


函数计算平台支持将 NAS 文件系统挂载到函数实例指定目录上,应用通过访问 NAS 挂载点目录实现模型文件加载。


优缺点

优点:

  • 兼容性:相比 FUSE 类文件系统,NAS 提供的 POSIX 文件接口较完整和成熟,因此应用兼容性较好。
  • 容量:NAS 提供 PiB 级存储容量。

缺点:

  • 依赖 VPC 网络:一方面,需要为函数配置 VPC 访问通道才能访问 NAS 挂载点,在配置时涉及的云产品权限点相对较多;另一方面,函数实例冷启动时,平台为实例建立 VPC 访问通道会产生秒级的耗时。
  • 内容管理方式较单一:NAS 文件系统需要挂载才能使用,相对单一,需要建立相应的业务流程将模型文件分发到 NAS 实例上。
  • 不支持双活和多 AZ,详情请见 NAS 常见问题[6]

说明

在大量容器同时启动加载模型的场景下,容易触及 NAS 的带宽瓶颈,导致实例启动耗时增加,甚至因超时而失败。例如,定时 HPA 批量启动预留 GPU 实例、突发流量触发大量按需 GPU 实例的创建。


  • 可以从控制台查看 NAS 性能监控(读吞吐)。
  • 可以通过向 NAS 增加数据量的方式来提升 NAS 读写吞吐量。


采用 NAS 来存储模型文件,建议选用通用型 NAS 中的“性能型”,其主要原因在于该类型 NAS 可以提供较高的初始读带宽,约 600MB/s,详情请参见通用型 NAS。


使用场景

在按量 GPU 使用场景下,需要极速的启动性能。


模型放在 OSS 对象存储


函数计算平台支持将对象存储 OSS Bucket 挂载到函数实例的指定目录,应用程序可以直接从 OSS 挂载点加载模型。


优点

  • 带宽:OSS 的带宽上限较高,相比 NAS 不易出现函数实例间带宽争抢现象,详情请见 OSS 使用限制及性能指标[7]。与此同时,还可以通过开通 OSS 加速器[8]获得更高的吞吐能力。
  • 管理方法多样:
  • 提供控制台、开放 API 等访问通道。
  • 提供多种本地可用的对象存储管理工具,请参考 OSS 常用工具[9]
  • 可使用 OSS 跨区域复制[10]功能进行模型同步与管理。
  • 配置简单:相比 NAS 文件系统,函数实例挂载 OSS Bucket 无需打通 VPC,即配即用。
  • 成本:相比 NAS,一般来说 OSS 成本更优。


说明

从实现原理上,OSS 挂载使用 FUSE 用户态文件系统机制实现。应用访问 OSS 挂载点上的文件时,平台最终将其转换为 OSS API 调用实现对数据的访问。因此 OSS 挂载还有以下特征:


  • 其工作在用户态,会占用函数实例的资源配额,如 CPU、内存、临时存储等,因此建议在较大规格的 GPU 实例下使用。
  • 数据的访问使用 OSS API,其吞吐和时延最终受限于 OSS API 服务,因此更适合访问数量较少的大文件(如模型加载场景),不宜用于访问大量小文件。
  • 当前的实现还无法使能系统的 PageCache,相比 NAS 文件系统,这意味着单个实例内应用如果需要多次访问同一个模型文件,无法用到 PageCache 加速效果。


使用场景

  • 大量实例并行加载模型,需要更高存储吞吐能力避免实例间带宽不足的情况。
  • 需要本地冗余,或者多地域部署的场景。
  • 访问数量较少的大文件(比如模型加载场景)。


总结对比


对比项 随镜像分发 NAS挂载 OSS挂载
模型尺寸
  • 镜像构建和分发开销
  • 平台对镜像大小的约束
  • 平台对镜像的加速预处理耗时
吞吐 较快
  • 建议使用通用型NAS“性能型”,初始带宽较高
  • 多实例并发加载模型时要考虑对NAS实例的带宽争抢
  • 总吞吐较高,受OSS对单个阿里云账号在各地域的带宽约束
  • 可通过开启OSS加速器获得更高吞吐
兼容性
  • 基于OSS API模拟的POSIX文件接口支持
  • 支持符号链接
管理方法 容器镜像 VPC内挂载后使用
  • OSS控制台、API
  • OSS跨区域复制
  • 命令行、GUI工具
多AZ 支持 不支持 支持
PageCache使能
成本 不产生额外费用 一般来说NAS比OSS略高,请以各产品当前计费规则为准
  • NAS计费概述:链接[11],价格计算器:链接[12]
  • OSS计费概述:链接[13],价格计算器:链接[14]


基于以上对比,根据 FC GPU 的不同使用模式、不同容器并发启动数量、不同模型管理需求等维度,FC GPU 上模型存储的最佳实践如下:


  • 在按量 GPU 使用场景下,由于需要极速的启动性能,推荐使用【通用 NAS-性能型】。
  • 在闲置 GPU 使用场景下,由于容器启动耗时不敏感,推荐使用【oss】。
  • 在大并发GPU容器同时启动使用场景下,为了避免 NAS 的单点带宽瓶颈,推荐【oss accl】。
  • 在多地域单元化部署使用场景下,为了减少模型管理复杂度与跨域同步难度,推荐【oss、oss accl】。


测试数据


我们通过对 Stable Diffusion 模型切换耗时的测量,对比了不同模型存储方法的性能差异。本次测试的选取的模型和模型尺寸大小如下表。


模型 尺寸(GB)
Anything-v4.5-pruned-mergedVae.safetensors 3.97
Anything-v5.0-PRT-RE.safetensors 1.99
CounterfeitV30_v30.safetensors 3.95
Deliberate_v2.safetensors 1.99
DreamShaper_6_NoVae.safetensors 5.55
cetusMix_Coda2.safetensors 3.59
chilloutmix_NiPrunedFp32Fix.safetensors 3.97
pastelmix-fp32.ckpt 3.97
revAnimated_v122.safetensors 5.13
sd_xl_base_1.0.safetensors 6.46

image.png

第 1 次模型切换耗时(单位:秒)

image.png

第 2 次模型切换耗时(单位:秒)

测试结论如下:

  • PageCache 使能。在这个场景中,Stable Diffusion 第一次加载模型时,会读取模型文件两次,其中一次用于计算模型文件的哈希值。后续触发模型加载时,则只读取模型文件一次。第一次访问 NAS 挂载点上的文件时,会在内核填充相应的 PageCache,从而加速第二次访问。访问 OSS 挂载点不具备使能 PageCache 的特性。
  • 影响耗时的其他因素。除了存储介质本身,模型加载耗时还与应用本身的实现细节相关,如应用本身的吞吐能力,读取模型文件时的 IO 模式(顺序读取、随机读取)。


相关链接:

[1] 存储选型

https://www.alibabacloud.com/help/zh/functioncompute/fc-3-0/product-overview/selection-of-function-storage

[2] 文件存储 NAS

https://www.alibabacloud.com/help/zh/functioncompute/fc-3-0/user-guide/configure-a-nas-file-system-1

[3] 对象存储 OSS

https://www.alibabacloud.com/help/zh/functioncompute/fc-3-0/user-guide/configure-an-oss-file-system-1

[4] GPU 镜像大小限制是多少?

https://www.alibabacloud.com/help/zh/functioncompute/fc-3-0/support/faq-about-gpu-accelerated-instances-1?spm=a2c63.p38356.help-menu-search-2508973.d_9#section-wzb-j8z-3cp

[5] 自定义镜像函数状态及调用

https://www.alibabacloud.com/help/zh/functioncompute/fc-3-0/user-guide/states-of-custom-container-functions

[6] NAS 常见问题

https://www.alibabacloud.com/help/zh/nas/product-overview/faq-2#section-uru-2sy-5hd

[7] OSS 使用限制及性能指标

https://help.aliyun.com/zh/oss/product-overview/limits

[8] OSS 加速器

https://help.aliyun.com/zh/oss/user-guide/overview-77/

[9] 常用工具

https://help.aliyun.com/zh/oss/developer-reference/common-tools/

[10] 跨区域复制

https://help.aliyun.com/zh/oss/user-guide/cross-region-replication-overview/

[11] 链接

https://www.alibabacloud.com/help/zh/nas/product-overview/billing-of-general-purpose-nas-file-systems

[12] 链接

https://www.aliyun.com/price/product?spm=a2c4g.11186623.0.0.46047158ja7nw5#/nas/detail/nas_bag

[13] 链接

https://help.aliyun.com/zh/oss/product-overview/billing-overview/

[14] 链接

https://www.aliyun.com/price/product?spm=a2c4g.11186623.0.0.46047158ja7nw5#/oss/detail/oss

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
打赏
0
1
1
0
12623
分享
相关文章
AI 短剧遇上函数计算,一键搭建内容创意平台
为了帮助更多内容创作者和企业快速实现 AI 短剧创作,函数计算 FC 联合百炼联合推出“AI 剧本生成与动画创作解决方案”,通过函数计算 FC 构建 Web 服务,结合百炼模型服务和 ComfyUI 生图平台,实现从故事剧本撰写、插图设计、声音合成和字幕添加到视频合成的一站式自动化流程。创作者只需通过简单操作,就能快速生成高质量的剧本,并一键转化为精美的动画。
VideoWorld:字节开源自回归视频生成模型,支持输入视频指导AI生成视频!弥补文本生成视频的短板
VideoWorld 是由字节跳动、北京交通大学和中国科学技术大学联合推出的自回归视频生成模型,能够从未标注的视频数据中学习复杂知识,支持长期推理和规划任务。
78 8
VideoWorld:字节开源自回归视频生成模型,支持输入视频指导AI生成视频!弥补文本生成视频的短板
CogView-3-Flash:智谱首个免费AI图像生成模型,支持多种分辨率,快速生成创意图像
CogView-3-Flash 是智谱推出的首个免费AI图像生成模型,支持多种分辨率,快速生成高质量图像,广泛应用于广告、设计、艺术创作等领域。
43 6
CogView-3-Flash:智谱首个免费AI图像生成模型,支持多种分辨率,快速生成创意图像
CogVideoX-Flash:智谱首个免费AI视频生成模型,支持文生视频、图生视频,分辨率最高可达4K
CogVideoX-Flash 是智谱推出的首个免费AI视频生成模型,支持文生视频、图生视频,最高支持4K分辨率,广泛应用于内容创作、教育、广告等领域。
108 5
CogVideoX-Flash:智谱首个免费AI视频生成模型,支持文生视频、图生视频,分辨率最高可达4K
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多种配置,包括CPU+GPU、FPGA等,适用于人工智能、机器学习和深度学习等计算密集型任务。本文整理了阿里云GPU服务器的优惠价格,涵盖NVIDIA A10、V100、T4等型号,提供1个月、1年和1小时的收费明细。具体规格如A10卡GN7i、V100-16G卡GN6v等,适用于不同业务场景,详情见官方页面。
昇腾AI行业案例(七):基于 Conformer 和 Transformer 模型的中文语音识别
欢迎学习《基于 Conformer 和 Transformer 模型的中文语音识别》实验。本案例旨在帮助你深入了解如何运用深度学习模型搭建一个高效精准的语音识别系统,将中文语音信号转换成文字,并利用开源数据集对模型效果加以验证。
31 12
昇腾AI行业案例(五):基于 DANet 和 Deeplabv3 模型的遥感图像分割
欢迎学习《基于 DANet 和 Deeplabv3 模型的遥感图像分割》实验。在本实验中,你将深入了解如何运用计算机视觉(CV)领域的 AI 模型,搭建一个高效精准的遥感地图区域分割系统,并利用开源数据集和昇腾 AI 芯片对模型效果加以验证。
26 0
昇腾AI行业案例(五):基于 DANet 和 Deeplabv3 模型的遥感图像分割
昇腾AI行业案例(四):基于 Bert 模型实现文本分类
欢迎学习《昇腾行业应用案例》的“基于 Bert 模型实现文本分类”实验。在本实验中,您将学习如何使用利用 NLP (natural language processing) 领域的AI模型来构建一个端到端的文本系统,并使用开源数据集进行效果验证。为此,我们将使用昇腾的AI硬件以及CANN等软件产品。
22 0
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
阿里云GPU云服务器怎么样?阿里云GPU结合了GPU计算力与CPU计算力,主要应用于于深度学习、科学计算、图形可视化、视频处理多种应用场景,本文为您详细介绍阿里云GPU云服务器产品优势、应用场景以及最新活动价格。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考

热门文章

最新文章

相关产品

  • 函数计算
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等