推理图-图像识别示例

type
status
date
slug
summary
tags
category
icon
password
网址
本教程演示如何使用InferenceGraph部署具有多个阶段的图像处理推理流水线。该示例将两个模型串联在一起,第一个模型用于判断图像是狗还是猫,如果是狗,第二个模型则进行狗的品种分类。

InferenceGraph流程

InferenceGraph请求流程中,图像以base64格式编码并首先发送到dog-cat-classifier模型,如果前一个模型预测结果为狗,则dog-cat-classifier推理服务的图像输入会被转发到下一阶段的模型进行品种分类。

部署独立的推理服务

训练模型

您可以参考狗猫分类狗品种分类来训练不同阶段的图像分类器模型。

部署推理服务

在使用InferenceGraph自定义资源部署图路由器之前,您需要先部署使用上一步训练的模型的独立InferenceServices
模型应使用以下命令打包,然后与配置一起上传到您的模型存储:
然后您可以使用以下InferenceService自定义资源将模型部署到KServe。
 
请查看PyTorch教程了解如何打包模型并使用InferenceService进行部署的更多详细信息。

部署推理图

InferenceServices处于就绪状态后,您现在可以部署InferenceGraph来串联这两个模型以生成最终的推理结果。
 
 
📔
注意 有关推理图规范的更多信息,请参阅参考文档
InferenceGraph定义了两个步骤,每个步骤都指向上面部署的InferenceServices。这些步骤按顺序执行:首先将图像作为请求发送到cat-dog-classifier模型,如果第一个模型将其分类为狗,则发送到dog-breed-classifier
  • 请注意,在data字段中指定了$request,表示您想要转发来自上一步的请求并作为输入发送到下一步。
  • 在第二步中指定了condition,因此只有当response数据匹配定义的条件时,才会将请求发送到当前步骤。当条件不匹配时,图会短路并返回上一步的响应。有关如何表达条件的信息,请参考gjson语法,目前KServe仅支持REST协议使用此功能。

测试推理图

在测试InferenceGraph之前,首先检查图是否处于就绪状态,然后获取用于发送请求的路由器URL。
第一步是确定入口IP和端口并设置INGRESS_HOSTINGRESS_PORT。现在,您可以通过发送狗的图像数据来测试推理图。
预期输出
预期输出
您可以看到,如果第一个模型将图像分类为狗,则会将其发送到第二个模型进行进一步的狗品种分类;如果图像被分类为猫,则InferenceGraph路由器会返回第一个模型的响应。
上一篇
推理图-概念
下一篇
模型存储 - 存储容器
Loading...
文章列表
Kserve中文文档
快速开始
管理指南
用户指南
开发指南
机器学习概念
大模型周报