摘要:部署深度学习模型不是一项简单的任务,它要求收集各种模型文件搭建服务栈初始化和配置深度学习框架暴露端点实时发送度量指标,并运行自定义的预处理和后置处理逻辑代码,而这些仅仅是繁杂步骤中的一部分。开源的极大简化了的深度学习模型部署过程。
什么是 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/。
欢迎加入本站公开兴趣群商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/4706.html
摘要:亚马逊和华盛顿大学今天合作发布了开源的端到端深度学习编译器。项目作者之一陈天奇在微博上这样介绍这个编译器我们今天发布了基于工具链的深度学习编译器。陈天奇团队对的性能进行了基准测试,并与进行了比较。 亚马逊和华盛顿大学今天合作发布了开源的端到端深度学习编译器NNVM compiler。先提醒一句,NNVM compiler ≠ NNVM。NNVM是华盛顿大学博士陈天奇等人2016年发布的模块化...
摘要:终于,亚马逊也加入了全球芯片大战。今天凌晨,亚马逊在拉斯维加斯召开的大会上,亚马逊发布了一系列新产品,其中包括针对机器学习定制设计的云端芯片。此次,亚马逊的加入势必会让云服务市场竞争更为激烈。终于,亚马逊也加入了全球AI芯片大战。今天凌晨,亚马逊在拉斯维加斯召开的AWS re:Invent大会上,亚马逊AWS CEO Andy Jassy发布了一系列新产品,其中包括针对机器学习定制设计的云端...
摘要:被称为亚马逊的新服务提供了强大的功能,如图像分析,文本到语音转换和自然语言处理。换句话说,其任务是将谷歌的机器学习功能产品化。亚马逊平台推出的这些新服务中的第一个是名为的图像识别服务。 亚马逊一直在其零售业务中使用深度学习和人工智能来提高客户体验。该公司声称,它有数千名工程师专门从事人工智能相关开发,以改善搜索、物流、产品推荐和库存管理。亚马逊现在正在将相同的专业知识带给云,展示了开发人员可...
摘要:在此次会议上,还计划发布云计算深度学习服务。两名消息人士表示,新的深度学习服务也帮助用户更方便地运行常见深度学习开发工具包,例如和谷歌。谷歌和微软已提供类似的服务。 据外媒报道,亚马逊AWS正在大力推动人工智能产品的升级,包括自主开发技术以及与多家AI创业公司合作。AWS希望补足自身短板,赢得更多人工智能业务...
摘要:在此次会议上,还计划发布云计算深度学习服务。两名消息人士表示,新的深度学习服务也帮助用户更方便地运行常见深度学习开发工具包,例如和谷歌。谷歌和微软已提供类似的服务。 据外媒报道,亚马逊AWS正在大力推动人工智能产品的升级,包括自主开发技术以及与多家AI创业公司合作。AWS希望补足自身短板,赢得更多人工智能业务。总体来说,AWS在人工智能领域的工作以Ironman项目为中心。Ironman项目...
阅读 3002·2021-10-27 14:16
阅读 2842·2021-09-24 10:33
阅读 2226·2021-09-23 11:21
阅读 3202·2021-09-22 15:14
阅读 738·2019-08-30 15:55
阅读 1628·2019-08-30 15:53
阅读 1677·2019-08-29 11:14
阅读 2164·2019-08-28 18:11