首页
/ KServe V2 REST预测API详解

KServe V2 REST预测API详解

2025-07-08 08:06:15作者:仰钰奇

概述

KServe是一个开源的Kubernetes原生模型服务框架,它提供了标准化的API接口用于模型推理服务。本文将深入解析KServe V2版本的REST预测API规范,帮助开发者理解和使用这套接口进行模型部署和推理。

API架构设计

KServe V2 API遵循了清晰的层次结构设计,主要包含三大类接口:

  1. 健康检查接口:用于监控服务状态
  2. 元数据接口:获取服务和模型信息
  3. 推理接口:执行模型预测

这种设计使得KServe既能够满足生产环境对稳定性的要求,又能提供灵活的模型服务能力。

健康检查接口

1. 服务存活检查

GET /v2/health/live

此接口用于检查推理服务是否存活,能够接收和响应请求。在Kubernetes环境中,可以直接用作livenessProbe的检查端点。

2. 服务就绪检查

GET /v2/health/ready

检查所有模型是否已准备好进行推理。在Kubernetes中可用作readinessProbe端点,确保服务完全就绪后才接收流量。

3. 模型就绪检查

GET /v2/models/${MODEL_NAME}/versions/${MODEL_VERSION}/ready

检查特定模型版本是否准备好进行推理。参数说明:

  • MODEL_NAME:模型名称(必需)
  • MODEL_VERSION:模型版本(可选,不提供时服务器自行选择版本)

元数据接口

1. 服务器元数据

GET /v2/

获取服务器基本信息,返回JSON对象包含:

  • name:服务器名称
  • version:服务器版本
  • extensions:支持的扩展功能列表

2. 模型元数据

GET /v2/models/${MODEL_NAME}/versions/${MODEL_VERSION}

获取特定模型的详细信息,返回内容包括:

  • name:模型名称
  • versions:可用版本列表
  • platform:模型运行平台
  • inputs:输入张量元数据数组
  • outputs:输出张量元数据数组

其中每个张量元数据包含:

  • name:张量名称
  • datatype:数据类型
  • shape:形状数组

推理接口

模型推理

POST /v2/models/${MODEL_NAME}/versions/${MODEL_VERSION}/infer

执行模型推理的核心接口,请求体为JSON格式的推理请求,响应为JSON格式的推理结果。

请求体结构

{
  "id": "请求标识符",
  "parameters": {
    // 可选参数
  },
  "inputs": [
    {
      "name": "输入名称",
      "shape": [维度数组],
      "datatype": "数据类型",
      "parameters": {
        // 可选参数
      },
      "data": [输入数据数组]
    }
  ],
  "outputs": [
    {
      "name": "输出名称",
      "parameters": {
        // 可选参数
      }
    }
  ]
}

响应结构

成功响应:

{
  "model_name": "模型名称",
  "model_version": "模型版本",
  "id": "请求ID",
  "parameters": {
    // 可选参数
  },
  "outputs": [
    {
      "name": "输出名称",
      "shape": [维度数组],
      "datatype": "数据类型",
      "parameters": {
        // 可选参数
      },
      "data": [输出数据数组]
    }
  ]
}

错误响应:

{
  "error": "错误信息"
}

数据类型支持

KServe V2 API支持多种数据类型,包括:

  • 数值类型:UINT8/16/32/64, INT8/16/32/64, FP16/32/64
  • 布尔类型:BOOL
  • 字符串类型:BYTES

使用建议

  1. 生产部署:务必配置健康检查接口作为Kubernetes的探针
  2. 客户端开发:先获取模型元数据了解输入输出规范
  3. 性能优化:合理使用批处理减少请求次数
  4. 错误处理:检查响应状态码和错误信息

总结

KServe V2 REST预测API提供了一套标准化、功能完善的接口规范,使得模型服务可以轻松集成到各种生产环境中。通过健康检查、元数据查询和推理执行三类接口的配合使用,开发者可以构建出稳定、可靠的模型服务系统。理解这套API规范是有效使用KServe框架的基础。