基于阿里云函数计算实现AI推理

本文涉及的产品
函数计算FC,每月15万CU 3个月
日志服务 SLS,月写入数据量 50GB 1个月
文件存储 NAS,50GB 3个月
简介: 本场景基于函数计算建立一个TensorFlow Serverless AI推理平台。

体验简介

本场景将介绍使用函数计算产品 Function Compute 部署深度学习 AI 推理平台的最佳实践,基于函数计算 Function Compute 建立一个TensorFlow Serverless AI 推理平台。

让人工智能领域开发者可以更专注于算法模型的训练与业务逻辑的开发,将计算集群的运维交予函数计算处理,提高工作效率。

最终效果:通过上传一个猫或狗的照片, 识别出这个照片里面的动物是猫还是狗。

背景知识

函数计算 Function Compute 是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功能。函数计算帮助您无需管理服务器(Serverless),仅专注于函数代码就能快速搭建应用。函数计算能够弹性地伸缩,您只需要按使用量付费。
优势总结:基于函数计算进行 AI 推理等 CPU 密集型的主要优势
1.上手简单, 只专注业务逻辑开发, 极大提高工程开发效率。

自建方案有太多学习和配置成本,如针对不同场景,ESS 需要做各种不同的参数配置
系统环境的维护升级等。

  1. 免运维,函数执行级别粒度的监控和告警。

3.毫秒级弹性扩容,保证弹性高可用,同时能覆盖延迟敏感和成本敏感类型。

4.在 CPU 密集型的计算场景下, 通过设置合理的组合计费模式, 在如下场景中具有成本优势:

请求访问具有明显波峰波谷, 其他时间甚至没有请求
有一定稳定的负载请求, 但是有部分时间段请求量突变剧烈

场景体验

场景将介绍使用函数计算产品部署深度学习 AI 推理平台的最佳实践,基于函数计算 Function Compute。

让人工智能领域开发者可以更专注于算法模型的训练与业务逻辑的开发,将计算集群的运维工作交给函数计算,提高工作效率。

最终效果:
通过上传一个猫或狗的照片, 识别出这个照片里面的动物是猫还是狗。DEMO 示例效果入口: http://sz.mofangdegisn.cn

步骤一:连接ECS服务器

ECS资源地址
参考文章步骤链接ECS

步骤二:开通函数计算服务

在使用函数计算前,您需要在阿里云产品详情页开通服务。

步骤三:安装Fun工具

Fun 是一个用于支持Serverless应用部署的工具,能帮助您便捷地管理函数计算、API 网关和日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建和部署操作。
1.将Fun的安装包下载到本地。请将下面的FUN_VERSION变量的值设置为最新版本号,最新版本号请参见Releases。以下操作将在ECS服务器上安装和配置Fun。

FUN_VERSION="v3.6.1" 
curl -o fun-linux.zip https://gosspublic.alicdn.com/fun/fun-$FUN_VERSION-linux.zip

2.安装解压工具unzip,并使用unzip将下载的Fun安装包解压到当前目录。

yum -y install unzip 
unzip fun-linux.zip

3.将解压出来的可执行文件移动到系统路径。

mv fun-*-linux /usr/local/bin/fun

4.配置Fun关联的阿里云账号和调用SDK的超时时间等信息。

fun config

请参考以下信息输入您的阿里云账号ID、AccessKeyID和AccessKey密钥等信息。

  • Aliyun Account
    ID:子用户名称中@符号后面部分就是给您分配的主账号ID,例如u-zftb79nc@105997185439中包含的账号ID为105997185439
  • Aliyun Access Key ID和Aliyun Access Key Secret:请使用平台提供给您的子账号AK ID和AK
    Secret。

在这里插入图片描述

  • The timeout in seconds for each SDK client
    invoking:建议将超时时间设置长一点(例如10000),防止在上传部署包时发生超时中断。

正确设置如下所示:
在这里插入图片描述

步骤四:安装Docker

1.安装Docker的依赖库。

yum install -y yum-utils device-mapper-persistent-data lvm2

