HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

推出适用于 Apache MXNet 的模型服务器

  • 2019-11-04
  • 本文字数:2540 字

    阅读完需:约 8 分钟

推出适用于 Apache MXNet 的模型服务器

本周早些时候,AWS 宣布推出适用于 Apache MXNet 的模型服务器,这是构建于 Apache MXNet 上的开源组件,用于处理深度学习模型。Apache MXNet 是一种可快速进行训练和推理的可扩展框架,具有易于使用、简明扼要的机器学习 API。工程师们现在可以利用适用于 Apache MXNet 的模型服务器,轻松、快速地对 MXNet 模型进行大规模处理。

什么是适用于 Apache MXNet 的模型服务器?

适用于 Apache MXNet 的模型服务器 (MMS) 是一种开源组件,旨在简化深度学习推理模型的大规模部署任务。部署推理模型并不是无关紧要的任务。它需要收集各种模型构件、设置处理堆栈、初始化并配置深度学习框架、公开终端节点、发送实时指标,以及运行自定义预处理和后处理代码,而这只是众多工程任务中的几项。虽然每项任务都不是特别复杂,但与部署模型相关的所有工作足以使部署过程变得缓慢而繁琐。


MMS 是 AWS 贡献的一款适用于 Apache MXNet 的开源工程工具集,可以极大地简化部署深度学习模型的过程。如果您使用 MMS 部署模型,可以使用以下主要功能:


  • 将所有模型构件打包并导出为单一“模型存档”文件 (其中封装了处理 MXNet 模型的所有必要内容) 的工具作业。

  • 自动设置处理堆栈,其中包括 HTTP 推理终端节点、基于 MXNet 的引擎,所有组件均根据处理的具体模型进行自动配置。

  • 预配置的 Docker 镜像,利用 NGINX、MXNet 和 MMS 进行设置,以实现可扩展的模型处理。

  • 能够自定义推理执行管道中的每个步骤,从模型初始化到预处理和推理,再到对模型输出的后处理。

  • 用于监控推理服务和终端节点的实时运行指标,涵盖延迟、资源利用率和错误。

  • 支持 OpenAPI 规范,可实现轻松集成和自动生成热门堆栈的客户端代码,例如 Java、JavaScript、C# 等等。


可通过 PyPi 程序包使用 MMS,或直接通过模型服务器 GitHub 存储库使用 MMS,它可在 Mac 和 Linux 上运行。对于可扩展的生产使用案例,我们建议使用 MMS GitHub 存储库中提供的预配置 Docker 镜像


下图演示了示例参考架构:


模型处理快速启动

MMS 很容易入门,我们将在以下示例中进行展示。此示例利用了经过预训练的 SqueezeNet v1.1 目标物检测模型,该模型在 MMS Model Zoo 中公开提供。


要开始使用,您需要具有 Python,这是使用 MMS 的唯一先决条件。如果您未安装 Python,请根据 Python 网站上的说明,安装 Python 2.7 或 3.6。


接下来,使用 PyPi 在您所选的机器上安装 MMS。MMS 支持 Mac 和 Linux 操作系统。


$ pip install mxnet-model-server
复制代码


只需要运行 MMS 并向其提供模型存档 URL 或本地文件,即可完成模型的处理:


$ mxnet-model-server --models squeezenet=https://s3.amazonaws.com/model-server/models/squeezenet_v1.1/squeezenet_v1.1.model
复制代码


执行此命令后,MMS 处理将启动:下载并解压缩模型存档,使用模型构件配置服务,并开始在


/squeezenet/predict 终端节点的 localhost、端口 8080 上侦听传入请求 (可配置主机和端口)。


为了测试您新建的服务,让我们通过 HTTP 发送一个推理请求,要求模型对一个图像进行分类:


$ curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg$ curl http://127.0.0.1:8080/squeezenet/predict -F "input0=@kitten.jpg"
复制代码


您将会看到与以下内容类似的一条响应,模型识别出图像中的目标物是一只“埃及猫”,概率为 85%。成功啦!


