恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Seldon Core 中的 Open Inference Protocol(V2 推理协议)完整实战指南:HTTP/REST 与 GRPC 双通道规范解析

  • 首页
  • 资讯中心
  • /
  • Seldon Core 中的 Open Inference Protocol(V2 推理协议)完整实战指南:HTTP/REST 与 GRPC 双通道规范解析

相关资讯

Genesis10.0中文安装版安装避坑指南:从环境配置到稳定启动 2026/10/14 20:44:35
HR索要简历时怎么办:用BossHunter 3步基于JD自动生成定制简历PDF 2026/10/14 20:39:34
Vue3集成高德地图InfoWindow事件绑定与动态组件挂载实战 2026/10/14 20:39:34

最新资讯

Transformer模型拆分实战:模块化、部署与能力复用指南
批量任务逐个击破:远离多任务切换的注意力损耗陷阱
PAT乙级1051~1100刷题攻略:算法思维与避坑指南
程序解耦实战:从高耦合痛点到四步解耦落地
HNU计算机系统大作业:x86-64/Linux下系统级编程实战指南
连续时间建模下电池容量衰减预测:混合效应模型与参数解析

今日推荐

IBM Verify Identity Access 修复 22 个漏洞:两个 9.8 严重 RCE 无需认证
小区物业管理系统
小型超市仓库管理系统

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

Seldon Core 中的 Open Inference Protocol(V2 推理协议)完整实战指南:HTTP/REST 与 GRPC 双通道规范解析

