微信号:ai-front

介绍:面向AI爱好者、开发者和科学家,提供最新最全AI领域技术资讯、一线业界实践案例、搜罗整理业界技术分享干货、最新AI论文解读。每周一节技术分享公开课,助力你全面拥抱人工智能技术。

AWS推出MXNet模型服务器

2017-12-11 19:19 放大招

作者|Hagay Lupesko, Yao Wang, and Ruofei Yu
策划|薛命灯
编辑|Emily

AI 前线导读 近日,AWS 发布了 Model Server for Apache MXNet。借助 Model Server,开发人员可以方便快速、大规模地使用 MXNet。


更多干货内容请关注微信公众号“AI 前线”,ID:ai-front
什么是 Model Server?

Model Server for Apache MXNet(MMS)是一个开源组件,旨在简化深度学习模型的部署。部署深度学习模型不是一项简单的任务,它要求收集各种模型文件、搭建服务栈、初始化和配置深度学习框架、暴露端点、实时发送度量指标,并运行自定义的预处理和后置处理逻辑代码,而这些仅仅是繁杂步骤中的一部分。尽管每一个细项不会很复杂,但从整体来看,模型部署过程繁琐而拖沓。

AWS 开源的 MMS 极大简化了 MXNet 的深度学习模型部署过程。MMS 提供了以下主要特性:

  • 提供了一个可以将多个模型文件打包和导出到单个“模型压缩”文件的工具,这个压缩包里包含了所有 MXNet 需要的模型。

  • 自动搭建服务栈,包括用于推理的 HTTP 端点、基于 MXNet 的引擎。

  • 预配置的 Docker 镜像,包括 NGINX、MXNet 和 MMS。

  • 可以自定义推理执行管道的每一个步骤,从模型初始化、预处理和推理,到后置处理和模型输出。

  • 提供实时的运维度量指标,可用于监控推理服务和端点,包含了延迟、资源使用情况和错误信息。

  • 支持 OpenAPI 规范,可以自动生成主流编程语言的客户端代码,如 Java、JavaScript、C# 等。

可以通过 PyPi 安装 MMS,或者直接从 GitHub 上下载。MMS 可以运行在 Mac 和 Linux 上。如果要在生产环境中使用,我们建议使用 GitHub 仓库上预配置好的 Docker 镜像。

下图是参考架构图:

Model Server 快速入门

下面的示例使用了一个预训练的 SqueezeNet v1.1 物体检测模型,该模型可以在 MMS Model Zoo 上找到。

首先需要安装 Python,这是运行 MMS 唯一的先决条件。

接下来,通过 PyPi 来安装 MMS。

运行 MMS,并指定模型压缩包的 URL 或本地文件:

在执行这个命令之后,MMS 进程开始启动,并下载和解压缩模型文件,配置好服务,然后开始监听来自 /squeezenet/predict 端点的请求(本地默认地址是 localhost,端口 8080,可配置)。

为了测试刚刚启动的服务,可以通过 HTTP 发送一个推理请求:

返回结果如下:

导出模型

MMS 将模型打包成特定的格式。它提供了一个命令行工具 mxnet-model-export 用于打包模型并导出成单独的压缩包。压缩包里包含了模型所有相关的元数据。在初始化服务端点时,MMS 会读取压缩包。

下图展示了模型的导出过程:

从图中可以看到,需要打进压缩包的内容包括模型的神经网络架构和参数(层、算子和权重),以及服务的输入、输出的数据类型和张量模型定义。不过,在实际使用当中,可能不仅仅需要神经网络。例如,很多视觉模型需要进行预处理,并要求对输入图像进行转换。而分类模型一般要求进行后置处理,以便对分类结果进行排序和梳理。为了解决这些问题,MMS 将自定义的处理逻辑代码和附带文件也打进压缩包中,在运行时就可以使用这些代码和文件。这个强大的机制可以将整个处理管道所需要的东西一次性打包:从输入的预处理、自定义推理,到应用类识别标签。

更多关于压缩包导出的内容可以参看 MMS 文档:

https://github.com/awslabs/mxnet-model-server/blob/master/docs/export.md。

为了更好地了解 MMS,我们建议从 Single Shot MultiBox Detector(SSD)教程开始,该教程将告诉我们如何导出和运行一个 SSD 模型。更多示例可以参看 GitHub 上的文档:

https://github.com/awslabs/mxnet-model-server/。

 
AI前线 更多文章 吴恩达再放大招:成立Landing.ai并签约富士康,这次瞄准的是制造业工人的饭碗 苏宁场景实践:小包裹背后的大智慧 论文导读 | DeepXplore:深度学习系统的自动化白盒测试 2017 年回顾:NLP、深度学习与大数据 如何评价清华大学开设《自动驾驶》课程?
猜您喜欢 张小龙的「不克制」 中国手机歧视指南 康威定律——这个50年前就被提出的微服务概念,你知多少? 干货丨只有IDEA,我们如何做用户访谈? 使用JavaScript修改伪类样式的方法总结