{  "prediction": [    [      {        "class": "n02124075 Egyptian cat",        "probability": 0.8515276312828064      },… (other lower probability predictions) …}
复制代码


要深入了解模型处理,请查看服务器文档

导出用于处理的模型

MMS 可处理以 MMS 模型存档格式打包的模型。它包括命令行界面


mxnet-model-export,用于打包模型构件并导出为单一模型存档文件。导出的模型存档封装了处理模型所需的所有构件和元数据,MMS 在初始化处理终端节点时会用到它。进行处理无需其他模型元数据或资源。


下图阐明了导出过程:



如图所示,打包模型存档所需的必要构件是模型的神经网络架构和参数 (层、运算符和权重),以及服务输入和输出数据类型和张量形状定义。但是,在真实的使用案例中使用模型需要的可不只是神经网络。例如,在为模型提供图像前,许多视觉模型需要对输入图像进行预处理和转换。另一个示例是分类模型,通常需要进行后处理,以便对分类结果进行排序和截断。为了应对这些需求,并将模型完全封装到模型存档中,MMS 可以将自定义处理代码以及所有辅助文件打包到存档中,并在运行时提供这些文件。利用这一强大机制,您可以生成封装了整个处理管道的模型存档:从预处理输入到自定义推理,并在网络输出通过网络返回客户端之前应用类别标签标识符。


要了解有关模型存档导出的更多信息,请查看 MMS 导出文档

了解更多信息并做出贡献

MMS 的设计宗旨是易于使用、灵活和可扩展。除了此篇博文中提到的内容,它还提供其他功能,包括处理终端节点的配置、实时指标和日志、预配置容器映像等。


要了解有关 MMS 的更多信息,我们建议您首先参阅我们的 Single Shot MultiBox Detector (SSD) 教程,您可以通过它了解到如何导出并处理 SSD 模型。在存储库的文档文件夹中提供了更多示例和其他文档。


我们欢迎您以提问、提出请求的方式参与社区讨论并做出贡献,帮助我们进一步开发和扩展 MMS。请访问 awslabs/mxnet-model-server 存储库,开始使用!



补充阅读

了解有关 AWS 和 MXNet 的更多信息!





作者介绍:



Hagay Lupesko 是 AWS 深度学习的工程经理。他专注于构建让开发人员和科学家能够创造智能应用程序的深度学习工具。在业余时间,他喜欢阅读、徒步旅行以及与家人共享天伦之乐。


**



Ruofei Yu 是 AWS 深度学习的软件工程师。**他专注于为软件工程师和科学家构建创新的深度学习工具。在业余时间,他喜欢与朋友和家人共度美好时光。


**



Yao Wang 是 AWS 深度学习的软件工程师。**他专注于为软件工程师和科学家构建创新的深度学习工具。在业余时间,他喜欢徒步旅行、阅读和听音乐。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/introducing-model-server-for-apache-mxnet/


2019-11-04 08:00863

评论

发布
暂无评论
发现更多内容

干货分享|袋鼠云数栈离线开发平台在小文件治理上的探索实践之路

袋鼠云数栈

大数据 平台开发

2023字节、腾讯、阿里等6家大厂Java开发面试真题+高频面试题总结

小小怪下士

Java java程序员 java面试 Java面试题

MySQL8.0 优化器介绍(一)

GreatSQL

MySQL greatsql greatsql社区

厉害了!阿里内部都用的Spring+MyBatis源码手册,实战理论两不误

Java你猿哥

spring 面试 Spring Boot mybatis 面经

什么是“语法糖”?Java中有哪些常见糖?

Java你猿哥

Java ssm Java工程师 语法糖

置顶两个月!《程序员如何向架构师转型》神作在Github持续霸榜

做梦都在改BUG

Java 程序员 系统设计 架构师

LED透明屏私人定制势不可挡

Dylan

电子 LED显示屏 屏幕

简单的文件搜索工具:Find Any File激活版

真大的脸盆

Mac Mac 软件 文件搜索 搜索工具 搜索软件

不懂就问:MySQL delete 表数据,磁盘空间为什么没有被释放?

Java你猿哥

Java MySQL 数据库 innodb Java工程师

Bytebase vs Flyway

Bytebase

数据库 版本控制 变更

低代码平台搭建CRM 加速重构业务模式

力软低代码开发平台

批量上传iOS应用程序截图的实用技巧

弯道超车!阿里高工新产Java面试速成指南,面试骚操作都在里面了

Java你猿哥

Java 面试 面经 Java工程师 春招

太厉害了!腾讯T4大牛把《数据结构与算法》讲透了,带源码笔记

Java你猿哥

Java 数据结构 算法 数据结构算法 左程云

马鞍山等级测评机构有哪些?有几家?在哪里?

行云管家

等保测评 等级测评 马鞍山

阿里巴巴为什么不建议直接使用@Async注解?

Java你猿哥

Java ssm java8 Async Java工程师

微服务架构下你不得不知的3种部署策略

做梦都在改BUG

Java 架构 微服务

Spring知识点总结!已整理成142页离线文档(源码笔记+思维导图)

三十而立

Java

是找茬? 还是装 B?阿里面试每轮必问的“Spring Boot”意义何在?

三十而立

在 Kubernetes 中部署应用交付服务(第 2 部分)

NGINX开源社区

nginx Kubernetes

MySQL 语句中 where 条件后为什么写上1=1 , 是什么意思?

Java你猿哥

Java MySQL sql 后端 ssm

最佳实践 | 用腾讯云智能语音打造智能对话机器人

牵着蜗牛去散步

腾讯云 腾讯 语音识别 语音合成 智能对话机器人

数据出境是什么意思?我国数据出境合规要求是什么?

行云管家

数据 数据安全 堡垒机 数据出境

2周时间就掌握了Spring boot,原来是收藏了这样一份文档资料

三十而立

Java spring

玖章算术CEO叶正盛在杭州人工智能小镇AIGC论坛发表主题演讲

NineData

人工智能 代码开发 AIGC 玖章算术 NineData

龙蜥白皮书精选:龙蜥全面支持 Intel 第四代可扩展处理器 SPR 平台

OpenAnolis小助手

开源 Spr 操作系统 intel 龙蜥社区

消费级AR眼镜爆发将近:Rokid+无影突破算力,打造“第三块屏幕”

云布道师

无影

Dubbo 正式支持 Spring 6 & Spring Boot 3

Java你猿哥

Java spring Spring Boot dubbo ssm

数据库 CI/CD 工具 -- Bytebase 介绍

Se7en

限时公开,2023 年阿里巴巴 Java 面试权威指南(全彩版)

架构师之道

Java 面试

PostgreSQL 技术内幕(六)Greenplum 排序算子

酷克数据HashData

推出适用于 Apache MXNet 的模型服务器_技术管理_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章