目录

FAQ’S

本文件的内容。

通用

相关文档。

是否Torchserve API遵循一些REST API标准?

Torchserve API符合OpenAPI规范3.0

如何在生产环境中使用Torchserve?

根据您的使用案例,您将能够使用以下机制在生产环境中部署torchserve。

什么是Torchserve和使用Flask、Django等Web框架的Python Web应用程序之间的区别?

Torchserve的主要目的是通过HTTP REST API提供模型服务,Torchserve不是一个Flask应用,而是使用Netty引擎来处理HTTP请求。

相关问题:[581,569]

是否有可用的示例模型?

Torchserve 提供了各种开箱即用的模型。查看 Torchserve Model Zoo,获取所有可用模型的列表。你也可以查看 示例 文件夹。

是否支持其他编程语言(除了Python)的模型?

不,目前仅支持基于Python的模型。

Torchserve相较于AWS Multi-Model-Server有哪些优势?

Torchserve 是从 Multi-Model-Server 演化而来。然而,Torchserve 特别针对 Pytorch 模型进行了调优。它还具有新的功能,如快照和模型版本管理。

如何在客户端解码国际语言的推理响应?

默认情况下,Torchserve 使用 utf-8 编码来编码推理响应字符串。因此,客户端可以使用 utf-8 解码。

如果一个模型将国际语言字符串转换为字节,客户端需要使用模型中指定的编码机制,例如在 https://github.com/pytorch/serve/blob/master/examples/nmt_transformer/model_handler_generalized.py 中。

性能

相关文档。

如何提高TorchServe在CPU上的性能?

CPU性能受到发射器核心绑定的影响。我们建议在您的 config.properties 中设置以下属性:

cpu_launcher_enable=true
cpu_launcher_args=--use_logical_core

有关提高CPU性能的更多背景信息,请参阅这篇博客文章

部署和配置

相关文档。

我可以将Torchserve API运行在8080和8081端口以外的其他端口吗?

是的,Torchserve API 端口可以通过属性文件或环境变量进行配置。 有关更多详细信息,请参阅 配置

如何解决特定模型的Python依赖项?

您可以使用“–requirements-file/ -r”标志在创建mar文件时提供requirements.txt。此外,您还可以使用“–extra-files”标志添加依赖文件。 有关更多详细信息,请参阅配置

我可以将Torchserve部署到Kubernetes吗?

是的,您可以使用Helm图表在Kubernetes中部署Torchserve。 参考Kubernetes部署以获取更多详细信息。

我可以使用AWS ELB和AWS ASG部署Torchserve吗?

是的,您可以在多节点ASG AWS EC2集群上部署Torchserve。此类部署有一个云形成模板可用这里。有关更多详细信息,请参阅多节点EC2部署在弹性负载均衡器(ELB)后

如何备份和恢复Torchserve状态?

TorchServe 在会话之间保留服务器运行时配置,使得无论是计划内还是计划外的服务停止,TorchServe 实例都可以在重启时恢复其状态。这些保存的运行时配置文件可以用于备份和恢复。 有关更多详细信息,请参阅 TorchServe 模型快照

如何从源代码构建Torchserve镜像?

Torchserve 有一个用于创建 Docker 镜像的实用程序脚本,该 Docker 镜像可以基于硬件的 CPU 或 GPU 兼容。Torchserve Docker 镜像也可以是特定 CUDA 版本的。

所有这些Docker镜像都可以使用build_image.sh创建,根据适当选项。

运行 ./build_image.sh --help 以获取所有可用选项。

参考 从源代码创建Torchserve Docker镜像 以获取更多详情。

如何为特定分支或提交ID构建Torchserve镜像?

要为特定分支创建Docker镜像,请使用以下命令:

./build_image.sh -b <branch_name>/<commit_id>

要为特定分支和特定标签创建Docker镜像,请使用以下命令:

./build_image.sh -b <branch_name> -t <tagname:latest>

什么是使用Dockerfile创建的图像与使用Dockerfile.dev创建的图像之间的区别?

使用 Dockerfile.dev 创建的图像中安装了从源代码安装的 Torchserve,而使用 Dockerfile 创建的图像中安装了从 PyPi 发布的 Torchserve。

什么是配置属性路径的顺序?

