跳到内容

自定义参数

你可以使用 vLLM 的自定义参数来传入那些不属于 vLLM SamplingParams 和 REST API 规范的参数。添加或移除 vLLM 自定义参数不需要重新编译 vLLM,因为这些自定义参数是以字典形式传入的。

例如,如果你想使用自定义 logits 处理器而又不想修改 vLLM 源代码,自定义参数就非常有用。

注意

请确保你的自定义 logits 处理器已经实现了针对自定义参数的 validate_params 方法。否则,无效的自定义参数可能会导致意外行为。

离线自定义参数

作为 dict 传入 SamplingParams.extra_args 的自定义参数,对于任何能够访问 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 的代码在离线和在线场景下都是兼容的。