场景介绍

基于阿里云函数计算建设一个TensorFlow Serverless AI推理平台。。

背景常识

函数计算 Function Compute 是事件驱动的全托管计算服务。应用函数计算,您无需洽购与治理服务器等基础设施,只需编写并上传代码。函数计算为您筹备好计算资源,弹性地牢靠地运行工作,并提供日志查问、性能监控和报警等性能。函数计算帮忙您无需治理服务器(Serverless),仅专一于函数代码就能疾速搭建利用。函数计算可能弹性地伸缩,您只须要按使用量付费。
劣势总结:基于函数计算进行 AI 推理等 CPU 密集型的次要劣势
1.上手简略, 只专一业务逻辑开发, 极大进步工程开发效率。

自建计划有太多学习和配置老本,如针对不同场景,ESS 须要做各种不同的参数配置
零碎环境的保护降级等。

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

3.毫秒级弹性扩容,保障弹性高可用,同时能笼罩提早敏感和老本敏感类型。

4.在 CPU 密集型的计算场景下, 通过设置正当的组合计费模式, 在如下场景中具备老本劣势:

申请拜访具备显著波峰波谷, 其余工夫甚至没有申请
有肯定稳固的负载申请, 然而有局部时间段申请量渐变激烈

场景体验

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

让人工智能畛域开发者能够更专一于算法模型的训练与业务逻辑的开发,将计算集群的运维工作交给函数计算,进步工作效率。

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

步骤一:连贯ECS服务器

ECS资源地址:https://developer.aliyun.com/...
参考文章步骤链接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 fastyum -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 gitgit clone https://github.com/awesome-fc/cat-dog-classify.git

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

cd cat-dog-classifyvim 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按钮,查看预测辨认后果。

函数计算具备动静伸缩的个性, 依据并发申请量,主动弹性扩容出执行环境来执行环境。当预留的实例不能满足调用函数的申请时, 函数计算就主动进行按需扩容实例供函数执行,此时的调用就有冷启动的过程。应用预留模式能够打消冷启动毛刺问题,详情请参见预留实例。