跳到内容

自定义参数

您可以使用 vLLM 的自定义参数来传递不在 vLLM SamplingParams 和 REST API 规范中的参数。添加或删除 vLLM 自定义参数不需要重新编译 vLLM,因为自定义参数是以字典的形式传递的。

如果您想使用自定义 logits processor 而不修改 vLLM 源代码,自定义参数可能会非常有用。

注意

请确保您的自定义 logits processor 为自定义参数实现了 validate_params。否则,无效的自定义参数可能导致意外行为。

离线自定义参数

传递给 SamplingParams.extra_args 的自定义参数(作为 dict)将对任何可以访问 SamplingParams 的代码可见。

SamplingParams(extra_args={"your_custom_arg_name": 67})

这允许将尚未包含在 SamplingParams 中的参数作为请求的一部分传递到 LLM 中。

在线自定义参数

vLLM REST API 允许通过 vllm_xargs 将自定义参数传递给 vLLM 服务器。下面的示例将自定义参数集成到 vLLM REST API 请求中。

curl https://:8000/v1/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "Qwen/Qwen2.5-1.5B-Instruct",
        ...
        "vllm_xargs": {"your_custom_arg": 67}
    }'

此外,OpenAI SDK 用户可以通过 extra_body 参数访问 vllm_xargs

batch = await client.completions.create(
    model="Qwen/Qwen2.5-1.5B-Instruct",
    ...,
    extra_body={
        "vllm_xargs": {
            "your_custom_arg": 67
        }
    }
)

注意

vllm_xargs 在底层被赋值给 SamplingParams.extra_args,因此使用 SamplingParams.extra_args 的代码同时兼容离线和在线场景。