pytorch serve开始-Getting started

官网链接

Getting started --- PyTorch/Serve master documentation

安装TorchServe和torch-model-archiver

安装依赖

注意::对于Conda,运行Torchserve需要Python >=3.8。

对于基于Debian的系统/ MacOS

  • CPU

    python ./ts_scripts/install_dependencies.py

  • 对于使用Cuda 12.1的GPU。可选:cu92、cu101、cu102、cu111、cu113、cu116、cu117、cu118、cu121

    python ./ts_scripts/install_dependencies.py --cuda=cu121

注意:PyTorch 1.9+不支持cu92和cu101。因此,在PyTorch 1.8.1之前,TorchServe只支持cu92和cu101。安装文件参考https://github.com/pytorch/serve.git

对于Windows系统

请参阅此处的文档。here.

  • 安装torchserve、torch-model-archiver和torch-workflow-archiver

conda 安装

注意:Windows不支持Conda包。请参阅此处的文档here.

复制代码
conda install torchserve torch-model-archiver torch-workflow-archiver -c pytorch

Pip安装

复制代码
pip install torchserve torch-model-archiver torch-workflow-archiver

模型服务

本节展示了一个使用TorchServe为模型提供服务的简单示例。要完成这个示例,您必须已经安装了TorchServe和model archiver。

要运行这个例子,克隆TorchServe仓库:

复制代码
git clone https://github.com/pytorch/serve.git 

然后在存储库根目录的父目录中运行以下步骤。例如,如果您将存储库克隆到/home/my_path/serve,则从/home/my_path运行步骤。

存储模型

要使用TorchServe为模型提供服务,首先将模型归档为MAR文件。您可以使用模型归档程序来打包模型。您还可以创建模型存储来存储您的存档模型。

  1. 创建一个目录来存储模型。

    mkdir model_store

  2. 下载一个训练好的模型。

    wget https://download.pytorch.org/models/densenet161-8d451a50.pth

  3. 通过使用模型归档器来归档模型。extra-files参数使用了一个来自TorchServe仓库的文件,因此如果有必要,请更新路径。

    torch-model-archiver --model-name densenet161 --version 1.0 --model-file ./serve/examples/image_classifier/densenet_161/model.py --serialized-file densenet161-8d451a50.pth --export-path model_store --extra-files ./serve/examples/image_classifier/index_to_name.json --handler image_classifier

有关模型归档器的更多信息,请参见Torch Model archiver for TorchServe

启动TorchServe服务模型

存档和存储模型后,使用torchserve命令为模型提供服务。

复制代码
torchserve --start --ncs --model-store model_store --models densenet161.mar

注意:如果你在运行TorchServe时指定了模型,它会自动将后端worker的数量扩展到等于可用vcpu的数量(如果你在CPU实例上运行)或可用GPU的数量(如果你在GPU实例上运行)。如果是具有大量计算资源(vcpu或gpu)的强大主机,这个启动和自动扩展过程可能需要相当长的时间。如果你想最小化TorchServe的启动时间,你应该避免在启动时间注册和扩展模型,并通过使用相应的管理API(Management API)将其移动到程序入口点,它允许更细粒度地控制分配给任何特定模型的资源)。

从模型中获得预测结果

要测试模型服务器,请向服务器的 predictionsAPI发送请求。TorchServe通过gRPC和HTTP/REST支持所有的推理和管理api。

通过python客户端使用GRPC api

  • 安装grpc的python依赖:

    pip install -U grpcio protobuf grpcio-tools

  • 使用proto文件生成推理客户端

    python -m grpc_tools.protoc --proto_path=frontend/server/src/main/resources/proto/ --python_out=ts_scripts --grpc_python_out=ts_scripts frontend/server/src/main/resources/proto/inference.proto frontend/server/src/main/resources/proto/management.proto

  • 使用示例客户端gRPC python客户端运行inference

    python ts_scripts/torchserve_grpc_client.py infer densenet161 examples/image_classifier/kitten.jpg

使用REST api

作为一个例子,我们将下载下面这只可爱的小猫

复制代码
curl -O https://raw.githubusercontent.com/pytorch/serve/master/docs/images/kitten_small.jpg

然后调用预测地址

复制代码
curl http://127.0.0.1:8080/predictions/densenet161 -T kitten_small.jpg

它将返回以下JSON对象

复制代码
[
  {
    "tiger_cat": 0.46933549642562866
  },
  {
    "tabby": 0.4633878469467163
  },
  {
    "Egyptian_cat": 0.06456148624420166
  },
  {
    "lynx": 0.0012828214094042778
  },
  {
    "plastic_bag": 0.00023323034110944718
  }
]

所有的交互都将记录在logs/目录中,所以一定要查看它!

在你已经看到了使用TorchServe服务于深度学习模型是多么容易!你想知道更多吗(Would you like to know more?)

停止TorchServe

要停止当前运行的TorchServe实例,运行:

复制代码
torchserve --stop

检查日志

所有与模型注册、管理、推理相关的输出到stdout的日志都记录在/logs文件夹中。

可以使用基准测试生成吞吐量或百分位精度等高级性能数据,并在报告中可视化。

调试处理程序代码

如果你想调试处理程序代码,可以只使用后端运行TorchServe,因此可以使用任何python调试器。你可以参考这里定义的一个例子(here)

相关推荐
予枫的编程笔记2 小时前
Agent 到底是什么?从架构演进看 AI Agent 的工程定义
人工智能·agent·harness·agent的演进
成都渲染101云渲染66665 小时前
如何在3ds Max中实现更快、更高质量的渲染
前端·javascript·人工智能
十铭忘7 小时前
MOTIONGPT3:人类运动作为第二模态
人工智能
weigangwin8 小时前
采用 mem0 之前,先决定 Agent 到底允许记住什么
人工智能·opencv·ai·llm·memory·ai agent·mem0
木木学AI8 小时前
AI客服系统技术选型:Agentic架构与传统规则引擎的能力差异评估
人工智能·架构
hhzz8 小时前
Python大数据实战(十六):音乐推荐系统——基于协同过滤算法构建个性化歌单引擎
大数据·人工智能·python·数据挖掘·数据分析
带娃的IT创业者8 小时前
突破算力与安全的边界:深度解析 Mythos AI 的“受信发布”机制与技术影响
人工智能·安全·大语言模型·ai安全·mythos ai·受信发布·ai监管
dreamread8 小时前
2026紫微八字同排工具怎么选:看盘面切换、功能边界和学习路径
人工智能·软件工具·传统文化
耍酷的魔镜8 小时前
核心设计理念:5W2H、JSON-LD 与通用知识图谱
人工智能·json·知识图谱
SunnyDays10119 小时前
Python PDF 转 Markdown 详解(转换整个文档,特定页面,表格,扫描 PDF)
python·pdf 转 markdown·pdf 转 md·扫描 pdf 转 md·pdf 表格转 md