推理接口

说明

请求

当调度器接收到外部请求后,会基于集群状态,计算用于服务该请求的PD实例。然后将请求发送给对应的P实例。

由于标准推理(PD混部)对外提供了五类推理接口兼容(分别是TGI、vLLM、OpenAI、Triton和MindIE原生接口),因而,在PD分离场景下,调度器需要兼容这5类接口。当调度器收到外部请求(RESTful请求)后,会向P实例转发本次请求,请求的URL和Body与PD混部保持一致,但需要在HTTP HEADER中加入部分控制信息,控制信息请参见表1

表1 P请求HTTP HEADER字段说明

字段名

是否必选

字段描述

取值类型

req-id

必选

全局唯一的RequestID。

数字类型的字符串,要求全局唯一。

d-target

必选

目标D实例的IP地址。

IP地址。

req-type

必选

请求类型。

固定值:prefill。

is-recompute

可选(重计算场景下必选)

是否重计算。

  • true:重计算
  • false:非重计算

请求样例:

curl -i -H "req-id: 12345" -H "req-type: prefill" -H "d-target: 172.17.0.9" -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '
{
    "model": "llama2_7b",
    "messages": [{
        "role": "system",
        "content": "You are a helpful assistant."
    }],
    "max_tokens": 20,
    "presence_penalty": 1.03,
    "frequency_penalty": 1.0,
    "seed": null,
    "temperature": 0.5,
    "top_p": 0.95,
    "stream": true
}' https://172.17.0.10:1025/v1/chat/completions

响应

一个请求的响应会分别发生在P实例和D实例中,且两实例的响应内容不同。