2.添加docker-ce的软件源信息。

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装docker-ce。

yum makecache fast
yum -y install docker-ce

4.启动Docker服务。

systemctl start docker

步骤五:创建NAS文件系统挂载点

1.登录NAS控制台
2.选择文件系统 > 文件系统列表。
3.在左上角选择云资源所在地域。
在这里插入图片描述
4.找到体验页面左侧资源信息栏中的NAS文件系统ID对应的文件系统,单击更多 > 添加挂载点。
5.在添加挂载点页面,配置如下参数。
在这里插入图片描述
6.查看挂载点地址,如下图。
在这里插入图片描述

步骤六:下载项目代码

1.安装Git工具并使用Git克隆项目代码到本地。

yum -y install git
git clone https://github.com/awesome-fc/cat-dog-classify.git

2.编辑项目中FUN的部署模板文件template.yml,修改日志服务项目名称和NAS存储挂载配置。
a.使用vim打开模板文件。

cd cat-dog-classify
vim template.yml

b.输入以下命令全局替换日志服务项目名称。

:%s/log-ai-pro/log-ai-test/g

命令中log-ai-test为修改后的项目名称,您可以替换为您的自定义项目名称。

c.修改NAS挂载配置。默认auto方式将会自动创建NAS文件系统,这里我们修改填写为平台预创建好的NAS文件系统的信息。

      VpcConfig:
        VpcId: 'vpc-uf6u8*****zf1r4'
        VSwitchIds: [ 'vsw-uf6******038fy' ]
        SecurityGroupId: 'sg-uf6e******w6qz'
      NasConfig:
        UserId: 10003
        GroupId: 10003
        MountPoints:
          - ServerAddr: '33****u83.cn-shanghai.nas.aliyuncs.com:/'
            MountDir: '/mnt/auto'

修改的参数说明如下:

  • VpcConfig中的VpcId、VSwitchId和SecurityGroupId信息请到ECS控制台的实例详情页查看。
  • ServerAddr的值修改为步骤三中的挂载点地址。

修改后如下图所示:
在这里插入图片描述

步骤七:将依赖文件上传到NAS

1.执行以下命令初始化NAS。

fun nas init

2.查看本地NAS的目录位置。

fun nas info

命令输出如下所示:
在这里插入图片描述

3.执行以下命令安装相关依赖。

fun install -v

命令执行成功结果如下所示。

在这里插入图片描述
该命令将根据Funfile文件中的定义:

  • 将依赖下载到.fun/nas/auto-default/classify/python目录中。
  • 将model中的模型文件拷贝到.fun/nas/auto-default/classify/model/目录中。

4.将本地NAS目录同步到阿里云NAS存储中。

fun nas sync

命令执行结果如下所示。
在这里插入图片描述
说明 同步的文件有700M左右,内容较多,同步时间约40分钟左右,请耐心等待。

5.查看文件是否上传到远程NAS目录。

fun nas ls nas://classify:/mnt/auto/

步骤九:部署到函数计算平台

执行以下操作将函数部署到函数计算平台:

fun deploy -y

执行结果如下图所示,图中19176540-18576685985*.test.functioncompute.com为函数计算平台分配的临时域名,有效期10天,每天有1000次的调用限制。
在这里插入图片描述
如果部署时出现如下错误信息。
在这里插入图片描述
问题原因:模板配置文件中定义的日志项目名称已存在。
解决方法:请修改template.yml文件中日志项目名称。

步骤九:测试预测服务

1.部署完成后,等待30秒钟左右,在浏览器打开临时域名,如下图所示。
在这里插入图片描述
如果访问页面时出现类似下面引入模块错误。
在这里插入图片描述
问题原因:由于网络问题,NAS同步内容不完整。
解决方法:请重新执行命令fun nas sync。

