推理图-图像识别示例
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。预期输出
预期输出
您可以看到,如果第一个模型将图像分类为狗,则会将其发送到第二个模型进行进一步的狗品种分类;如果图像被分类为猫,则
InferenceGraph
路由器会返回第一个模型的响应。上一篇
推理图-概念
下一篇
模型存储 - 存储容器
Loading...