参数扩展#

本文档描述了 Triton 的参数扩展。参数扩展允许推理请求提供不能作为输入提供的自定义参数。由于支持此扩展,Triton 在其服务器元数据的扩展字段中报告“parameters”。此扩展在 HTTPGRPC 中使用了 KServe 协议中的可选“parameters”字段。

以下参数为 Triton 保留使用,不应用作自定义参数

  • sequence_id

  • priority

  • timeout

  • sequence_start

  • sequence_end

  • headers

  • 所有以 "triton_" 前缀开头的键。以下是一些今天使用的示例

    • "triton_enable_empty_final_response" 请求参数

    • "triton_final_response" 响应参数

当同时使用 GRPC 和 HTTP 端点时,您需要确保不使用保留参数列表,以避免意外行为。保留参数在 Triton C-API 中不可访问。

HTTP/REST#

以下示例展示了请求如何包含自定义参数。

POST /v2/models/mymodel/infer HTTP/1.1
Host: localhost:8000
Content-Type: application/json
Content-Length: <xx>
{
  "parameters" : { "my_custom_parameter" : 42 }
  "inputs" : [
    {
      "name" : "input0",
      "shape" : [ 2, 2 ],
      "datatype" : "UINT32",
      "data" : [ 1, 2, 3, 4 ]
    }
  ],
  "outputs" : [
    {
      "name" : "output0",
    }
  ]
}

GRPC#

ModelInferRequest 消息中的 parameters 字段可用于发送自定义参数。

将 HTTP/GRPC 标头作为参数转发#

Triton 可以将 HTTP/GRPC 标头作为推理请求参数转发。通过在 --http-header-forward-pattern--grpc-header-forward-pattern 中指定正则表达式,Triton 将添加与正则表达式匹配的标头作为请求参数。所有转发的标头都将作为字符串值的参数添加。例如,要转发所有以 'PREFIX_' 开头的 HTTP 和 GRPC 标头,您应该将 --http-header-forward-pattern PREFIX_.* --grpc-header-forward-pattern PREFIX_.* 添加到您的 tritonserver 命令。

默认情况下,根据 HTTP 协议,正则表达式模式以不区分大小写的模式匹配标头。如果您想强制执行区分大小写的模式,只需添加 (?-i) 前缀即可关闭不区分大小写的模式,例如 --http-header-forward-pattern (?-i)PREFIX_.*。请注意,通过 Python HTTP 客户端发送的标头可能会被内部客户端库自动转换为小写。

转发的标头可以使用 Python 或 C 后端 API 作为推理请求参数访问。