本场景将介绍使用函数计算产品 Function Compute 部署深度学习 AI 推理平台的最佳实践,基于函数计算 Function Compute 建立一个TensorFlow Serverless AI 推理平台。
让人工智能领域开发者可以更专注于算法模型的训练与业务逻辑的开发,将计算集群的运维交予函数计算处理,提高工作效率。
最终效果:通过上传一个猫或狗的照片, 识别出这个照片里面的动物是猫还是狗。
背景知识函数计算 Function Compute 是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功能。函数计算帮助您无需管理服务器(Serverless),仅专注于函数代码就能快速搭建应用。函数计算能够弹性地伸缩,您只需要按使用量付费。
优势总结:基于函数计算进行 AI 推理等 CPU 密集型的主要优势
1.上手简单, 只专注业务逻辑开发, 极大提高工程开发效率。
自建方案有太多学习和配置成本,如针对不同场景,ESS 需要做各种不同的参数配置
系统环境的维护升级等。
3.毫秒级弹性扩容,保证弹性高可用,同时能覆盖延迟敏感和成本敏感类型。
4.在 CPU 密集型的计算场景下, 通过设置合理的组合计费模式, 在如下场景中具有成本优势:
请求访问具有明显波峰波谷, 其他时间甚至没有请求
有一定稳定的负载请求, 但是有部分时间段请求量突变剧烈
场景将介绍使用函数计算产品部署深度学习 AI 推理平台的最佳实践,基于函数计算 Function Compute。
让人工智能领域开发者可以更专注于算法模型的训练与业务逻辑的开发,将计算集群的运维工作交给函数计算,提高工作效率。
最终效果:
通过上传一个猫或狗的照片, 识别出这个照片里面的动物是猫还是狗。DEMO 示例效果入口: http://sz.mofangdegisn.cn。
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正确设置如下所示:
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的值修改为步骤三中的挂载点地址。修改后如下图所示:
1.执行以下命令初始化NAS。
fun nas init
2.查看本地NAS的目录位置。
fun nas info
命令输出如下所示:
3.执行以下命令安装相关依赖。
fun install -v
命令执行成功结果如下所示。
该命令将根据Funfile文件中的定义:
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按钮,查看预测识别结果。
函数计算具有动态伸缩的特性, 根据并发请求量,自动弹性扩容出执行环境来执行环境。当预留的实例不能满足调用函数的请求时, 函数计算就自动进行按需扩容实例供函数执行,此时的调用就有冷启动的过程。使用预留模式可以消除冷启动毛刺问题,详情请参见预留实例。
最近有同学面了快手,分享一波面经~ 快手前端实习(一、二)面经(3.28) 一面: 1...
操作场景 创建裸金属服务器后,您可以通过多种方式进行登录。本文介绍在管理控制...
本月,来自谷歌的开源机器学习和深度学习框架 Tensorflow 已经五岁了。 TensorFl...
内容介绍 如果您希望给某些房间中加入进房限制或者上麦限制,也就是仅允许指定的...
1.政府大数据治理成为政府关心的一个重要议题。 大数据是从各种渠道收集的大量数...
TOP云 (west.cn)2月6日消息,根据最新出炉的dnj交易榜显示,两枚交通工具相关 ...
科学技术的不断发展,互联网信息技术的不断革新,大数据时代已经到来,大数据收...
jsp 云虚拟主机 价格便宜的是哪里?相对于ASP PHP 来说,JSP是比较耗费服务器的...
随着人们生活水平和生活品味的提高,对于产品的要求也越来越高,特别是这个注重...
9月18日,2020云栖大会上,阿里云数据中台产品全面升级:升级产品Quick Audience...