news 2026/4/17 22:51:57

模型服务化:TorchServe 与 Triton Inference Server 深度实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
模型服务化:TorchServe 与 Triton Inference Server 深度实践

核心观点:凌晨两点,屏幕上的日志还在疯狂滚动。第 37 次尝试启动 TorchServe 服务,依然卡在"Loading model…"然后超时。同事发来的微信还在闪烁:"客户明天要看演示,模型部署必须搞定。"这场景太熟悉了——模型在本地跑得好好的,一到生产环境就各种水土不服。


一、模型服务化基础

1.1 为什么需要模型服务化?

本地推理 vs 生产服务: 本地: - 单次调用 - Python 脚本 - 独占资源 - 无并发 生产: - 高并发请求 - REST/gRPC API - 资源池化 - 监控/告警 - A/B Testing - 蓝绿部署

1.2 服务化框架对比

框架特点适用场景性能
TorchServePyTorch 官方PyTorch 模型
TritonNVIDIA通用推理最高
TensorFlow ServingGoogleTF 模型
FastAPI + Uvicorn轻量简单服务
Ray Serve分布式复杂编排

二、TorchServe 深度实践

2.1 核心概念

TorchServe 架构: ┌─────────────────────────────────────────────┐ │ API │ │ (REST / gRPC) │ └──────────────────┬──────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ Handler │ │ (请求预处理 / 推理 / 后处理) │ └──────────────────┬──────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ Model │ │ (PyTorch Model) │ └─────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ Backend │ │ (Worker Management / Metrics) │ └─────────────────────────────────────────────┘

2.2 模型打包

# 1. 创建模型类fromtorchserve.inferenceimportModelfromtorchserveimportregistryclassTextClassifier:"""文本分类器"""def__init__(self):self.model=Noneself.mapping={0:"negative",1:"positive"}defload(self,checkpoint_path):"""加载模型"""importtorch self.model=torch.jit.load(checkpoint_path)self.model.eval()defpredict(self,data):"""推理"""importtorchimporttorch.nn.functionalasF# 预处理input_tensor=torch.tensor(data).unsqueeze(0)# 推理withtorch.no_grad():output=self.model(input_tensor)probs=F.softmax(output,dim=-1)pred=probs.argmax(dim=-1).item()return{"prediction":self.mapping[pred],"confidence":probs[0][pred].item()}# 注册模型registry.register("text_classifier")(TextClassifier)# 2. 创建 mar 文件配置# model-config.yamlmar_config={"modelName":"text_classifier","version":"1.0","serializedFile":"model.pt","modelFile":"text_classifier.py","handler":"text_classifier","batchSize":4,"maxBatchDelay":100,"responseTimeout":60,"numberOfWorkers":2}

2.3 Handler 编写

# custom_handler.pyfromabcimportABCfromtypingimportListimporttorchfromts.contextimportContextclassBaseHandler(ABC):
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 22:44:11

C语言的数据类型和变量

目录 1. 数据类型介绍 2. signed 和unsigned 3. 数据类型的取值范围 4. 变量 5. 算术操作符:、-、*、/、% 6. 赋值操作符:和复合赋值 7. 单⽬操作符:、--、、 8. 强制类型转换 9. scanf和printf介绍 1. 数据类型介绍(内置…

作者头像 李华
网站建设 2026/4/17 22:37:22

从LLM幻觉到生产级健壮性,智能代码生成错误检测与修复全链路落地手册,覆盖GitHub Copilot/CodeWhisperer/Tabnine三大引擎

第一章:从LLM幻觉到生产级健壮性——智能代码生成错误检测与修复的演进本质 2026奇点智能技术大会(https://ml-summit.org) 大型语言模型在代码生成任务中展现出惊人潜力,但其输出常伴随逻辑错位、API误用、边界条件遗漏等隐性幻觉——这些错误在单元测…

作者头像 李华