2.上传一张猫或狗的图片。
在这里插入图片描述
3.单击Predict按钮,查看预测识别结果。
在这里插入图片描述
函数计算具有动态伸缩的特性, 根据并发请求量,自动弹性扩容出执行环境来执行环境。当预留的实例不能满足调用函数的请求时, 函数计算就自动进行按需扩容实例供函数执行,此时的调用就有冷启动的过程。使用预留模式可以消除冷启动毛刺问题,详情请参见预留实例。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3天前
|
机器学习/深度学习 数据采集 人工智能
文档智能 & RAG 让AI大模型更懂业务 —— 阿里云LLM知识库解决方案评测
随着数字化转型的深入,企业对文档管理和知识提取的需求日益增长。阿里云推出的文档智能 & RAG(Retrieval-Augmented Generation)解决方案,通过高效的内容清洗、向量化处理、精准的问答召回和灵活的Prompt设计,帮助企业构建强大的LLM知识库,显著提升企业级文档管理的效率和准确性。
|
2天前
|
人工智能 自然语言处理 机器人
对话阿里云 CIO 蒋林泉:AI 时代,企业如何做好智能化系统建设?
10 月 18 日, InfoQ《C 位面对面》栏目邀请到阿里云 CIO 及 aliyun.com 负责人蒋林泉(花名:雁杨),就 AI 时代企业 CIO 的角色转变、企业智能化转型路径、AI 落地实践与人才培养等主题展开了讨论。
146 19
对话阿里云 CIO 蒋林泉:AI 时代,企业如何做好智能化系统建设?
|
3天前
|
人工智能 JSON 安全
在阿里云快速启动LibreChat轻松玩转AI对话
阿里云计算巢提供了LibreChat快速部署能力,使用者不需要自己下载代码,不需要自己安装复杂的依赖,不需要了解底层技术,只需要在控制台图形界面点击几下鼠标就可以快速部署并启动LibreChat,非技术同学也能轻松搞定。
|
2天前
|
人工智能 关系型数据库 数据中心
2024 OCP全球峰会:阿里云为代表的中国企业,引领全球AI网络合作和技术创新
今年的OCP(Open Compute Project)峰会于2024年10月14日至17日在美国加州圣何塞举行,在这场全球瞩目的盛会上,以阿里云为代表的中国企业,展示了他们在AI网络架构、液冷技术、SRv6和广域网等前沿领域的强大创新能力,持续引领全球合作与技术创新。
|
2天前
|
人工智能 弹性计算 自然语言处理
触手可及,函数计算玩转 AI 大模型
在AI技术迅速发展的背景下,大模型正推动各行业的智能化转型。企业为抓住机遇,纷纷部署AI大模型。阿里云函数计算凭借按量付费、高弹性和快速交付的特点,成为企业部署AI大模型的理想选择。本文介绍阿里云函数计算的技术解决方案,分析其优势,并通过具体应用场景评测其在AI大模型部署中的表现。
|
3天前
|
人工智能 自然语言处理 数据可视化
阿里云AI大模型助力客户对话分析——全方位提升服务与体验
随着数字化转型的推进,企业愈发重视客户互动数据的价值。阿里云推出了一套基于AI大模型的客户对话分析解决方案,通过自动化手段分析大量客户对话数据,提取有价值信息,优化服务流程,提升客户体验。本文将结合技术文档和实际体验,全面评测这一解决方案。
10 2
|
2天前
|
人工智能 弹性计算 Serverless
函数计算,如何跟AI大模型互动?
阿里云函数计算提供了部署AI大模型的详细实践指南,包括弹性伸缩和按量付费等优势。建议增加视频教程和专业术语解释,以帮助初学者更快上手。未来可进一步优化成本预测工具、性能测试及高级配置选项,提升用户体验。
13 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
Serverless助力AI计算:阿里云ACK Serverless/ECI发布GPU容器实例
ACK Serverless(Serverless Kubernetes)近期基于ECI(弹性容器实例)正式推出GPU容器实例支持,让用户以serverless的方式快速运行AI计算任务,极大降低AI平台运维的负担,显著提升整体计算效率。
11198 0
|
1月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
120 14
|
2月前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

热门文章

最新文章