目录

运行 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) 要加载 Model Store 中的所有模型,请将 Model Value 设置为 “all”

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

    c) 模型文件的扩展名为 .mar,它实际上是一个扩展名为 .mar 的 zip 文件,其中包含经过训练的模型和模型签名文件。

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

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

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

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

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

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

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

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

参数优先级:

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

  1. 命令行

  2. 配置属性

  3. 默认设置

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

高级功能

定制服务

自定义服务文档页面上更详细地介绍了本主题,但让我们谈谈如何使用自定义服务启动 TorchServe器,以及为什么可能需要自定义服务。 假设您有一个名为 in folder 的模型,它可以检测很多东西,但您需要一个仅检测热狗的 API 终端节点。您将使用对它有意义的名称,例如 “not-hot-dog” API。在这种情况下,我们可以像这样调用 TorchServe:super-fancy-net.mar/models

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 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

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

查看资源