微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

torchserve 部署模型 自定义 handler 实践

torch serve介绍

在生产中部署和管理模型通常是机器学习过程中最困难的部分,这项工作包括构建定制的预测 API,对其进行扩展,并加以保护等等。

简化模型部署过程的一种方法是使用模型服务器,即专门设计用于在生产中提供机器学习预测的现成的 Web 应用程序。

模型服务器可轻松加载一个或多个模型,并自动创建由可扩展 Web 服务器提供支持的预测 API。

模型服务器还可以根据预测请求运行代码预处理和后处理。

最后同样重要的一点是,模型服务器还提供对生产至关重要的功能,例如日志记录、监控和安全性等。

广为使用的模型服务器有 TensorFlow Serving 和 Multi Model Server。

torchserve是Pytorch(Facebook)和Amazon于2020年联合推出的PYtorch模型服务库,可使大规模部署经过训练的 PyTorch 更加轻松,不需要编写自定义代码

官方Github:https://github.com/pytorch/serve

模型 输入尺寸 耗时(s)
TensorRT+Flask 224 * 224 0.018
torchserve-gpu 224 * 224 0.025
torchserve-cpu 224 * 224 0.19

torchserve 环境,在Linux 的安装

pip install torch==1.12.0+cu113 torchvision==0.13.0+cu113 torch-model-archiver==0.6.0 nvgpu==0.9.0 captum==0.5.0 torchserve==0.6.0 torchsummary==1.5.1

torchserve 步骤

[1] 先将模型以及推理前后处理打包成mar文件

  • 如果是pt文件保存的是模型参数需要指定模型网络结构文件地址
torch-model-archiver --model-name modnet --version 20220822 --model-file modnet.py --serialized-file modnet.pt --handler image_segmenter --extra-files *** 
torch-model-archiver --model-name modnet --version 20220822 --serialized-file modnet.pt --handler matting.py --extra-files base_handler.py

[2] 将模型mar部署成服务

torchserve --start --model-store model_store --models modnet=modnet.mar --ts-config config.properties
  • 其中config.properties可根据自行需要配置,如下:
max_request_size=655350000
max_response_size=655350000

在这里插入图片描述

[3] 调用模型监控服务

  • 通过curl命令在terminal调用

curl http://127.0.0.1:8081/models

{ “models”: [
    {
    “modelName”: “modnet”,
    “modelUrl”: “modnet.mar”
    } ] }

[4] 调用预测服务

  • 通过curl命令在terminal调用

curl http://127.0.0.1:8080/predictions/modnet -T persons.jpg

import requests
headers = {'Content-Type' : 'image/jpg'}
fp = open('persons.jpg', 'rb')

y = requests.post('http://127.0.0.1:8080/predictions/modnet', data=fp, headers=headers)

原文地址:https://www.jb51.cc/wenti/3283398.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