TorchServe 详解:5 步将模型部署到生产环境

从实验室到生产环境:AI模型部署架构全流程实战(含TensorFlow Serving_TorchServe对比) 官方Handler仅支持简单的图像分类,若需要处理多模态输入(文本+图像)或自定义预处理,需要编写自定义Handler。"""初始化:加载模型和预处理函数"""model_dir = properties.get("model_dir") # 模型目录(来自TorchServe)# 加载TorchScript模型。 阅读详情

内容导读:TorchServe 自 2020 年 4 月推出至今,经历了 2 年多的发展,变得愈发成熟和稳定,本文将对 TorchServe 进行全面介绍。

本文首发自微信公众号:PyTorch开发者社区

更多应用 PyTorch 进行实际模型部署实践,访问 openbayes.com 获取

TorchServe 是 PyTorch 中将模型部署到生产环境的首选解决方案。它是一个性能良好且可扩展的工具,用 HTTP 或 HTTPS API 封装模型。

TorchServe 的前端是用 Java 实现的,可以处理多种任务,包括为部署模型分配 workers、负责客户端和服务器之间通信等。其 Python 后端主要负责处理 inference service。

图一:TorchServe performance Tuning 流程总览

此外,它还支持 AB 测试、dynamic batching、logging 和 metrics 的多种 model serving 及 versioning,4 个公开 API 包括:

* Inference API:监听 8080 端口,默认情况下可通过 localhost 访问,可以在 TorchServe configuration 中进行配置,并支持从模型中获取 predictions。

* Explanation API:在 hood 下使用 Captum 提供正在部署的模型的说明,并 监听 8080 端口。

* Management API:允许注册或取消注册并描述模型。它还允许用户增加或减少部署模型的 workers 的数量。

* Metrics API:在默认情况下监听 8082 端口,使用户可以监测正在部署的模型。

TorchServe 通过支持 batch inference 及部署模型的多个 workers,使得用户得以扩展模型部署并处理峰值流量。这种扩展可通过 Management API 及 configuration file 中的设置来完成。此外,Metrics API 可以通过默认及自定义 metrics 来监测模型部署。

其他高级设置,如接收请求的队列长度、a batch of inputs 的最大等待时长以及其他属性,都可以通过 config file(启动时可以传递到 TorchServe)进行配置。

用 TorchServe 部署模型的步骤包括:

1、安装 TorchServe、model archiver 及其它依赖

2、选择一个合适的默认 handler(如图像分类等)或创建一个自定义 handler

3、使用 Torcharchive 将 model artifacts 和 handler 打包成一个 .mar 文件,并将其放入 model store

4、开始部署模型

5、运行推理

TorchServe 项目地址

TorchServe 重点概念之 Handler

TorchServe 后端使用一个 handler 来加载模型、预处理接收到的数据、运行推理和对 response 进行 post process。TorchServe 中的 handler 是一个 Python script,所有模型初始化、预处理、推理和 post process 逻辑都包含在其中。

TorchServe 还提供了一个开箱即用的 handler,可用于图像分类、分割、目标检测和文本分类等应用程序。此外,它还支持自定义 handler,以防默认 handler 不支持当下的 case。

自定义 handler 提供了很大的灵活性,这可能使 TorchServe 成为一个多框架服务工具。自定义的 handler 允许以自定义逻辑来初始化一个模型,也能让这个模型从其他框架(如 ONNX)加载模型。

TorchServe 处理程序由四个主要函数组成,functions、initialize、inference 和 preprocess,每个函数返回一个列表。

下面的代码片段是自定义 handler 的示例。自定义 handler 继承了 TorchServe 中的 BaseHandler,可以覆盖任何主函数。该示例演示了如何用 handler 加载 Detectron2 模型,解决 figure detection 问题。该模型已经被导出至 Torchscript,并使用  mod.half() 运行 FP16 推理。

TorchServe 重点概念之 Metrics

将模型部署到生产环境中,需要重点监测其能力表现。TorchServe 定期收集系统级 metrics,并允许添加自定义 metrics。

系统级 metrics 包括 CPU 利用率、主机上可用及已用的磁盘空间和内存,以及不同响应代码的请求数量(例如 200-300、400-500 和 500 以上)。自定义 metrics 可以添加到 Custom Metrics API。

Custom Metrics API

TorchServe 将这两组 metrics 记录到不同的 log file 中。默认情况下,metrics 收集在:

系统 metrics: log _ directory/ts _ metrics. log

自定义 metrics:log directory/model _ metrics. log

