1.AI部署简介
对大部分 TensorFlow 模型来说,部署流程是相同的:
1. 将图像固化为 Protobuf 二进制文件
2. 调整推断代码,使它可以处理固化的图
3. 容器化应用程序
4. 在最上面加上 API 层
本文提出了一个大规模部署 AI 的高效工作流程:
固化图并将推断封装在 API 下
重复使用会话和图,缓存输入和输出
用 Docker 容器化应用程序(包括 API 层)
将大规模应用程序与 Kubernetes 一起部署在你选择的云上
将训练从推断中分离出来
建立任务队列,将较小的任务确立为优先级
使用这些技术,你就可以在成本最小、速度和效率最大的情况下大规模部署 AI。
2.具体部署
客户端 ----> web服务(flask或者tornado) --grpc或者rest--> tensorflow serving
- 深度学习Tensorflow生产环境部署(下·模型部署篇)
- Tensorflow 2.x模型-部署与实践
- 如何部署tensorflow训练的模型
- 将tensorflow模型部署到服务器上
- Tensorflow如何进行工业部署?
确定好输入和输出节点,把模型导出成SavedModel格式,
然后用TF-Serving启动服务,
调用方发http请求或者grpc请求就可以拿到预测结果
可以做成一个http服务,提供一个web接口,模型只在服务器上就可以了.
使用时候客户端通过http请求上传要识别的图片等数据到服务端接口,服务端计算后返回给客户端.
在服务端训练出特定的算法模型——再将这个模型部署到服务端或者终端(以后大多数场景下是部署到终端)——需要服务端AI框架到终端AI推理框架的转换工具。
Tensorflowserving:
- 模型部署 TensorFlowServing
- tensorflow2.0基础(10)——使用tensorflow-serving部署模型
- Tensorflow-serving部署模型到服务器
- tensorflow serving部署keras或tf2.0模型
- docker部署tensorflowserving以及模型替换
- Tensorflow-serving+Docker安装+模型部署
- 用Docker容器自带的tensorflowserving部署模型对外服务(成功率100%)
- TensorFlow Serving + Docker +Tornado机器学习模型生产级快速部署
常用的做法如使用flask、Django、tornado等web框架创建一个服务器app,这个app在启动后就会一直挂在后台,然后等待用户使用客户端POST一个请求上来(例如上传了一张图片的url),app检测到有请求,就会下载这个url的图片,接着调用你的模型,得到推理结果后以json的格式把结果返回给用户。
这个做法对于简单部署来说代码量不多,对于不熟悉web框架的朋友来说随便套用一个模板就能写出来,但是也会有一些明显的缺点:
1. 需要在服务器上重新安装项目所需的所有依赖。
2. 当接收到并发请求的时候,服务器可能要后台启动多个进程进行推理,造成资源紧缺。
3. 不同的模型需要启动不同的服务。
而为了解决第一个问题,Docker是最好的方案。