写点什么

推出适用于 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:00926

评论

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

M5Stack 发布全双工通信语音识别硬件;雷蛇发布 AI 游戏伴侣 Project AVA,实时指导复盘

声网

AI 口语对话机器人的技术难点

北京木奇移动技术有限公司

AI技术 软件外包公司 AI口语练习

AI 智能体(AI Agent)的应用场景

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI技术应用

2025-01-11:求出最长好子序列Ⅰ。用go语言,给定一个整数数组 nums 和一个非负整数 k,我们需要找出满足特定条件的子序列。 具体来说,如果一个整数序列 seq 在下标范围 [0, seq

福大大架构师每日一题

福大大架构师每日一题

用友废钢智能判级入选工信部AI赋能新型工业化应用案例

用友BIP

用友 用友BIP YonGPT 人工智能大模型 钢铁企业

【YashanDB知识库】YDC无法通过conn切换用户

YashanDB

数据库 yashandb

中昊芯英入选2024年浙江省数字经济发展优秀案例名单

科技热闻

程序员开发助手,低代码必须有一席之地

伤感汤姆布利柏

加快推动民营中小企业数字化转型的引擎!靠谁?

不在线第一只蜗牛

低代码

探索AIP智能体平台:引领软件开发的未来

大东(AIP内容运营专员)

人工智能

活动报名:Voice Agent+硬件分享会,深圳专场丨RTE Meetup 007

声网

AIP智能体平台与CrewAI平台的对比

大东(AIP内容运营专员)

人工智能

低代码平台的开发者生态建设

秃头小帅oi

【YashanDB知识库】使用yasboot查看YashanDB status为unconnected,但是YashanDB运行正常

YashanDB

数据库 yashandb

AI智能体的开发流程

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI口语练习

ROS核心概念解析:从Node到Master,再到roslaunch的全面指南

芯动大师

Node ROS process

《CPython Internals》阅读笔记:p76-p95

codists

CPython Internals

AIP智能体平台:开启AI Agent新时代

大东(AIP内容运营专员)

人工智能

【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误

YashanDB

数据库 yashandb

【YashanDB知识库】使用DBeaver 插入数据 nvarchar字段插入为空

YashanDB

数据库 yashandb

1集13个广告、40家赞助商,《国色芳华》让芒果TV赚翻了?

趣解商业

互联网 影视 芒果TV

AIP智能体平台:开启智能软件开发新时代

大东(AIP内容运营专员)

人工智能

懒猫微服必用应用

玄兴梦影

NAS 必用应用 懒猫微服

地平线 LiDAR-Camera 融合多任务BEVFusion参考算法-V1.0

地平线开发者

自动驾驶 算法 地平线征程6

【YashanDB知识库】崖山BIT类型对MYSQL兼容问题

YashanDB

数据库 yashandb

监控观测数据标签体系的应用实践

观测云

数据标签

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