TorchServe 的 Metrics API,默认情况下监听端口 8082,并允许用户查询和监控收集到的 metrics。默认的 metrics endpoint 返回 Prometheus formatted metrics。可以用 curl 请求查询 metrics,或者将 Prometheus Server 指向 endpoint,并将 Grafana 用于 Dashboard。

用 curl 请求查询 metrics:

curl http://127.0.0.1:8082/metrics

用 mtail 将 logged metrics导出到 Prometheus 的示例

通过在 Bashboard 中跟踪这些 metrics,可以监视在离线 Benchmark 运行期间,偶尔出现或难以发现的 performance regressions。

What's Next

以上就是关于 TorchServe 的全部介绍。在下一节中,我们将借助一个具体案例,讲解影响部署模型到生产环境中的具体因素,以及如何用 TorchServe 对 Animated Drawings APP 进行调优。

获取更多学习资料和实践教程,欢迎关注公众号:PyTorch 开发者社区。观看教程实践,可访问 openbayes.com 实际操作。

Torchserve docker模型部署超详篇 1.模型打包 torch-model-archiver --model-name resnet34 --version 1.0 --model-file model.py --serialized-file resnet34b_16.pth --handler resnetHandler --extra-files index.json --export-path model-store -f 参数说明: --model-name 模型名称,根据自己需要定义,不需要跟真正的模型名称相同 --ver 阅读详情

相关推荐

AI模型生产化部署实战:从FastAPI到TorchServe的工程化解决方案

模型部署是将训练好的AI模型转化为可对外提供服务的生产系统的关键环节,它涉及将模型封装成API接口,以支持高并发、低延迟的在线推理。其核心原理在于通过服务化架构,将模型加载到内存中,并利用Web服务器处理请求,实现模型的远程调用。这一过程的技术价值在于打通了AI研发与业务应用的“最后一公里”,使模型能力能够稳定、高效地服务于实际产品。典型的应用场景包括图像识别、自然语言处理、推荐系统等需要实时AI能力的在线服务。本文聚焦于PyTorch/TensorFlow模型的工程化部署,详细对比了基于FastAPI构建

weixin_30835649的博客 390

DL | mmdetection笔记:安装+训练测试+部署服务

文章目录1.介绍2.安装3. 训练和测试3.1 coco数据集格式和构造3.2 训练参数配置3.3 训练3.3 测试4.部署服务4.1 部署4.1.1 安装docker或者nvidia-docker4.2 检查是否正常启动了服务4.3 调用服务-curl命令4.4 调用服务-post请求5.遇到的小坑 1.介绍 mmdetection是一个安装和使用方便,非常好用,非常优秀的一款国产cv框架。 可以方便的用来做目标检测、语义分割等。 2.安装 按照官方文档就很方便,考虑到github经常卡的上不去,我还是把

南瓜派三蔬 3290

CentOS7无网环境实战:MySQL8.0完整离线安装与避坑指南(附依赖包下载)

本文详细介绍了在CentOS7无网环境下MySQL8.0的完整离线安装流程,包括依赖包获取、系统预处理、MySQL二进制安装、服务配置与优化等关键步骤。特别针对离线安装的特殊需求,提供了从依赖包下载到服务调优的全链路解决方案,帮助用户在企业内网或隔离环境中高效部署MySQL数据库。

bush的博客 175

mmcls/mmdet模型部署至 TorchServe

mmcls/mmdet模型部署至 TorchServe

gy77 1181

【异常】Cursor 编辑器 “Too many computers“ 报错排查与完整解决方案

该报错通常在启动Cursor、调用AI对话/代码补全核心功能时触发,会直接阻断编辑器AI能力的正常使用。

奶爸的编程之路,也就一周冷个三天 457

斗鱼直播间弹幕爬虫实战:WebSocket连接与实时数据采集

在数据驱动的时代,直播平台的弹幕数据蕴含着巨大的价值——用户行为分析、舆情监控、弹幕情感分析、直播热度评估等应用场景层出不穷。斗鱼作为国内领先的直播平台,其弹幕系统基于WebSocket协议实现实时双向通信。本文将带您从零开始,使用Python构建一个完整的斗鱼直播间弹幕爬虫系统。

2201_76125261的博客 136

torchserve使用教程(踩坑记录)

1 torch serve介绍 在生产中部署和管理模型通常是机器学习过程中最困难的部分,这项工作包括构建定制的预测 API,对其进行扩展,并加以保护等等。 简化模型部署过程的一种方法是使用模型服务器,即专门设计用于在生产中提供机器学习预测的现成的 Web 应用程序。 模型服务器可轻松加载一个或多个模型,并自动创建由可扩展 Web 服务器提供支持的预测 API。 模型服务器还可以根据预测请求运行代码预处理和后处理。 最后同样重要的一点是,模型服务器还提供对生产至关重要的功能,例如日志记录、监控和安全性等。 广

