来自 vLLM 的其他输出#

vLLM 后端支持在请求时从 vLLM 发送除常用 text_output 之外的其他输出。

所有其他输出默认情况下均禁用,需要根据每个请求启用。如果启用,则将为来自请求的所有响应设置相应的输出张量。

支持的其他输出#

完成原因#

序列完成的原因。有关更多详细信息,请参阅此处

要启用,请将 return_finish_reason 输入张量设置为 True。原因将作为字符串在 finish_reason 输出张量上发送。

累积对数概率#

生成的输出文本的累积对数概率。有关更多详细信息,请参阅此处

要启用,请将 return_cumulative_logprob 输入张量设置为 True。浮点值将在 cumulative_logprob 输出张量上发送。

对数概率#

logprobs 请求的每个位置的最高概率标记的对数概率。在每个新响应中,仅返回自上次响应以来生成的新标记的对数概率。有关对数概率的更多详细信息,请参阅此处

要启用,请将 return_logprobs 输入张量设置为 True。对数概率将作为序列化的 JSON 字符串在 logprobs 输出张量上发送。

输入标记数#

提示的标记 ID 数。有关更多详细信息,请参阅此处

要启用,请将 return_num_input_tokens 输入张量设置为 True。无符号整数值将在 num_input_tokens 输出张量上发送。

输出标记数#

在此响应上发送的生成的输出文本的标记 ID 数。它是从上次响应到此响应生成的标记 ID 长度的差值。如果这是第一个响应,则假定上次响应长度为零。有关生成的输出文本的标记 ID 的更多详细信息,请参阅此处

要启用,请将 return_num_output_tokens 输入张量设置为 True。无符号整数值将在 num_output_tokens 输出张量上发送。

示例#

向输出添加完成原因#

import numpy as np
import tritonclient.grpc as grpcclient

inputs = []

inputs.append(grpcclient.InferInput("text_input", [1], "BYTES"))
inputs[-1].set_data_from_numpy(
    np.array(["example prompt".encode("utf-8")], dtype=np.object_)
)

inputs.append(grpcclient.InferInput("return_finish_reason", [1], "BOOL"))
inputs[-1].set_data_from_numpy(np.array([True], dtype=bool))

def callback(result, error):
    ...
    print(result.as_numpy(name="finish_reason"))

with grpcclient.InferenceServerClient("localhost:8001") as client:
    client.start_stream(callback)
    client.async_stream_infer("vLLM_model_name", inputs=inputs, ...)
    client.stop_stream()

注释#

  • 启用其他输出可能会影响性能,仅在必要时添加其他输出。