滴滴云近期推出了弹性推理服务 EIS(Elastic Inference Service)。借助滴滴云 EIS 可快速将在主流深度学习框架上训练的模型发布为在线推理服务,性能较 TensorFlow Serving 有明显的提高。
相比较传统的推理服务发布模式,滴滴云弹性推理服务 EIS 具有如下特点:
本教程通过一个 Inception-v3 模型的例子说明如何在滴滴云弹性推理服务 EIS 上部署模型,进而使用该模型执行在线推理任务。本教程包括如下步骤:
滴滴云弹性推理服务 EIS 目前支持 TensorFlow、Pytorch、Caffe、Caffe2 等主流深度学习框架。
在上传模型文件之前,请将模型文件压缩成 tar、tar.gz、tar.bz2、tgz、zip 中的任意一种压缩格式。
模型文件目录格式如下图所示:
模型文件准备好之后需要上传到滴滴云对象存储服务 S3上。如何使用滴滴云对象存储服务 S3 请参见:
本教程使用的 inception.tar 文件上传后如下图所示:
模型文件上传到滴滴云对象存储 S3 之后,需导入到滴滴云弹性推理服务 EIS 的模型空间。
用户可管理模型空间内的深度学习模型,一个模型可对应多个不同版本的模型文件。导入模型文件时,先创建一个模型,然后导入模型文件。
登录滴滴云控制台,在上方导航栏点击“机器学习”,进入机器学习产品线。在二级导航栏点击“模型空间”,管理深度学习模型。
在模型空间页面,点击“创建模型”按钮,在如下弹出的对话框中输入相关参数:
模型文件创建之后,在“我的模型”模块可管理模型:
点击模型模型名称指向的链接,进入模型详情页面:
点击“上传文件”,将滴滴云 S3 上的 Inception-v3 模型文件导入模型空间:
导入成功后如下图所示:
模型文件就绪之后,就可以创建 Inception-v3 模型的推理服务了。
在滴滴云机器学习产品线模块,点击“弹性推理”,进入弹性推理页面,点击“创建推理服务”按钮:
选择刚刚上传的模型文件和对应的配置规格,点击“立即创建”按钮即可完成弹性推理服务的创建。
检查弹性推理服务的创建进度和状态,推理服务状态变为“可用”之后,就完成了 Inception-v3 模型推理服务的在线发布。
当 Inception-v3 模型推理服务状态为“可用”时,可通过推理服务释放的 API 执行推理任务。
inference-client 是滴滴云推理服务的 HTTP 客户端示例代码,目前支持 C++、Golang、Java、Python 等编程语言。这里以 Python Client Demo 为例,Python 文件夹里提供了一个咖菲猫的图片。
Inference Client GitHub 地址: https://github.com/didiyun/inference-client/
首先安装依赖环境,依赖的软件包在 requirements.txt 中有定义。
sudo pip install -r requirements.txt
下载下来 Demo 代码,编辑 inception.py。
修改 model spec 和 Token,其中 Token 为我们创建的 API Token,可以在这里 https://app.didiyun.com/#/api/authtoken 创建。
接下来获取推理服务的 URL,在我的推理服务页面复制 URL 链接。
执行如下命令:
python inception.py
结果如下:
示例图片识别为" taby cat",推理服务执行成功!