weiyaner的博客 1万+

《【一看就会】Autoware.universe的“规划”部分源码梳理》系列文章目录(持续更新中)

第零章:Planning综述 第一章:【一】全局路径生成模块——mission_planner 第二章:【二】路径行为规划模块——behavior_path_planner第一部分——behavior_path_planner模块 第三章:【二】路径行为规划模块——behavior_path_planner第二部分——behavior_path_planner_common模块(1) 第四章:【二】路径行为规划模块——behavior_path_planner第三部分——behavior_path_plan

weixin_48386130的博客 2339

基于Pytorch语义分割模型的C++部署教程,CPU版本

基于Pytorch语义分割模型的C++部署教程,CPU版本1.pth权重文件转pt权重文件两种pth保存的方式模型转换2.C++ libtorch的下载与环境配置libtorch下载Libtorch C++环境的配置3.C++ 下pt文件的测试refer 1.pth权重文件转pt权重文件 两种pth保存的方式 Pytorch保存模型权重文件有两种方式: 1.保存整个模型及模型参数的方式: torch.save(self_model, "unet.pth") 2.保存模型参数方式: torch.save(s

yuanzhen_0128的博客 2614

【ROS机器人系统】实验4 ROS简单应用:激光SLAM与导航

ROS简单应用:激光SLAM与导航 (1)了解机器人和SLAM之间关系 (2)了解激光SLAM (3)了解gmapping和导航

南京大学软件工程硕士在读 2146

英飞凌TC3xx之一起认识GTM系列(六)如何实现GTM与VADC关联的配置

本文给出了GTM与EVADC之间关联的细节,并通过两个实例分别说明了如何对寄存器进行配置。

无所适从的我的博客 2932

torchserve 部署模型 自定义 handler 实践

torchserve完美推理以及模型部署

weixin_38649779的博客 1203

第十四节《OpenCascade集成Qt》

将 OpenCascade 与 Qt 集成是开发图形界面应用的常见需求。通过将 OpenCascade 的几何建模与 Qt 的图形用户界面(GUI)功能结合,可以创建强大而灵活的 CAD 或建模工具。OpenCascade 提供了与 Qt 的集成接口,允许你在 Qt 应用程序中嵌入 OpenCascade 的视图,执行几何操作,并与用户进行交互。以下是 OpenCascade 与 Qt 集成的详细步骤:首先,确保已安装 OpenCascade 和 Qt。你可以从 OpenCascade 官方网站或通过包管理

yumeiguo的博客 597

使用TorchServe部署PyTorch模型以进行大规模推理

您今天与之交互的许多服务都依赖于机器学习(ML)。从在线搜索和产品推荐到语音识别和语言翻译,这些服务都需要ML模型来进行预测。随着ML进入更多服务领域,您将面临以下挑战:获得辛勤工作的结果,并快速可靠地将模型部署到生产环境。随着使用这些服务的人数的增加,确保这些模型同时安全可靠地向数百万用户提供低延迟预测变得更具挑战性。 开发人员使用许多不同的开源框架进行模型开发。在过去的几年中,PyTorch已成为许多开发基于ML的应用程序的研究人员,开发人员和数据科学家的首选深度学习框架。他们更喜欢PyTorch,因为

Clement 1万+

家庭弱电最实用的功能,网线面板如何接线

按照规范,我国宽带入户线按B接法,即568B标准,从后面看,从左到右:1橙白,2橙,3绿白,4蓝,5蓝白,6绿,7棕白,8棕,即和水晶头的接法一致。做水晶头的时候,要注意排好线序,把8根线的头剪齐,留下大约1.8公分,插入水晶头的时候,水晶头要尾巴向下,把线插到水晶头的底端,用网线钳子夹紧。具体是:第1脚——橙白、第2脚——橙色、第3脚——绿白、第4脚——蓝色、第5脚——蓝白、第6脚——绿色、第7脚——棕白、第8脚——棕色,除了四根带颜色的线橙、绿、蓝、棕外,每一根白线上都有线标橙、绿、蓝、棕。

qq_43416206的博客 1674

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

告别复杂部署:PyTorch TorchServe 5分钟上手生产级模型服务

你还在为模型部署熬夜写接口吗?还在担心服务稳定性问题吗?本文将为你介绍 PyTorch 官方推出的 TorchServe 框架,它能让你快速实现模型部署,无需复杂编程,轻松应对生产环境需求。读完本文,你将学会 TorchServe 的安装方法、模型打包、服务启动以及基本的管理操作,让你的模型高效稳定地运行在生产环境中。 ## TorchServe 简介 TorchServe 是 PyTorch ...

gitblog_00316的博客 1331

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

AnimatedDrawings Docker部署终极指南:5步搞定TorchServe模型服务集成

AnimatedDrawings是一个强大的开源工具,能够将儿童绘画转换为生动的动画。通过Docker部署TorchServe模型服务,您可以快速搭建完整的动画生成环境。本指南将详细介绍如何使用Docker容器部署AnimatedDrawings的TorchServe模型服务,实现从图像到动画的一键转换。😊 ## 🚀 准备工作与环境要求 在开始部署之前,请确保您的系统满足以下要求: -

gitblog_00060的博客 878

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【torchserve安装和使用】torchserve部署方法|常见问题汇总|mmdetection使用torchserve部署|不使用docker

什么是torchserve? (百度)torchserve是Facebook和AWS联手开发的一款用于机器学习模型部署和调用的微服务程序。 接触torchserve是因为项目落地最终需要部署到平台上面,所以就开始了torchserve的使用之旅。 安装方法: pip3 install torchserve -i https://pypi.tuna.tsinghua.edu.cn/simple torchserve官网: 1. TorchServe — PyTorch/Serve ma...

m0_61139217的博客 7163

Ubuntu配置Torchserve环境,并在线发布你的深度学习模型

Ubuntu配置Torchserve环境,并在线发布你的深度学习模型,详细步骤,值得拥有

LLLLLLLLLLLLLLYYYYYY的博客 5397

【torchserve】农业小模型部署

​利用 PyTorch 的 TorchScript 功能,将模型转换为中间表示(IR),生成一个可序列化的。,这是 PyTorch 内置的编译器,能够将计算图转换为优化的机器代码。:​转换后的模型可以在不依赖 Python 的环境中运行,适用于 C++ 等其他语言的运行时环境。:​(字符串)控制编译模式,影响编译时间和运行时性能的权衡。:​(字典)向后端传递的额外选项,允许用户进一步自定义编译行为。:​适用于小型模型,可能增加编译时间,但减少运行时开销。:​编译时间最长,但可能提供最佳的运行时性能。

qq_45821285的博客 994

AI工程pytorch小白TorchServe部署模型服务

由于torch server底层是java ,使用了Log4j2 作为日志框架,运行的代码日志非常乱,所以建议重写log4j2.xml,同时注意,python error 日志被torch server 都处理为了info日志(感觉很奇怪)整体来看,DetectronHandler 类提供了一种将 Detectron2 模型集成到基于 TorchServe的服务中的方式,使得可以通过简单的接口调用来执行对象检测等任务。根据你的应用场景,可能需要对模型的输出进行解码或其他处理,以生成用户友好的输出。

IT_Octopus的博客 1654

TorchServe vs TensorFlow Serving:2025模型部署工具终极测评

你还在为选择合适的模型部署工具而头疼吗?当业务需要将训练好的机器学习模型快速推向生产环境时,部署工具的选择直接影响系统性能、稳定性和开发效率。本文将从安装配置、性能表现、适用场景等维度,全面对比两款主流部署工具——TorchServe与TensorFlow Serving,帮助你在5分钟内找到最适合业务需求的解决方案。读完本文,你将掌握: - 两种工具的核心优势与局限性 - 生产级部署的关键配置...

gitblog_00675的博客 1112

【YoloV5 6.0|6.1 部署 TensorRT到torchserve】环境搭建|模型转换|engine模型部署(详细的packet文件编写方法)

QQ: 1757093754注:Yolov5 1~5版本并没有封装完好的TensorRT转换流程,故需要借助其他方法完成模型转换,但是6.0、6.1内置TensorRT的export。tensorrtx下载链接:GitHub - wang-xinyu/tensorrtx: Implementation of popular deep learning networks with TensorRT network definition APIhttps://github.com/......

m0_61139217的博客 6292

TorchServe 完全指南:10分钟快速部署你的第一个PyTorch模型

TorchServe 是 PyTorch 官方推出的高性能模型服务框架,能够帮助开发者快速将训练好的PyTorch模型部署到生产环境中。无论你是机器学习工程师还是AI应用开发者,掌握TorchServe都能让你的模型部署工作事半功倍!🚀 ## 为什么选择TorchServe? TorchServe 提供了完整的模型服务解决方案,支持自动扩缩容、多模型管理、性能监控等功能。通过本指南,你将学会

gitblog_00661的博客 850
上一篇: 2022 年度盘点 | 更成熟的 AI,更破圈的技术狂欢
下一篇: 以 Animated Drawings APP 为例,用 TorchServe 进行模型调优
HyperAI超神经
博客等级 码龄7年 8872粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值