TorchServe 根据 文档 中列出的顺序查找 config.property 文件。没有覆盖机制。

模型存储、加载模型和模型是什么?

  • 模型存储:在启动TorchServe时是一个必填参数。它可以在config.property中定义,也可以通过TorchServe命令行选项“–model-store”进行覆盖。

  • load_models: 一个在TorchServe启动期间的可选参数。它可以在config.property中定义,也可以通过TorchServe命令行选项“–models”进行覆盖。

  • 模型: 在 config.property 中定义了一组模型的配置。模型的配置可以通过 管理 API 覆盖。它并不决定在 TorchServe 启动期间将加载哪些模型。 “models” 和 “load_models” 之间没有关系(例如,TorchServe 命令行选项 –models)。

API

相关文档

我除了使用curl之外,还可以使用什么工具来向Torchserve发送请求?

您可以使用任何工具,如Postman、Insomnia,甚至可以使用Python脚本来实现。请在此处查找示例Python脚本 这里

如何在现有框架中添加自定义API?

您可以使用Torchserve中可用的插件SDK添加自定义API。 有关更多详细信息,请参阅服务SDK插件

如何在推理请求调用中传递多个图像到我的模型?

您可以将多个数据作为键值对在data对象中提供给自定义处理器的单个推理请求。 请参阅此问题以获取更多详细信息。

处理程序

相关文档

如何返回模型的图像输出?

您需要编写自定义处理器并修改后处理以返回图像 有关更多详细信息,请参阅自定义服务文档

如何增强默认处理器?

编写一个自定义处理器,该处理器扩展默认处理器并仅覆盖需要调整的方法。 有关更多详细信息,请参阅自定义服务文档

我总是必须写一个自定义处理器吗?还是有默认的我可以使用的?

是的,您可以使用内置默认处理器以无代码/零代码方式部署您的模型。 有关更多详情,请参阅 默认处理器

是否可以部署Hugging Face模型?

是的,你可以使用自定义处理器部署Hugging Face模型。 请参阅HuggingFace_Transformers示例。

Model-archiver

相关文档

什么是mar文件?

一个mar文件是一个包含所有模型 artifacts 的 zip 文件,扩展名为“.mar”。命令行实用程序 torch-model-archiver 用于创建 mar 文件。

如何使用Torchserve Docker容器创建mar文件?

是的,您可以使用Torchserve容器创建mar文件。请按照此处给出的步骤操作。

我可以将多个序列化文件添加到单个mar文件中?

目前 torch-model-archiver 允许仅提供一个序列化文件,参数为 --serialized-file 而创建 mar。然而,您可以使用 --extra-files 选项提供任何数量和任何类型的文件。在 mar 文件中提供的所有文件都在 model_dir 位置,可以通过传递给处理程序入口点的上下文对象访问。

示例代码片段:

properties = context.system_properties
model_dir = properties.get("model_dir")

参考 Torch 模型存档 CLI 了解更多详情。 相关问题:[#633]

我可以使用s3预签名v4 URL下载和注册模型吗?

你可以使用s3 v2和v4签名URL。 注意:对于v4类型,请在模型URL中将&个字符替换为其curl命令中的URL编码字符,即%26

相关问题:[#669]

我可以将模型托管在S3

一个mar文件可以本地使用,也可以通过http公开。S3 URI以s3://开头的将不起作用,但同一个文件可以在S3控制台或AWS CLI中公开,并且可以通过https://获取一个公共对象URL。

如何在SageMaker上设置模型的批量大小?TorchServe性能调优的关键参数。

TorchServe 性能调优示例

为什么我的模型初始化如此缓慢?

模型初始化可能会慢下来有几个原因

  1. torch.load() 额外开销 - 这是我们无法改进的部分,对于大型模型来说,这种情况将更加严重

  2. CUDA上下文启动开销 - 这是我们无法控制的事情

  3. 安装PyTorch依赖项 per_model=true 适用于本地开发或 SageMaker 部署,在其他生产环境中,您应该预先安装您的依赖项。

  4. 模型压缩器有压缩和解压缩模型的开销,压缩默认开启,因为历史上torchserve出自sagemaker的需求,需要加载和卸载大量存储在云桶中的模型。但对于小型部署选择torch-model-archiver --no-archive是一个不错的选择

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

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

查看教程

资源

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

查看资源