python为你写诗_急速搭建 Serverless AI 应用:为你写诗

背景

AI model serving 是函数计算一个比较典型的应用场景。数据科学家训练好模型以后往往需要找软件工程师把模型变成系统或者服务,通常把这个过程称之为 model serving。函数计算无需运维和弹性伸缩的特性,正好符合数据科学家对高可用分布式系统的诉求。本文将介绍把一个 TensorFlow CharRNN 训练的自动写五言绝句古诗的模型部署到函数计算的例子。

基本上所有的 FaaS 平台为了减少平台的冷启动,都会设置代码包限制,函数计算也不例外。由于 python TensorFlow 依赖库和训练的模型的文件有数百兆,即使压缩也远超了函数计算 50M 代码包大小的限制。对于这类超大体积的文件,函数计算命令行 Fun 工具原生支持了这种大依赖部署(3.2.0 版本以上),按照向导的提示操作即可。

快速开始

1. 克隆 poetry 项目git clone https://github.com/vangie/poetry.git

2. 安装依赖

由于训练模型的脚本比较费时,所以训练好的模型已经提前存放在 model 目录中。如果您想重新训练模型,执行 make train 即可。

$ fun install

using template:template.yml

start installingfunctiondependencies without docker

building poetry/poetry

Funfileexist,Funwill use container to build forcely

Step1/3:FROM registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-python3.6:build-1.7.7

--->373f5819463b

Step2/3:WORKDIR/code

--->Usingcache

--->f9f03330ddde

Step3/3:RUN fun-install pip install tensorflow

--->Usingcache

--->af9e756d07c7

sha256:af9e756d07c77ac25548fa173997065c9ea8d92e98c760b1b12bab1f3f63b112

Successfullybuilt af9e756d07c7

Successfullytagged fun-cache-1b39d414-0348-4823-b1ec-afb05e471666:latest

copyingfunctionartifact to/Users/ellison/poetry

copy from container/mnt/auto/.to localNasDir

InstallSuccess

Tipsfornext step

======================

*InvokeEventFunction:funlocalinvoke

*InvokeHttpFunction:funlocalstart

*BuildHttpFunction:fun build

*DeployResources:fun deploy

3. 本地运行函数

执行 fun local invoke 可以在本地运行函数,正确的返回内容如下:

$ funlocalinvoke poetry

MissinginvokeName argument,Funwill use the firstfunctionpoetry/poetry as invokeName

skip pulling image aliyunfc/runtime-python3.6:1.7.7...

FunctionComputepython3 runtime inited.

FCInvokeStartRequestId:b125bd4b-0d23-447b-8d8c-df36808a458b

.......(省略了部分日志)

犬差花上水风,一月秋中时。

江水无人去,山山有不知。

江山一中路,不与一时还。

山水不知处,江阳无所逢。

山风吹水色,秋水入云中。

水月多相见,山城入水中。

江云无处处,春水不相归。

野寺春江远,秋风落月深。

RequestId:938334c4-5407-4a72-93e1-6d59e52774d8BilledDuration:14074msMemorySize:1998MBMaxMemoryUsed:226MB

4. 部署函数

通过 fun deploy 部署函数并上传函数依赖到 nas。

fun deploy

fun 会自动完成依赖部署,当 fun deploy 检测到打包的依赖超过了平台限制(50M),会进入到配置向导,帮助用户自动化的配置。

选择 “Y” 之后就不需要做其他事情,等到部署完成即可。

5. 运行远端函数

通过 fun invoke 调用远端函数(也可以通过函数计算控制台调用):

$ fun invoke

usingtemplate:template.yml

MissinginvokeName argument,Funwillusethe firstfunctionpoetry/poetryasinvokeName

=========FC invokeLogsbegin=========

省略部分日志...

Restoredfrom:/mnt/auto/model/poetry/model-10000

FCInvokeEndRequestId:c0d7947d-7c44-428e-a5a0-30e6da6d1d0f

Duration:18637.47ms,BilledDuration:18700ms,MemorySize:2048MB,MaxMemoryUsed:201.10MB

=========FC invokeLogsend=========

FCInvokeResult:

役不知此月,不是无年年。

何事无时去,谁堪得故年。

不知无限处,相思在山山。

何必不知客,何当不有时。

相知无所见,不得是人心。

不得无年日,何时在故乡。

不知山上路,不是故人人。

至此,已经将古诗创作程序成功部署到函数计算了。

更多参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值