适用于 Apache MXNet 的模型服务器 (MMS) - 深度学习 AMI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 Apache MXNet 的模型服务器 (MMS)

适用于 Apache MXNet 的模型服务器 (MMS) 是一个灵活的工具,用于处理从 Apache MXNet(孵化) 导出或导出为开放神经网络交换 (ONNX) 模型格式的深度学习模型。MMS 随 DLAMI with Conda 一起预安装。本 MMS 教程将演示如何处理图像分类模型。

在 MMS 上处理图像分类模型

本教程介绍如何利用 MMS 处理图像分类模型。该模型通过 MMS Model Zoo 提供,在您启动 MMS 时自动进行下载。在服务器开始运行后,它会立即侦听预测请求。在这种情况下,如果您上传图像 (一个小猫的图像),服务器会返回在其上训练该模型的 1,000 类中匹配的前 5 个类的预测。有关模型、模型的训练方式以及模型的测试方式的更多信息可在 MMS Model Zoo 中找到。

在 MMS 上处理示例图像分类模型

  1. 使用 Conda Connect 到 Deep Learning AMI 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。

  2. 激活 MXNet 环境:

    • 对于使用 CUDA 9.0 和 MKL-DNN 的 Python 3 上的 MXNet 和 Keras 2,运行以下命令:

      $ source activate mxnet_p36
    • 对于使用 CUDA 9.0 和 MKL-DNN 的 Python 2 上的 MXNet 和 Keras 2,运行以下命令:

      $ source activate mxnet_p27
  3. 使用以下命令运行 MMS。添加 > /dev/null 将在您运行其他测试时生成无提示日志输出。

    $ mxnet-model-server --start > /dev/null

    MMS 现在正在您的主机上运行并且正在侦听推理请求。

  4. 接下来,使用 curl 命令管理 MMS 的管理终端节点,并告知它您希望它处理的模型。

    $ curl -X POST "http://localhost:8081/models?url=https%3A%2F%2Fs3.amazonaws.com%2Fmodel-server%2Fmodels%2Fsqueezenet_v1.1%2Fsqueezenet_v1.1.model"
  5. MMS 需要知道您要使用的工作线程的数量。对于此测试,您可以尝试 3。

    $ curl -v -X PUT "http://localhost:8081/models/squeezenet_v1.1?min_worker=3"
  6. 下载一个小猫图像并将其发送到 MMS 预测终端节点:

    $ curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg $ curl -X POST http://127.0.0.1:8080/predictions/squeezenet_v1.1 -T kitten.jpg

    该预测终端节点将返回一个 JSON 格式的预测 (类似于下面的前 5 个预测),其中,图像具有 94% 的可能性为埃及猫,然后有 5.5% 的可能性为猞猁或山猫:

    { "prediction": [ [{ "class": "n02124075 Egyptian cat", "probability": 0.940 }, { "class": "n02127052 lynx, catamount", "probability": 0.055 }, { "class": "n02123045 tabby, tabby cat", "probability": 0.002 }, { "class": "n02123159 tiger cat", "probability": 0.0003 }, { "class": "n02123394 Persian cat", "probability": 0.0002 } ] ] }
  7. 测试更多映像,或者如果您已完成测试,请停止服务器:

    $ mxnet-model-server --stop

本教程重点介绍基本模型处理。MMS 还支持将 Elastic Inference 与模型服务一起使用。有关更多信息,请参阅模型服务与 Amazon Elastic Inference

当您准备好了解有关其他 MMS 功能的更多信息时,请参阅 GitHub 上的 MMS 文档

其他示例

MMS 具有可在 DLAMI 上运行的各种示例。您可以在 MMS 项目存储库上查看它们。

更多信息

有关更多 MMS 文档,包括如何使用 Docker 设置 MMS — 或者要利用最新的 MMS 功能,请参见管理系统项目页面(位于 GitHub 上)。