快捷方式

运行 TorchServe

本文档内容

概述

TorchServe 可用于生产环境中的多种类型的推理。它提供了一个易于使用的命令行界面,并利用 基于 REST 的 API 处理状态预测请求。

例如,您想制作一个应用程序,让您的用户拍摄一张照片,然后告诉他们场景中检测到的物体以及对物体可能是什么的预测。您可以使用 TorchServe 为一个物体检测和识别模型提供预测端点,该模型接收图像,然后返回预测。您还可以使用自定义服务修改 TorchServe 的行为,并运行多个模型。 examples 文件夹中包含自定义服务的示例。

技术细节

既然您已经对 TorchServe 有了高级别的了解,那么让我们深入了解一下。TorchServe 将 Pytorch 深度学习模型包装在 REST API 集中。目前,它带有一个内置的 Web 服务器,您可以从命令行运行。此命令行调用会接收您要提供的单个或多个模型,以及控制端口、主机和日志记录的其他可选参数。TorchServe 支持运行自定义服务来处理特定的推理处理逻辑。这些将在 自定义服务 文档中详细介绍。

要立即尝试使用 TorchServe 服务,您可以使用此示例加载自定义 MNIST 模型

深入了解后,您可能还会对以下内容感兴趣

模型文件

本主题的其余部分侧重于提供模型文件,而没有过多讨论模型文件本身、它们来自哪里以及如何创建它们。长话短说:它是一个 zip 档案,其中包含定义已训练模型的参数、权重和元数据。如果您想详细了解模型文件,请查看 model-archiver 文档

命令行界面

$ torchserve --help
usage: torchserve [-h] [-v | --version]
                          [--start]
                          [--stop]
                          [--ts-config TS_CONFIG]
                          [--model-store MODEL_STORE]
                          [--workflow-store WORKFLOW_STORE]
                          [--models MODEL_PATH1 MODEL_NAME=MODEL_PATH2... [MODEL_PATH1 MODEL_NAME=MODEL_PATH2... ...]]
                          [--log-config LOG_CONFIG]

torchserve

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Return TorchServe Version
  --start               Start the model-server
  --stop                Stop the model-server
  --ts-config TS_CONFIG
                        Configuration file for TorchServe
  --model-store         MODEL_STORE
                        Model store location where models can be loaded.
                        It is required if "model_store" is not defined in config.properties.
  --models MODEL_PATH1 MODEL_NAME=MODEL_PATH2... [MODEL_PATH1 MODEL_NAME=MODEL_PATH2... ...]
                        Models to be loaded using [model_name=]model_location
                        format. Location can be a HTTP URL, a model archive
                        file or directory contains model archive files in
                        MODEL_STORE.
  --log-config LOG_CONFIG
                        Log4j configuration file for TorchServe
  --ncs, --no-config-snapshots
                        Disable snapshot feature
  --workflow-store WORKFLOW_STORE
                        Workflow store location where workflow can be loaded. Defaults to model-store

参数:

在启动时不加载任何模型的示例

torchserve --model-store /models

启动服务器没有默认的必需参数

  1. models: 可选,<model_name>=<model_path> 对。

    a) 模型路径可以是本地 mar 文件名或指向 mar 文件的远程 http 链接 b) 要加载模型存储中的所有模型,请将模型值设置为“all”

    torchserve --model-store /models --start --models all
    

    c) 模型文件具有 .mar 扩展名,它实际上是一个带有 .mar 扩展名的 zip 文件,打包了训练好的模型和模型签名文件。

    d) 也支持通过指定多个名称路径对来加载多个模型。

    e) 有关在启动 TorchServe 时加载模型的不同方法的详细信息,请参阅 使用 TorchServe 提供多个模型

  2. model-store: 必需,默认模型或本地模型存储的位置。模型存储中可用的模型可以通过 注册 API 调用 或通过在启动 TorchServe 时使用 models 参数注册在 TorchServe 中。

  3. workflow-store: 必需,默认工作流程或本地工作流程存储的位置。工作流程存储中可用的工作流程可以通过 注册 API 调用 注册在 TorchServe 中。

  4. ts-config: 可选,提供 配置 文件,格式为 config.properties。

  5. log-config: 可选,此参数将覆盖服务器中存在的默认 log4j2.xml。

  6. start: 可选,一种更具描述性的启动服务器的方式。

  7. stop: 可选,如果服务器已在运行,则停止服务器。

参数优先级:

参数可以在多个位置设置(例如:命令行、config.properties)。以下列出了优先级

  1. 命令行

  2. 配置属性

  3. 默认设置

示例:在 config.properties 和命令行中设置 model-store 将导致使用命令行位置并覆盖 config.properties。

高级功能

自定义服务

本主题在 自定义服务文档页面 上有更详细的介绍,但让我们讨论一下如何使用自定义服务启动 TorchServe 服务器,以及为什么要使用自定义服务。假设您有一个名为 super-fancy-net.mar 的模型,该模型位于 /models 文件夹中,它可以检测很多东西,但您想要一个 API 端点,只检测热狗。您可以使用一个有意义的名称,例如“not-hot-dog” API。在这种情况下,我们可以这样调用 TorchServe

torchserve --start --model-store /models --models not-hot-dog=super-fancy-net.mar

这将在 predictions/not-hot-dog/ 提供一个预测端点,并在档案中运行您的自定义服务代码,档案中的清单将指向入口点。

使用 TorchServe 提供多个模型

在启动 TorchServe 时加载 model_store 中所有可用模型的示例

torchserve --start --model-store /models --models all

使用多个模型的示例

torchserve --start --model-store /models --models name=model_location name2=model_location2

以下是在使用本地模型文件运行 resnet-18 和 vgg16 模型的示例。

torchserve --start --model-store /models --models resnet-18=resnet-18.mar squeezenet=squeezenet_v1.1.mar

日志记录和指标

有关日志记录的详细信息,请参见 日志记录文档。有关指标的详细信息,请参见 指标文档

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源