发布时间:2026/10/14 20:44:35
Seldon Core 中的 Open Inference Protocol(V2 推理协议)完整实战指南:HTTP/REST 与 GRPC 双通道规范解析 人工智能大模型MLOpsLLMOps模型推理服务云原生后端【免费下载链接】seldon-coreAn MLOps framework to package, deploy, monitor and manage thousands of production machine learning models项目地址https://gitcode.com/gh_mirrors/se/seldon-core点击查看免费下载本篇技术指南以 seldon-core 仓库中 Open Inference Protocol 规范文档 为骨架系统讲解框架无关的 V2 推理协议从健康检查、服务器/模型元数据到推理请求的完整 HTTP/REST 与 GRPC API 定义、全部 JSON 与 protobuf 消息结构、张量数据编码规则与数据类型表。读完本文你将能够按规范实现或对接 V2 协议客户端/服务端并了解该协议在 Seldon Core 的 Pipeline Gateway、Agent 反向代理中的真实落地方式。协议定位框架无关的统一推理接口Open Inference Protocol旧称 V2 Inference Protocol是一套与具体 ML/DL 框架和模型服务器无关的预测/推理 API。它同时兼顾开箱即用的易用性与高性能场景协议层面既支持直观的 JSON 数组表达张量也支持 GRPC raw bytes 的高吞吐表达。该协议已获得 NVIDIA Triton Inference Server、TensorFlow Serving 与 ONNX Runtime Server 的认可与支持。协议的设计目标非常明确只要推理客户端与服务端都实现了这套协议双方就能在任何围绕该 API 标准化的平台上无缝互通提升彼此的实用性与可移植性。对 Seldon 而言一个推理服务器只要实现了下述全部 API明确标注为可选的除外即可视为协议合规合规服务器可以选择只实现 HTTP/REST 与 GRPC 中的一种或两者都实现。协议还要求实现一种扩展机制extensions字段但规范本身不预定义任何具体扩展具体扩展由各推理服务器自行提出与文档化。HTTP/REST 接口端点总览与 JSON 约定HTTP/REST 部分使用 JSON 作为数据交换格式因为它被广泛支持且与语言无关。规范中的$number、$string、$boolean、$object、$array指 JSON 基础类型#optional表示可选字段。需要特别注意的是所有上下文中所有字符串均区分大小写。对于 Seldon服务器必须识别以下 URL。versions段是可选的以兼容不支持版本化的实现或当用户不指定模型版本时此时由服务器按自身策略选择版本Health健康检查GET v2/health/live GET v2/health/ready GET v2/models/${MODEL_NAME}[/versions/${MODEL_VERSION}]/readyServer Metadata服务器元数据GET v2Model Metadata模型元数据GET v2/models/${MODEL_NAME}[/versions/${MODEL_VERSION}]Inference推理POST v2/models/${MODEL_NAME}[/versions/${MODEL_VERSION}]/infer健康检查 API健康检查请求通过 HTTP GET 发往健康端点HTTP 响应状态码即布尔结果200表示 true4xx表示 false响应体应为空。共三类健康 APIServer Live服务器存活GET v2/health/live指示推理服务器是否能接收并响应元数据与推理请求。该 API 可直接用于实现 KuberneteslivenessProbe。Server Ready服务器就绪GET v2/health/ready指示所有模型是否已就绪可用于推理。该 API 可直接用于实现 KubernetesreadinessProbe。Model Ready模型就绪GET v2/models/${MODEL_NAME}[/versions/${MODEL_VERSION}]/ready指示指定模型是否已就绪可用于推理。模型名以及可选的版本必须出现在 URL 中若未提供版本服务器可按自身策略选择。仓库中的 OpenAPI 3.0.3 定义 open-inference-protocol-v2.openapi.yaml 完整覆盖了这些路径并对模型级健康端点给出了重要的实战警告模型级就绪端点只是向客户暴露模型状态不应被用作 MLServer 容器的 KubernetesreadinessProbe。原因在于 Seldon 的加载流程存在依赖死锁风险Seldon Agent 要等到 Pod IP 出现在 endpoints 中才开始下载模型而 Pod IP 只有在 Pod Ready 或内部就绪检查通过后才发布MLServer 容器又要等模型加载完才 Ready。因此容器级就绪检查应使用服务器级就绪端点/v2/health/ready它只表示 MLServer 进程已启动并可接受健康检查不会阻塞模型加载流程。服务器元数据 APIGET v2返回服务器信息。成功的请求以 200 状态码响应HTTP body 包含$metadata_server_response对象$metadata_server_response { name : $string, version : $string, extensions : [ $string, ... ] }name服务器的描述性名称。version服务器版本。extensions服务器支持的扩展列表。目前没有定义标准扩展各推理服务器可自行定义并文档化自己的扩展。失败的元数据请求必须返回 HTTP 错误状态通常为 400body 包含$metadata_server_error_response对象$metadata_server_error_response { error: $string }error错误的描述性消息。模型元数据 APIGET v2/models/${MODEL_NAME}[/versions/${MODEL_VERSION}]提供单个模型的信息。模型名与可选的版本必须出现在 URL 中若未提供版本服务器可按自身策略选择版本或返回错误。成功响应200返回$metadata_model_response$metadata_model_response { name : $string, versions : [ $string, ... ] #optional, platform : $string, inputs : [ $metadata_tensor, ... ], outputs : [ $metadata_tensor, ... ] }name模型名称。versions可通过相应端点显式请求的模型版本。对不支持版本化的服务器可选对不允许显式请求版本的模型可选。platform模型的框架/后端取值见下文 平台Platforms 一节。inputs模型所需的输入张量。outputs模型产生的输出张量。每个模型输入/输出张量的元数据由$metadata_tensor对象描述$metadata_tensor { name : $string, datatype : $string, shape : [ $number, ... ] }name张量名称。datatype张量元素的数据类型取值见下文 张量数据类型 一节。shape张量形状可变尺寸维度用 -1 表示。失败的模型元数据请求返回 HTTP 错误状态通常为 400body 包含$metadata_model_error_response$metadata_model_error_response { error: $string }推理 APIPOST v2/models/${MODEL_NAME}[/versions/${MODEL_VERSION}]/infer发起一次推理请求。请求 body 为$inference_request响应 body 为$inference_response成功或$inference_error_response失败。模型名与可选版本必须在 URL 中未提供版本时服务器可按策略选择或返回错误。推理请求对象Inference Request$inference_request { id : $string #optional, parameters : $parameters #optional, inputs : [ $request_input, ... ], outputs : [ $request_output, ... ] #optional }id请求标识符。可选但一旦指定就必须在响应中原样返回。parameters零个或多个以键值对表达的推理请求参数见下文 参数 一节。inputs输入张量数组每个输入遵循$request_input结构。outputs请求返回的输出张量数组遵循$request_output结构。可选若不指定则返回模型产生的全部输出使用默认$request_output设置。Request Input$request_input描述模型的一个输入。若输入是批量的shape 与 data 必须表示整个批次的完整形状与内容$request_input { name : $string, shape : [ $number, ... ], datatype : $string, parameters : $parameters #optional, data : $tensor_data }name输入张量名称。shape输入张量形状每一维必须是可表示为无符号 64 位整数的整数。datatype输入张量元素的数据类型。parameters零个或多个输入参数键值对。data张量内容见下文 张量数据 一节。Request Output$request_output用于请求模型应返回哪些输出张量$request_output { name : $string, parameters : $parameters #optional, }name输出张量名称。parameters零个或多个输出参数键值对。推理响应对象Inference Response成功的推理请求以 200 状态码响应body 为$inference_response$inference_response { model_name : $string, model_version : $string #optional, id : $string, parameters : $parameters #optional, outputs : [ $response_output, ... ] }model_name用于推理的模型名称。model_version实际用于推理的模型版本。未实现版本化的推理服务器不应在响应中提供该字段。id请求中给定的id如有。parameters零个或多个响应参数键值对。outputs输出张量数组每个输出遵循$response_output结构。Response Output$response_output描述模型的一个输出。若输出是批量的shape 与 data 表示整个批次的完整形状$response_output { name : $string, shape : [ $number, ... ], datatype : $string, parameters : $parameters #optional, data : $tensor_data }name输出张量名称。shape输出张量形状每维必须是可表示为无符号 64 位整数的整数。datatype输出张量元素的数据类型。parameters零个或多个输出参数键值对。data张量内容。推理错误响应失败的推理请求必须返回 HTTP 错误状态通常为 400body 为$inference_error_response$inference_error_response { error: error message string }HTTP/REST 推理请求示例以下示例展示向一个具有两个输入、一个输出的模型发起推理请求Content-Length头给出了 JSON 对象的大小POST /v2/models/mymodel/infer HTTP/1.1 Host: localhost:8000 Content-Type: application/json Content-Length: xx { id : 42, inputs : [ { name : input0, shape : [ 2, 2 ], datatype : UINT32, data : [ 1, 2, 3, 4 ] }, { name : input1, shape : [ 3 ], datatype : BOOL, data : [ true ] } ], outputs : [ { name : output0 } ] }对于上述请求推理服务器必须返回output0输出张量。假设模型返回一个 FP32 数据类型的[3, 2]张量则响应如下HTTP/1.1 200 OK Content-Type: application/json Content-Length: yy { id : 42 outputs : [ { name : output0, shape : [ 3, 2 ], datatype : FP32, data : [ 1.0, 1.1, 2.0, 2.1, 3.0, 3.1 ] } ] }注意上述请求中的input1形状为[3]但data只包含一个元素[true]这属于示例原文的表述方式实际使用时数据元素数量应与形状推断的元素数一致。该示例对应当前仓库 OpenAPI 文件中的 InferenceRequest 示例定义。参数Parameters$parameters描述零个或多个name/value键值对name为参数名value为$string、$number或$boolean$parameters { $parameter, ... } $parameter $string : $string | $number | $boolean规范目前未定义任何标准参数。未来提案可能会定义一个或多个标准参数以在不同推理服务器之间实现可移植功能各服务器也可以实现服务器专属参数以提供非标准能力。张量数据Tensor Data张量数据必须以**行主序row-major order**呈现元素值按线性顺序给出元素之间不得有 stride 或 padding。张量元素既可以采用其自然的多维表示也可以采用扁平化的一维表示。显式给出的张量数据放在 JSON 数组中每个元素可以是整数、浮点数、字符串或布尔值。服务器可以决定将每个元素强制转换为所需类型或在收到意外值时返回错误。需要说明的是fp16 很难显式传输因为各后端之间没有标准的 fp16 表示通常也缺少为 JSON 数字构造 fp16 表示的编程支持。例如 2 维矩阵[ 1 2 4 5 ]既可以自然形式表示为data : [ [ 1, 2 ], [ 4, 5 ] ]也可以扁平化为一维表示data : [ 1, 2, 4, 5 ]GRPC 接口GRPCInferenceService 服务GRPC API 与 HTTP/REST 的概念一一对应合规服务器必须实现本节描述的健康、元数据与推理 API。同样地所有上下文中的字符串都区分大小写。GRPC 服务定义如下// // Inference Server GRPC endpoints. // service GRPCInferenceService { // Check liveness of the inference server. rpc ServerLive(ServerLiveRequest) returns (ServerLiveResponse) {} // Check readiness of the inference server. rpc ServerReady(ServerReadyRequest) returns (ServerReadyResponse) {} // Check readiness of a model in the inference server. rpc ModelReady(ModelReadyRequest) returns (ModelReadyResponse) {} // Get server metadata. rpc ServerMetadata(ServerMetadataRequest) returns (ServerMetadataResponse) {} // Get model metadata. rpc ModelMetadata(ModelMetadataRequest) returns (ModelMetadataResponse) {} // Perform inference using a specific model. rpc ModelInfer(ModelInferRequest) returns (ModelInferResponse) {} }这个服务定义与仓库中的 v2_dataplane.proto 完全对应后者还额外扩展了ModelStreamInfer双向流式推理以及来自 Triton 模型仓库控制面的RepositoryIndex、RepositoryModelLoad、RepositoryModelUnload三个 RPC。健康检查Health健康请求通过ServerLive、ServerReady或ModelReady端点发起错误通过请求返回的google.rpc.Status指示OK码表示成功其他码表示失败。ServerLive指示推理服务器是否能够接收并响应元数据与推理请求message ServerLiveRequest {} message ServerLiveResponse { // True if the inference server is live, false if not live. bool live 1; }ServerReady指示服务器是否已就绪可用于推理message ServerReadyRequest {} message ServerReadyResponse { // True if the inference server is ready, false if not ready. bool ready 1; }ModelReady指示指定模型是否已就绪可用于推理message ModelReadyRequest { // The name of the model to check for readiness. string name 1; // The version of the model to check for readiness. If not given the // server will choose a version based on the model and internal policy. string version 2; } message ModelReadyResponse { // True if the model is ready, false if not ready. bool ready 1; }服务器元数据Server MetadataServerMetadata提供服务器信息错误通过google.rpc.Status指示message ServerMetadataRequest {} message ServerMetadataResponse { // The server name. string name 1; // The server version. string version 2; // The extensions supported by the server. repeated string extensions 3; }模型元数据Model MetadataModelMetadata提供单个模型的信息message ModelMetadataRequest { // The name of the model. string name 1; // The version of the model to check for readiness. If not given the // server will choose a version based on the model and internal policy. string version 2; } message ModelMetadataResponse { // Metadata for a tensor. message TensorMetadata { // The tensor name. string name 1; // The tensor data type. string datatype 2; // The tensor shape. A variable-size dimension is represented // by a -1 value. repeated int64 shape 3; } // The model name. string name 1; // The versions of the model available on the server. repeated string versions 2; // The models platform. See Platforms. string platform 3; // The models inputs. repeated TensorMetadata inputs 4; // The models outputs. repeated TensorMetadata outputs 5; }需要说明的是Seldon 的 v2_dataplane.proto 在标准TensorMetadata与ModelMetadataResponse基础上增加了mapstring, InferParameter parameters扩展字段注释明确标注 NOTE: This is an extension to the standard用于携带输入默认参数与请求/响应默认参数——这正是协议扩展机制的落地示例。推理InferenceModelInfer使用指定模型执行推理错误通过google.rpc.Status指示message ModelInferRequest { // An input tensor for an inference request. message InferInputTensor { // The tensor name. string name 1; // The tensor data type. string datatype 2; // The tensor shape. repeated int64 shape 3; // Optional inference input tensor parameters. mapstring, InferParameter parameters 4; // The tensor contents using a>赞分享人工智能大模型MLOpsLLMOps模型推理服务云原生后端【免费下载链接】seldon-coreAn MLOps framework to package, deploy, monitor and manage thousands of production machine learning models项目地址https://gitcode.com/gh_mirrors/se/seldon-core点击查看免费下载相关推荐Seldon Core 2 的 Open Inference ProtocolV2 推理协议全面解读HTTP/REST 与 gRPC 双协议规范及工程实现Seldon Core 2 的 Open Inference ProtocolV2 推理协议全面解读HTTP/REST 与 gRPC 双协议规范及工程实现人工智能大模型MLOpsLLMOps模型推理服务云原生后端KServe Predict Protocol v2 详解HTTP/REST 与 GRPC 推理接口的完整实现指南KServe Predict Protocol v2 详解HTTP/REST 与 GRPC 推理接口的完整实现指南 导读 本文以 docs/predict a模型推理服务云原生后端微服务MLOps人工智能Triton Inference Server HTTP/REST 与 gRPC 协议指南KServe v2 兼容、协议扩展与部署实践Triton Inference Server HTTP/REST 与 gRPC 协议指南KServe v2 兼容、协议扩展与部署实践 本文以 docs/pr模型推理服务AI 应用后端上一篇如何快速掌握AMD Ryzen硬件调试免费开源工具的终极指南下一篇免费开源AMD Ryzen调试工具SMUDebugTool终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号